Enregistrez les données du capteur Raspberry Pi avec ThingSpeak et analysez-les

1591891207 Enregistrez les donnees du capteur Raspberry Pi avec ThingSpeak et
1591891207 Enregistrez les donnees du capteur Raspberry Pi avec ThingSpeak et

Fréquemment, beaucoup de données sont générées dans des projets qui fonctionnent 24h / 24. Une façon de les stocker en permanence est de stocker les données dans une base de données locale. Cependant, il y a aussi quelques raisons qui s’y opposent. Afin de garder les données mesurées (par exemple, à partir d’une station météo) disponibles à l’avenir, il est également possible d’éviter divers services en ligne.

L’un de ces fournisseurs est ThingSpeak. Ici, vous pouvez créer un compte gratuit pour les petites applications et transférer ses données très facilement. Et c’est exactement de cela que traite ce didacticiel: comment transférer des données de capteur vers ThingSpeak et les évaluer plus tard.

Matériels requis

Tout ce dont vous avez besoin est Raspberry PI avec une connexion Internet et un capteur dont vous mesurez les données. Même l’activité du processeur peut être enregistrée. Dans ce tutoriel, j’ai utilisé un DHT22, à l’aide de laquelle je mesure et enregistre la température et l’humidité.

Les capteurs et modules suivants seraient utiles pour une station météo:

Une liste d’autres composants peut être trouvée dans cet article: 50 des capteurs et modules Raspberry Pi les plus importants

Configuration d’un compte ThingSpeak

Avant de commencer, vous avez besoin d’un compte sur ThingSpeak. Créer un compte ici si vous n’en avez pas encore. Ensuite, créez une nouvelle chaîne sur https://thingspeak.com/channels .

Ici, vous donnez un nom à la chaîne ainsi que les champs que vous souhaitez utiliser. Au total, jusqu’à 8 champs peuvent être utilisés. Les noms donnés n’ont aucune influence sur la transmission des données, car nous ne spécifions que «champ1», «champ2», etc. Tous ces noms attribués sont encore modifiables ultérieurement.

truc nouveau canal

Après avoir enregistré la chaîne ci-dessous, vous serez automatiquement redirigé vers l’onglet «Vue privée». Ici, les champs attribués sont affichés sous forme de diagramme. Plus haut, vous trouverez le «Identifiant de la chaine« . Nous en aurons bientôt besoin.

Ensuite, nous passons à l’onglet «Clés API». Les deux valeurs de « Écrire la clé API » aussi bien que « Lire la clé API»Sont également nécessaires pour que nous puissions écrire ou récupérer des données.

Connexion et configuration du capteur de température

Si vous ne souhaitez pas utiliser le DHT11 ou DHT22, vous pouvez ignorer ce chapitre.

J’ai déjà discuté en détail des deux capteurs ici, donc ce n’est que la connexion pour rappel (résistance 10kΩ):

Planche à pain d'humidité DHT11

Si vous n’avez jamais utilisé le capteur auparavant et que la bibliothèque n’est pas encore installée, nous devons d’abord l’installer. Certains packages sont nécessaires pour cela:

sudo apt-get update
sudo apt-get install build-essential python-dev python-openssl git

Maintenant, nous installons la bibliothèque pour lire les capteurs DHT11 / 22:

git clone https://github.com/adafruit/Adafruit_Python_DHT.git && cd Adafruit_Python_DHT
sudo python setup.py install

Si tout s’est déroulé sans erreur, nous pouvons déjà procéder.

Utilisation de la bibliothèque Raspberry Pi ThingSpreak

Afin de pouvoir utiliser le service, il est possible d’envoyer simplement les données via « POST » ou de les récupérer via « GET ». Les fonctions sont disponibles dans à peu près n’importe quel langage de programmation et avec un peu de connaissances, le transfert de données devrait être rapide. Les réponses sont en principe en JSON.

Si vous n’avez pas assez d’expérience ou si vous n’avez tout simplement pas envie de l’écrire vous-même, vous pouvez également utiliser la bibliothèque ThingSpeak. Pour cela nous l’installons simplement par pip:

sudo pip install thingspeak

D’une part, une bibliothèque Python est créée et, en plus, une application terminal. Vous pouvez également appeler thingspeak via la console (ou depuis un autre programme C ++ / Java).

Commençons donc. Notre petit script Python devrait lire la température et l’humidité du DHT22 toutes les 15 secondes et l’envoyer à notre chaîne. De plus, les données doivent ensuite être récupérées à nouveau (cela n’est pas nécessaire dans les applications qui n’envoient que des données, il ne s’agit donc que d’un exemple de démonstration).
Nous allons créer un nouveau fichier,

sudo nano thingspeak_example.py

qui obtient le contenu suivant (enregistrer et quitter avec CTRL + O, CTRL + X):

Vous devez ajuster les lignes 5 à 7 en conséquence. La ligne 8 ne doit être modifiée que si vous utilisez un autre GPIO pour le capteur.

Bien sûr, si vous n’utilisez pas le capteur DHT22, le code doit être ajusté un peu.

Obtenez des données dans le panneau Web et via l’API

vue des choses

Les données du panneau sont affichées avec un retard de quelques secondes «quasi live». Vous pouvez personnaliser les panneaux (apparence et affichage des données) et même écrire vos propres idées pour les données. Pour ces soi-disant applications, il vous suffit de maîtriser un peu de HTML, CSS et Javascript. Alternativement, vous pouvez également télécharger des plugins depuis le Forum.

Si vous souhaitez récupérer les données via l’API, vous pouvez le faire facilement via JSON. Vous devez remplacer votre Channel ID (avec moi: 206897) ainsi que votre « Read API Key » (avec moi: 9EZ7E0918UVVAGAY) dans le lien suivant:

https://api.thingspeak.com/channels/206897/feeds.json?api_key=9EZ7E0918UVVAGAY

De plus, il existe de nombreux autres paramètres que vous pouvez spécifier pour limiter, additionner ou filtrer les données. Vous pouvez les trouver dans le Wiki MathWorks.

En conclusion, je voudrais souligner que vous devez toujours être conscient de ce que vous transférez exactement. Même si ThingSpeak est un fournisseur réputé, vous devez enregistrer vous-même les données particulièrement sensibles, même si cela est un peu plus compliqué et moins sûr. Pour les projets non critiques tels que les stations météorologiques ou, par exemple, la surveillance d’un aquarium, je ne vois aucun danger.