Applications mobiles code barres RFID
durcies, professionelles

Le générateur d’applications mobiles est capable de traiter les messages JSON issues de l’IOT (Internet of Things- Internet des Objets) : exemple, détails et sources d’applications

Kalipso Studio : traiter les données IOT facilement

par W. Piedfort.

Les traitements de l’IOT paraissent à priori compliqués : avec le générateur KALIPSO, c’est simple ! On va vous montrer comment. En pièce jointe, une application de test va lire les données sur le réseau SIGFOX d’un de nos objets connectés

Rappels de base sur l’IOT - Internet des Objets :

Présentation de l’IOT
L’IOT est un objet qui émet un signal court sur une adresse IP, incluant des informations de capteurs. Il est possible aussi qu’il exécute des commandes reçues.
Chaque fournisseur d’IOT sa propre façon d’envoyer ses informations, mais toujours par un format nommé "JSON". Des IOT internes comme pour l’industrie sont relayés par câbles ou ondes via des concentrateurs spécifiques qui donnent un accès IP.
Des IOT a large portée géographique émettent (en grandes ondes) et les messages sont relayées par des opérateurs terrestres comme SIGFOX et LORA, ces derniers procurant les accès par HTTP aux contenus des messages de chaque objet.

Exemple de format de message JSON
Voici le résultat d’une requête HTTP (en "GET") de 3 jeux d’informations sur un objet donné qui possède les capteurs pour envoyer ces valeurs ; les informations données par cet objet sont principalement classées :
- son nom commun : Name,
- son identifiant : DeviceID,
- la dernière fois que son signal a été reçu : LastSeen,
- son niveau de batterie : Battery,
- des valeurs géographiques comme son altitude, vitesse, cap (direction), longitude, latitude (si pas à l’intérieur d’un bâtiment) ,
- des types d’évènements analysés par le firmware de l’objet, ou autre capteurs, interrupteurs, détecteurs,
- des valeurs comme la température, pression atmosphérique,
- des niveaux et adresse de tour de captage de signal : rssi, Tower
- le message brut
- le N° de séquence du message pour identifier les manquants,
etc...

["device_id" :"$oid" :"582998fc6d79612934000233","Latitude":45.5895767211914,"Longitude":5.29650688171387,"Name" :"1ere","Owner" :"No owner","DeviceID" :"73709","UnixStamp" :"1488517759","LastSeen" :"2017-03-03T05:09:19.000Z","Battery":18.0,"Cap":0.0,"Altitude":0.0,"Speed":0.0,"Sat":0,"type_event" :"No motion","temp":16.5,"press":984.0,"seq_number":889,"extra":null,"rssi" :-133.0,"tower" :"0753","raw_message" :"000084410000764494000000", "lat_tower":45.59115612608,"lon_tower":5.30742166001188,"device_id" :"$oid" :"582998fc6d79612934000233","Latitude":45.5895767211914,"Longitude":5.29650688171387,"Name" :"1ere","Owner" :"No owner","DeviceID" :"73709","UnixStamp" :"1488488788","LastSeen" :"2017-03-02T21:06:28.000Z","Battery":37.0,"Cap":0.0,"Altitude":0.0,"Speed":0.0,"Sat":0,"type_event" :"No motion","temp":16.7999992370605,"press":989.0,"seq_number":888,"extra":null,"rssi" :-136.0,"tower" :"0753","raw_message" :"66668641004077442c010000", "lat_tower":45.5926106096237,"lon_tower":5.30607222748755,"device_id" :"$oid" :"582998fc6d79612934000233","Latitude":45.5895767211914,"Longitude":5.29650688171387,"Name" :"1ere","Owner" :"No owner","DeviceID" :"73709","UnixStamp" :"1488474290","LastSeen" :"2017-03-02T17:04:50.000Z","Battery":51.0,"Cap":0.0,"Altitude":0.0,"Speed":0.0,"Sat":0,"type_event" :"No motion","temp":19.2999992370605,"press":990.0,"seq_number":887,"extra":null,"rssi" :-138.0,"tower" :"210F","raw_message" :"66669a41008077449c010000", "lat_tower":45.5910775631018,"lon_tower":5.29776771433927]

Ce peut paraitre effrayant à lire à l’œil, mais une fois bien classé suivant les règles, ou dans un tableau, c’est clair.

Usage de KALIPSO pour traiter les messages JSON : programme de démonstration

Sans refaire ici un cours sur les règles de JSON qui classe les informations en cascade, basiquement on a demandé ici :
- un objet (entre crochets "[]"),
- de 3 enregistrements : chaque enregistrement est entre accolades "{}" et est séparé par une virgule, chaque enregistrement peut contenir des objets,
- chaque enregistrement est un "tableau" de couple "tag":valeur séparés par des virgules, un tag pouvant contenir aussi un enregistrement.

Par des commandes appropriées et simples d’emploi, KALIPSO permet d’isoler les valeurs intéressantes et de les placer en tableaux ou graphiques, en base embarquée sur le terminal mobile.

Ici nous avons fait un programme de démonstration sur Android qui fonctionne sur les messages émis d’un objet "vivant" tous les jours et qui va capter des données réelles et en montre pas à pas le traitement pour en sortir dans la première partie de ce cas la date et heure de la dernière fois que l’objet a été "vu" ou a émis et en deuxième partie un graphique de la capacité de la batterie embarquée.

L’extraction de la date se fait en 5 lignes de programme :
- Http Request (Run Locally ; 0 ; VAR(reponse_iot_messages) ; TVAR(1) ; TVAR(2) ; TVAR(3) ; VAR(add_messages_iot) ; "devices/73709/positions.json ?key=xxxx&num=1&type_event=all" ; 80 ; utf-8 ; "" ; "" ; Get ; Yes ; Yes ; "" ; "")
- JSON Get Array Item (VAR(reponse_iot_messages) ; 1 ; TVAR(jeudedonnees) ;TVAR(jsontargettype))
- JSON Get Value (TVAR(jeudedonnees) ; "LastSeen" ; Yes ; TVAR(LastSeen) ; TVAR(jsontargettype))
- Set Value (CTRL(DH_derniermessage) ; String ; ExtractString(TVAR(LastSeen), 1, "."))

Exemple : programme de démonstration : application mobile de lecture d’un objet connecté

Binary Data - 5.2 Mo
Application de demo de traitement des messages IOT avec Kalipso Studio
Analyse JSON et graphiques issus de données IOT

Ce programme de démonstration pour Andoid effectue une lecture de données sur l’Internet d’un de nos IOT en vie, en ressors un champ (date et heure du dernier message) dans un premier cas, et ensuite analyse 10 valeurs de niveau de batterie et les affiche en graphiques.
Le principe est le même avec une routine qui tourne 10 fois avec un While (2 lignes de plus) et un affichage des données en base locale (1 ligne).

On peut afficher de même les coordonnées géographiques et le trajet de l’objet sur une carte, en temps quasi-réel (1 messages toutes les 10 minutes)

Ici une apk exécutable de test et le code source de l’appli à adapter sous KALIPSO STUDIO .

Zip - 431.6 ko
Application d’affichage de résultats d’IOT
Sources sous Kalipso d’accès à des résultats de capteurs IOT sous Sigfix

Tester KALIPSO STUDIO PRO

Demandez une info / un devis

Portfolio

Graphique niveau d'un capteur d'un IOT IOT : internet des objets : connecter son terminal à un objet
| | Plan du site | PRODUCTIVIX Sarl - Depuis 2002- Tel : 04-37-05-13-84 |Entrez votre N° avec "+" et indicateur international :
| Suivre la vie du site RSS 2.0