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...