Publié par
Il y a 1 année · 4 minutes · IoT

Atelier – Outillage 2 : Ajouter des entrées / sorties à un Raspberry Pi

Recette IoT de l'atelier Xebia

Plus d’informations sur les ingrédients :

Dans un précédent article, nous avons monté un modem Sigfox sur notre Raspberry Pi. C’était une belle première étape, mais elle ne concerne qu’une partie de notre objet. Il est en effet temps de doter notre Raspberry Pi communicant de possibilité d’interagir avec son environnement. Nous allons donc l’équiper de Diodes Electro Luminescentes (DEL) pour illustrer la possibilité de piloter notre objet depuis les nuages, et de capteurs de température, humidité et luminosité pour que notre objet remonte les variables de son environnement sur une plateforme centralisée.

Nous pourrions brancher tous ces capteurs directement sur le Raspberry Pi, mais comme nous avons fait l’acquisition d’un shield Arduino, il est plus facile de centraliser la totalité des interactions (et donc du code) au niveau de ce dernier. Le schéma suivant présente le montage tel que nous l’avons imaginé. Il sera nécessaire de le respecter à la lettre si vous souhaitez suivre ce tutoriel pas à pas, en vous attachant en particulier à respecter les branchements sur les Pin. Ensuite, libre à vous de laisser vagabonder votre imagination !

Ardupi-BBraspbErry

Nous vous rappelons, si vous ne l’avez pas fait, que dans l’article précédent, un script Ansible permet d’installer tous les programmes décrits dans cet article. N’oubliez pas de vous mettre à jour !

Ajouter des DELs en sortie.

Avant toute chose, faisons un petit rappel élémentaire d’électricité, niveau 4e : si l’on applique une tension trop élevée sur une DEL, celle-ci crame sans autre forme de cérémonie. Autrement dit, même sur du 3,3 ou du 5 volts, protégez vos DEL avec des résistances, ou tout le paquet va y passer :).

Nous avons arbitrairement décidé d’équiper notre objet de 3 indicateurs de sortie, à savoir des DELs rouge, verte et bleue (quelle originalité). Protégées par des résistances de 1kΩ, vous pouvez initialement tester votre montage en les reliant en parallèle entre l’alimentation 5V de votre shield, et la masse (deuxième rappel de 4e, une DEL a un sens de fonctionnement).

Ensuite, si nous voulons piloter l’allumage de nos DEL, il nous faut les relier sur les bornes d’entrée / sortie pilotées par le shield.

Le code C permettant de les allumer / éteindre est extrêmement simple.

pi@raspberrypi:~/sigfox $ make TARGET=02-light-leds
pi@raspberrypi:~/sigfox $ sudo ./02-light-leds
***  Lighting LEDs in sequence Red / Green / Blue   ***

Bravo, nous avons maintenant un arbre de Noël :)

Prendre connaissance de son environnement en entrée

Là encore, rien de vraiment complètement délirant. Nous avons choisi d’utiliser des capteurs proposés par la société Grove. Mais n’importe quel capteur fera l’affaire, si tant est que vous connaissez le code nécessaire à son interrogation.

Nous avons choisi d’avoir trois points d’entrée : température, humidité et luminosité. Point intéressant : le capteur humidité / température est un capteur numérique, alors que le capteur de luminosité est analogique.

Le code d’exemple de ces capteurs (temperature / humidité et luminosité) suffit amplement à notre bonheur dans un premier temps.

pi@raspberrypi:~/sigfox $ make TARGET=03-print-luminance
pi@raspberrypi:~/sigfox $ sudo ./03-print-luminance
***  Measures   ***
Luminance : 20 lux
pi@raspberrypi:~/sigfox $ make TARGET=04-print-temperature-and-humidity
pi@raspberrypi:~/sigfox $ sudo ./04-print-temperature-and-humidity
***  Measures   ***
Humidify : 75 %
Temperature : 22°C

Consommer les ressources avec frugalité

Il est temps maintenant de tout combiner pour atteindre notre objectif : envoyer les données environnementales vers Sigfox, et recevoir en retour une configuration d’allumage des DEL.

A toutes fins utiles, nous vous rappelons que votre compte Sigfox vous permet d’envoyer 140 messages par jour, d’un payload limité. Il nous a donc semblé pertinent, plutôt que de mettre l’envoi vers Sigfox dans une boucle, d’ajouter une action humaine qui déclenche cette action.

C’est pour cela que nous avons ajouté un bouton poussoir à notre montage. Une fois encore, le code de ce simple bouton ne présente pas de difficulté.

pi@raspberrypi:~/sigfox $ make TARGET=05-detect-button-push
pi@raspberrypi:~/sigfox $ sudo ./05-detect-button-push
*** Waiting for user action (push button) ***
Button pressed

Emballé c’est pesé

C’est l’heure du grand final, et de combiner le code produit pendant cet article, avec celui produit lors de notre article de découverte du modem Sigfox. Mais ça, ce sera pour une autre fois.

Pablo Lopez
Pablo est directeur technique chez Xebia et formateur Hadoop certifié par Cloudera au sein de Xebia Training .

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *