Présentation de la technologie Sigfox destiné au club de
Transcription
Présentation de la technologie Sigfox destiné au club de
Mise en œuvre de la technologie Sigfox (Internet des objets). Avril 2016 Thierry Vorms / HB9FXO [email protected] Le problème auquel on voudrait répondre… • Transmettre de l'information (mesures) sans connexion internet (wifi, GSM) • Faible coût • Faible infrastructure Browser • Fiabilité Device Technologie radio utilisée pour le réseau Sigfox Bande passante ultra étroite (100 hz) • -> Permet de créer un réseau à grande capacité (bcp d'équipements). • -> L'équipement mobile consomme très peu d'énergie. • -> Très haute sensibilité du récepteur (-147 dB). • -> Bi directionnel dans certains cas. Bandes ISM: Industrie Scientific and Medical. • -> Réservées pour des transmissions autres que communications. • -> Pas de licence (sous certaines conditions) L'offre Sigfox: la seule offre disponible aujourd'hui. Sigfox constitue un réseau de Gateway dont le but est de recevoir les messages radios émis par les mobiles et de les rendre disponibles sur Internet ou de les rediriger sur un autre serveur. La Suisse n'a pas signé d'accord avec Sigfox, mais avec Lora. Lora va exploiter les mêmes bandes radio. Beaucoup de sociétés investissent dans Lora, mais rien n'exisite encore. Internet Offre Sigfox suite…. • 140 messages de 12 caractères par jour du mobile en direction des Gateways. • 5 messages par jour de Sigfox (gateways) vers un mobile. • 14 euros de licence par année. • Confidentialité assurée des données par les fondeurs de modems. • Très faible consommation d'énergie. • Très grande sensibilité des récepteurs. • Plusieurs fournisseurs de modems disponibles. • Vente aux grands comptes uniquement mais solutions possibles. Un cas d'école: la pesée des ruches… • • • • Réalisation complète d'un prototype industriel Visualiser les résultats sous forme de graphiques Alertes par courriels et SMS Faible coûts Le flux des données… Telemsure.net Description de la solution • L'équipement mobile utilise un modem certifié Sigfox. • Comme on n'est pas un grand compte, on n'a pas accès au back end Sigfox. • Sigfox transmet les données au site Telemesure. • Telemesure a un "back end" qui permet de paramétrer un push des données. • Les données arrivent sur un serveur linux où elle sont extraites et transmises au site Thingspeak. • Thingspeak est un projet open source qui héberge des données dans le but de les présenter sous forme de graphes. 8 nombres flottant par canal peuvent être traités. • Les données peuvent être présentées sur un browser mais aussi sous forme d'un client lourd sur Android. La partie mobile… Le modem • Sigfox ne vend pas de modem, mais pour exploiter le réseau il faut utiliser du matériel agréé. • Plusieurs solutions existent: des cartes pour Arduino, Raspberry, etc. • Nous avons choisi comme fournisseur Atim, basé a Grenoble. • Atim a développé un modem radio dont le firmware peut satisfaire plusieurs protocoles. Atim est un "grand compte" aux yeux de Sigfox et vend du matériel et des licences Sigfox à l'unité. C'est un nouveau développement pour ATIM. Au début, rien ne fonctionnait… La partie mobile suite… La plateforme de développement. Nous avons choisi un Arduino Mega, car la taille du code est trop grande pour un Arduino Uno. Quelques fonctionnalités.. Gestion du modem Mesure de la tension de la batterie Horloge temps réel Deux (2) entrées logiques pour des extensions futures Suivi du fuseau horaire Encapsulation des données dans un message de 12 caractères Enregistrement des paramètres de mesures dans la flash Gestion d'une balance à plusieurs capteurs Gestion et transmission des erreurs Inhibit des mesures lors des interventions sur la ruche. Mise en sommeil du micro contrôleur entre 2 mesures. Mesure de la température extérieure. Test de transmission… • Dès que la librairie a été corrigée, il a été possible de transmettre un message "Hello world". • La transmission ne semble pas avoir de problème, Sigfox et le fabriquant du modem en garantissant l'intégralité et la confidentialité. • Même dans de mauvaises conditions, la transmission est correcte. • Quelques tests dans le canton de Genève: La partie Telemsure.net • Visualisation des messages convertis en ASCII sur le site Telemesure.net: • Telemesure.net devrait développer son "back end" et proposer des outils d'analyse (conversion ASCII hex, hex to float, etc.) Telemesure suite, configuration du forward "POST" A chaque réception de données, le script sera appelé. L'identifiant du modem fera partie des données. Le script PHP sur le serveur Quelques fonctionnalités Lire un fichier qui contient les identifiants de modem, adresse mail, natel pour SMS Log des données dans syslog Identification du modem Décoder les données Sigfox Analyse du status Envoi d'alarmes par mail et SMS, le cas échéant Transmettre les données sur le site Thingspeak Script PHP suite, décodage du string Sigfox foreach ($_POST as $key => $value ){ // syslog(LOG_WARNING, "receive: $key => $value"); if ($key == 'id'){ $modemId = $value; // syslog(LOG_WARNING, "modemId: $modemId"); } else { if ($key == 'data'){ $data = $value; // syslog(LOG_WARNING, "value: $data"); } $key == 'data' } // $key != 'Id' } // foreach $data représente le string Sigfox de 12 caractères ASCII. De ce string, on extrait les données et on les encapsules, pour les envoyer à Telemesure.net Script php: envoi des données vers Thingspeak function sendToThingSpeak($fieldsArray, $apiKey, $url){ $data = array('api_key' => $apiKey, 'field1' => $fieldsArray[0], 'field2' => $fieldsArray[1], 'field3' => $fieldsArray[2], 'field4' => $fieldsArray[3], 'field5' => $fieldsArray[4], 'field6' => $fieldsArray[5], 'field7' => $fieldsArray[6], 'field8' => $fieldsArray[7]); L'apiKey est une donnée qu'il faut récupérer du site Thingspeak. En l'occurrence, c'est la clef en écriture. $options = array('http' => array('header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data), ), ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); if ($result === FALSE) { syslog(LOG_WARNING, "Thingspeak server return an error"); } } // sendToThingSpeak La configuration Thingspeak Cliquer sur "new chanel" pour créer un nouvel espace de données. Thingspeak suite… Thingspeak: la visualisation • Thingspeak offre la possibilité de pouvoir visualiser les courbes directement sur le site. • Il est possible d'exporter les données sous forme de fichier Excel ou CSV, mais aussi au format JSON. • Tout un API est disponible. • Il y a une grande communauté d'utilisateurs. • Thingspeak peut être installé sur son propre serveur. Le résultat… sur un browser Zoom Télécharger les points sous forme de fichier Excel ou télécharger une image Sélection de dates Les échelles Pour une mise à jour en continu Cliquer ici Masquer une ou plusieurs courbes Sélection d'une plage précise Quelques photos...