#SigfoxMakerTour : Envoyer un message sur le réseau SIGFOX (Partie 2/2)

Jeudi, 17 Décembre 2015 06:00 Domotics
Imprimer
Note des utilisateurs: / 4
MauvaisTrès bien 

Il y a quelques semaines, je suis allé au SIGFOX MAKER TOUR à Toulouse. Je vous avais présenté la journée lors de mon précédent article. Aujourd'hui, nous allons configurer la carte SmartEverthing Board qu'ils m'ont donné lors de cette journée, et nous allons voir à quel point c'est simple pour émettre son premier message sur le réseau SIGFOX.

 

Découverte de la carte SmartEverything Board

Avant d'aller à cette session de découverte, je ne connaissais pas cette carte. Il s'agit d'une petit bijou qui se programme en Arduino. En plus de proposer un modem SIGFOX, elle embarque une série de capteurs : GPS, NFC, Temprature, Humidité, Gyroscope, ... Pour chaque type de capteur, un exemple de programme arduino est proposé dans les modèles de code.

 

Préparation de l'IDE Arduino

Pour utiliser cette carte, il faut installer l'IDE Arduino que l'on télécharge sur Internet. Ensuite, il faut aller dans le menu Board Manager pour ajouter les pilotes de la carte SmartEveryThing.

Installez la partie en Jaune.

Suite à cette première installation vous trouverez la carte dans le menu des Boards.

Branchez la carte SmartEverything sur votre port USB. Puis allez dans le menu Port pour voir si elle est bien détectée.

 

Il faut ensuite charger les librairies pour pouvoir programmer cette carte Arduino.

Installez toutes les librairies SmartEverything.

Ainsi que toutes les librairies Partenaires:

Votre IDE est prêt pour programmer la carte SmartEverything Board

 

Programme pour émettre mon premier message

Pour réaliser un premier programme, il faut brancher la carte à votre PC en utilisant un cable USB.  Dans mon cas, j'ai réalisé ce test à partir de mon iMac. Vérifiez que la carte est bien détectée via le menu Port.

Il faut prendre la SmartEverything USB.

Allez dans les exemples de code. Dans mon cas, j'ai pris le code DataModeEU qui permet d'envoyer un message de 12 bytes en Europe.

Il suffit de cliquer sur la flèche droite pour tester. Dès que l'IDE a envoyé le programme vers la carte, celle-ci envoie un message SIGFOX.

Voici le programme que j'ai utilisé. Pour ce premier test, il vient tout simplement du menu des exemples, je n'ai rien touché ...

/*
SmeIoT Library - DataModeEu
Demostrate how move in data mode for the Telit Sigfox component.
The Library sends an "Hello" String over the SigFox network.
The RGB Green Led ligth on when the Telit sends the message on the air,
ligth off at the positive answer from the component.

created 05 May 2015
by Mik (smkk@amel-tech.com)

This example is in the public domain
https://github.com/ameltech

Telit le51-868-s mor einformatioin available here:
http://www.telit.com/products/product-service-selector/product-service-selector/show/product/le51-868-s/
*/

#include <Wire.h>
#include <SmeSFX.h>
#include <Arduino.h>

char helloMsg[5]= {'H','e', 'l', 'l', 'o'};
bool messageSent;

// the setup function runs once when you press reset or power the board
void setup() {

SerialUSB.begin(115200);
sfxAntenna.begin();
int initFinish=1;

SerialUSB.println("SFX in Command mode");
sfxAntenna.setSfxConfigurationMode(); // enter in configuration Mode

do {
uint8_t answerReady = sfxAntenna.hasSfxAnswer();
if (answerReady){
switch (initFinish){
case 1:                                
SerialUSB.println("SFX in Data mode");
sfxAntenna.setSfxDataMode();
initFinish++;
break;

case 2:
initFinish++; // exit
break;
}
}
} while (initFinish!=3);

SerialUSB.println("sending Hello over the network");
// send Hello on the air
sfxAntenna.sfxSendData(helloMsg, strlen((char*)helloMsg));
}

