Dans cet article, nous allons créer une station météo qui sera capable d’envoyer des informations sur la plateforme Thingspeak.
Nous pouvons donc imaginer notre carte Raspberry, à l’aide d’une carte Sense HAT, comme un objet connecté. Un programme en Python permettra de récupérer les informations du Sense HAT (température et Humidité), et les envoyer sur les serveurs de Thingspeak, permettant d’afficher des graphiques de ces grandeurs
Un avantage d’utiliser une carte Arduino, et qu’elle possède un convertisseur analogique/numérique. Ce convertisseur permet d’utiliser des capteurs de températures et d’humidité très facilement, et ceux-ci coûtent peu (quelques euros).
Mais ces cartes ne possèdent pas d’origine d’une interface permettant une connexion Internet.
Les cartes Raspberry possèdent de base d’une interface Ethernet et Wifi. Mais pas d’un convertisseur analogique/numérique.
Heureusement, l’équipe de développement a réaliser le Sense HAT :
Le module Sense HAT regroupe une série de capteurs, une matrice led, des entrées et sorties digitales ou analogiques sur une carte d’extension tout-en-un pour une utilisation didactique.
Il est donc assez facile, sur une carte Raspberry Pi, de récupérer désormais une température et un taux d’humidité.
Installation du Sense HAT :
Il faut déjà éteindre le Raspberry.
Une fois redémarré, ouvrir un terminal et taper les commandes suivantes :
Nous pouvons ensuite tester la récupération de la température. Créer un fichier Python, et l’exécuter :
On peut également tester l’humidité :
Si tout est fonctionnel, nous pouvons donc passer à la création d’un compte sur Thingspeak.
Mise en place de Thingspeak :
ThingSpeak est une un site web pour l’« Internet des objets », permettant de stocker et de collecter les données des objets connectés en passant par le protocole HTTP.
Afin de pouvoir envoyer les données sur ThingSpeak à des fins d’analyse et de traitement, vous devez créer votre compte :
https://thingspeak.com/login, puis cliquez sur Create One.
Une fois connecté, nous allons devoir créer ce que ThingSpeak appelle un channel.
Cela représente un ensemble de données regroupées entre elles et qui proviennent d’un objet connecté. Un channel est composé de champs (« field » en Anglais). Il peut y en avoir jusqu’à 8.
Et chaque field représente une donnée.
Nous allons créer le channel Température et Humidité qui représentera le Sense HAT dans notre installation.
Dans notre channel nous allons créer deux fields :
– field1 = Pression
– field2 = Température
– field3 = Humidité
Cliquez sur New Channel.
Remplissez les premiers champs: Name, Description, Field 1, Field 2 et Field 3. Tous les autres ne seront pas utiles pour le moment.
Nous disposons désormais d’un channel dans lequel nous allons pouvoir envoyer nos données.
L’URL permettant d’envoyer des données, était construite sous cette forme :
https://api.thingspeak.com/update?api_key=XXXXXXXXXXXXXX&field1=XXX&field2=XXX&field3=XXX
XXXXXXXXXXXXXX correspond à votre clé API d’écriture, que vous pouvez retrouver dans les menus de Thingspeak.
Pour rappel :
– Le symbole ? concatène l’URL et la chaîne de paramètres.
– Le symbole & sépare les paramètres multiples.
Nous pouvons donc passer à la création du code permettant de récupérer la température, et l’envoyer vers Thingspeak :
Il ne faut pas oublier de compléter la ligne API = avec votre clé API.
Faites quelques essais, et vous devez retrouver normalement vos données sur Thingspeak :
Automatiser le script
Il faut désormais exécuter le script automatiquement. Nous pouvons utiliser le crontab, disponible sur les distributions Linux. Pour plus d’informations sur les tâches cron, je vous conseille cet article sur Wikipedia.
Dans un terminal, tapez la commande suivante :
Puis, ajoutez la ligne suivante :
… qui va exécuter votre script toutes les 15 minutes.