Resin, Cayenne et Dataplicity …

Plusieurs plateformes de gestion de devices IoT existent sur le marché et je vais m’attarder en premier lieu sur Cayenne de Mydevices.com qui a noué un certain nombre de partenariats comme récemment avec la société Sparkfun conceptrice d’une carte ESP8266 : http://www.ept.ca/2017/07/iot-dev-board-partnership-aimed-makers-engineers/

Je pars donc d’une carte Raspberry Pi 3 dans laquelle j’utilise l’image de Raspbian Linux :

Image for post
Image for post

Je vais y installer un agent de la plateforme de gestion de devices Iot : Cayenne

Image for post
Image for post

avec Etcher :

Image for post
Image for post
Image for post
Image for post

J’installe l’agent officiel dans l’OS en exécution dans la carte RPi :

Image for post
Image for post

J’en profite pour y insérer la dernière version du moteur communautaire Docker :

Image for post
Image for post
Image for post
Image for post

et même Kubeadm pour le joindre le cas échéant à un cluster Kubernetes existant :

Image for post
Image for post

L’agent Cayenne termine son installation et on peut se rendre sur le portail Cayenne :

Là les principales métriques de la carte RPi apparaissent :

Image for post
Image for post

Et notamment un contrôle des ports GPIO de la carte (pour la liaison à des périphériques externes) :

Image for post
Image for post
Image for post
Image for post

On a la possibilité d’effectuer des tâches programmées automatiques comme le reboot automatique de la carte en cas de perte de connexion à Cayenne :

Image for post
Image for post

Ce contrôle peut s’effectuer via une appli officielle dans un smartphone avec les mêmes fonctions :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

On peut également rendre la carte RPi accessible depuis l’extérieur via la plateforme Dataplicity :

Image for post
Image for post

J’installe donc un nouvel agent sur la carte :

Depuis le portail de Dataplicity, j’accède au shell de Raspbian Linux :

Image for post
Image for post

Je peux donc lancer en test l’image Docker pour les cartes ARM 32 Bits (armhf) de FCP en démo :

et le FQDN fourni par Dataplicity me permet l’accès au container sensé tourné sur une IP locale :

Image for post
Image for post

Je termine par une plateforme dont j’ai parlé précedemment et qui me semble la plus avancée (avec un usage industriel) à savoir Resin.io :

Image for post
Image for post
Image for post
Image for post

Resin fournit un OS (à containers) dédié nommé ResinOS qu’il va falloir installer sur la carte RPi :

Image for post
Image for post
Image for post
Image for post

Sachant que Resin permet d’initier du CI sur sa carte avec sa plateforme :

Image for post
Image for post
Image for post
Image for post

Et on insère sa carte SD :

Image for post
Image for post
Image for post
Image for post

Je vais y installer la plateforme Node-Red en suivant ce type de workflow :

Image for post
Image for post

Je clone donc le projet depuis Github en local et je pousse vers la plateforme Resin via les credentials fournis :

Image for post
Image for post

et d’un Dockerfile :

Image for post
Image for post

une fois terminé on peut se rendre sur le portail Resin.io :

Image for post
Image for post

ResinOS fourni également un mode d’accès local avec synchro vers la plateforme Resin.io :

Image for post
Image for post
Image for post
Image for post

Je visualise les infos de la carte sur le portail :

Image for post
Image for post

avec des infos sur la construction de l’appli Node-Red à l’aide d’un container Docker :

Image for post
Image for post

La carte apparait comme géolocalisable :

Image for post
Image for post

avec un accès au shell du container en exécution :

Image for post
Image for post

et un controle distant (Reboot, Purge, Shutdown etc …) :

Image for post
Image for post

Là encore le FQDN (avec l’IP publique) fourni par la plateforme, permet un accès à l’application en excution dans le container depuis Internet :

Image for post
Image for post

J’utilise le flow communautaire suivant dans Node-Red pour avoir les infos matérielles comme dans Cayenne :

Image for post
Image for post

avec visualisation des métriques de la carte :

Et on peut aller plus loin avec l’utilisation du Serverless comme avec Apache OpenWhisk :

Image for post
Image for post

Pour finir, des boitiers étanches et résistants à usage industriel existent maintenant pour ce type de carte :

Image for post
Image for post

Comme avec ce module Caméra relié à une carte RPi :

Image for post
Image for post

Ainsi que des liaisons cellulaires (3G/4G) comme les dongles Soracom :

https://resin.io/blog/soracom_3g_dongle/

Image for post
Image for post

Exemple d’un usage industriel de Resin avec Petrolog qui remontent des informations sur des pompes d’extraction pétrolières depuis ce type de carte :

https://resin.io/blog/petrolog-remotely-managing-oil-wells-with-resin-io/

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Ou pour des expériences aérospatiales comme avec l’Astro Pi et l’Agence Spatiale

Européenne et son module rempli de capteurs “Sense Hat” (capable donc de resister à des conditions physiques extrêmes dans l’espace) :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

avec potentiellement des batteries autonomes longues durées (pour l’autonomie de ces cartes) :

Image for post
Image for post
Image for post
Image for post

Quelques liens supplémentaires :

https://resin.io/blog/multi-stage-docker-builds-for-tiny-iot-images/

http://www.instructables.com/id/Cayenne-Raspberry-Pi-IoT-Simple/

https://resin.io/blog/travis-ci/

https://resin.io/blog/pagerduty-and-iot/

https://github.com/craig-mulligan/resin-pager

https://github.com/resin-io-projects/esp8266

Originally published at telegra.ph on July 31, 2017.

Above the clouds, the sky is always blue ...

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store