// the loop function runs over and over again forever
void loop() {

bool answerReady = sfxAntenna.hasSfxAnswer();

if (answerReady) {
if (sfxAntenna.getSfxMode() == sfxDataMode) {

switch (sfxAntenna.sfxDataAcknoledge()) {
case SFX_DATA_ACK_START:
SerialUSB.println("Waiting Answer");
break;

case SFX_DATA_ACK_PROCESSING:
SerialUSB.print('.');
break;

case SFX_DATA_ACK_OK:
ledGreenLight(HIGH);
SerialUSB.println(' ');
SerialUSB.println("Answer OK :) :) :) :)");
break;

case SFX_DATA_ACK_KO:
ledRedLight(HIGH);
SerialUSB.println(' ');
SerialUSB.println("Answer KO :( :( :( :(");
break;
}
}
}
}

Sur le site BACKEND de SIGFOX, on peut se connecter pour voir les messages, et pour configurer une URL de Callback (Il s'agit d'une url pour déclencher un traitement sur un de vos serveurs privés).

Ici le BACKEND montre que je n'ai qu'une carte sur mon abonnement.

Je ne fais pas toutes les pages, mais le BACKEND est assez simple.

Ci -dessous, la liste des messages reçu par le serveur de SIGFOX. Le message envoyé est hello. En cliquant sur la cible, on trouve une géolocalisation de l'émetteur.

La géolocalisation est moins précise qu'un GPS ou un téléphone car il y a moins d'antenne SIGFOX donc la triangularisation est plus difficile.

Dans le BACKEND, on peut programmer des URL callbacks pour lier des traitements sur un GET ou un PUSH. C'est simple et bien pensé. Je n'ai pas testé ce point, ça viendra dans mon prochain article qui portera sur un vrai cas d'utilisation.

 

En conclusion

Nous avons vu l'émission d'un message sur le réseau SIGFOX, mais c'est aussi très simple de programmer une réception. Dans ce cas, pour des raisons d'économies d'énergie, Il faut demander à recevoir un message depuis le client. Ca permet de ne pas alimenter en permanence la carte cliente (ici notre SmartEverything Board). Le but étant de la faire dormir le plus longtemps possible (surtout si vous fonctionnez sur Batterie).

Cet article est un peu long, mais il permet de bien appréhender la complexité. Ca reste à un niveau facile pour les bricoleurs. Surtout si vous avez déjà fait un petit peu d'Arduino.

Il existe d'autres cartes SIGFOX. Je suis en train de tester la dernière carte de YADOM. Mais ce coup-ci, la carte utilise un Raspberry au lieu d'un contrôleur Arduino. Je préfère le coté Raspberry car avec quelques scripts systèmes, on programme plus vite que sur Arduino (pour ceux qui connaissent linux).

Ma prochaine mise en application du réseau SIGFOX sera pour surveiller ma connexion réseau 3G dans ma maison secondaire. Dès que le réseau ne répond plus, la carte SIGFOX me permettra d'être avertit et de pouvoir relancer mon routeur à distance ... Dès que j'ai fini, je vous présenterai mon projet #DIY.

Et vous, pensez-vous utiliser un jour le réseau SIGFOX ? pour quel type de besoins ?

 

Vous n'avez pas compris un point ? Vous vous posez une question ? Vous pouvez nous contacter via le bouton Assistance sur votre gauche. N'hésitez pas à demander un rendez-vous téléphonique avec Domotics.

Vous avez aimé cet article ? Vous pouvez le partager sur vos réseaux sociaux pour soutenir son auteur et l'encourager à écrire de nouveaux articles ...

 

Cet article vous est proposé par Domotics: Domotics habite dans la région Toulousaine. Il est ingénieur en informatique et électronicien amateur. La domotique est pour lui une passion qu'il pratique depuis 1999. En 2003, il décide de partager ses expériences sur le magazine et le forum de touteladomotique.com.

En 2014, il crée sa société de conseils en Domotique ID2domotique.com et sa boutique en ligne laboutiquededomotique.com. Profitez de l'expérience et l'expertise de Domotics en faisant appel à ses services. Les conseils sont gratuits ...

Mise à jour le Mercredi, 16 Décembre 2015 22:59