Connecter nos projets à Internet est devenu beaucoup plus facile et moins cher ! Les 6 $ Framboise Pi Pico W, une mise à niveau du Raspberry Pi Pico d’origine, a apporté une excellente mise à jour : le Wi-Fi. Cette mise à niveau, ainsi que le prix de 6 $, permet aux fabricants d’exploiter la puissance du SoC RP2040 pour une pléthore d’applications Internet des objets. Le Pico W est également en tête de liste de nos meilleures cartes RP2040.
Nous avons déjà expliqué comment transmettre des données vers et depuis un Raspberry Pi Pico W vers un autre service Web, Anvil. Mais que se passe-t-il si vous souhaitez simplement collecter des données et les envoyer dans le monde ? Il existe de nombreuses façons de le faire, mais la plus simple doit être IFTTT.
IFTTT (If This Then That) est un service Web qui peut prendre des données à partir de nombreuses entrées différentes (Twitter, domotique, Google, Facebook, etc.) et les envoyer à d’autres services.
Dans ce projet, nous utiliserons le service le plus basique, les webhooks, pour envoyer une requête HTTP POST d’un Raspberry Pi Pico W au service IFTTT. Sur IFTTT nous allons créer une applet qui va intercepter le webhook, et déclencher un tweet à envoyer sur Twitter.
Pour ce projet, vous aurez besoin
Le circuit du capteur de température
Notre circuit est simple, composé uniquement du Raspberry Pi Pico W et d’un capteur de température. Le DHT11 est un capteur de température à quatre broches à faible coût qui est omniprésent dans la communauté des fabricants. En regardant de face (la « cage » bleue), nous nous connectons au Raspberry Pi Pico W comme suit :
Broche 1 : (Fil rouge) Connectez VCC à 3V3(OUT) du Pico W.
Broche 2 : (Fil jaune) Connectez la sortie de données au GP4 du Pico W.
Broche 3 : Pas de connection.
Broche 4 : (Fil noir) Connectez GND à GND du Pico W.
Configurer IFTTT
IFTTT (If This, Then That) est le conduit qui relie notre Raspberry Pi Pico W à Twitter. IFTTT est un service gratuit qui offre une myriade de façons de connecter différents services de données ensemble.
Nous allons créer une applet qui réagit à un webhook (une URL personnalisée) envoyant des données à IFTTT. Ensuite, IFTTT ajoutera les données dans un message qui sera envoyé à nos abonnés sur Twitter.
1. Dans un navigateur visiter IFTTT et connectez-vous / créez un compte.
2. Cliquez sur Créer.
3. Cliquez sur Ajouter. C’est notre événement déclencheur. Si cela se produit, notre applet démarre. Dans notre cas si un webhook est envoyé depuis le Raspberry Pi Pico W.
4. Recherchez webhook, puis cliquez sur l’icône webhook.
5. Cliquez sur Recevoir une demande Web. Ceci est notre demande, envoyée par le Raspberry Pi Pico W.
6. Définissez le nom de l’événement sur Post_Tweet, puis cliquez sur Créer un déclencheur.
7. Cliquez sur Puis cela ajouter. C’est le résultat de notre déclencheur, dans ce cas un Tweet est envoyé.
8. Recherchez Twitter, puis cliquez sur l’icône Twitter.
9. Sélectionnez Publier un Tweet.
dix. Vérifiez que le bon compte Twitter est sélectionné, vous devrez peut-être lier votre compte Twitter à IFTTT. Remplacez le texte du tweet par votre propre message personnalisé. Lier votre compte Twitter à IFTTT est un processus automatisé, qu’IFTTT déclenchera et vous demandera de confirmer.
11. Cliquez sur Ajouter un ingrédient et sélectionnez Valeur 1. Terminez ensuite le reste du message, en précisant dans ce cas que la température est en degrés Celsius. Cliquez sur Créer une action pour enregistrer. Les ingrédients sont la façon dont IFTTT ajoute des informations supplémentaires à notre tweet en extrayant les données de notre URL personnalisée.
12. Cliquez sur Continuer.
13. Vérifiez les détails de l’applet, activez l’option de notification et cliquez sur Terminer lorsque vous êtes prêt. Les notifications nous permettent de déboguer l’applet en cas de problème.
L’applet IFTTT a été créée, mais nous n’avons pas encore l’URL du webhook. Cette URL est ce qui envoie les données de température du Raspberry Pi Pico W à notre service IFTTT. L’URL nécessite notre déclencheur (Post_Tweet) et une clé API, déverrouillant l’accès IFTTT.
1.Visite ce lien dans un nouvel onglet/fenêtre du navigateur.
2. Copiez le lien Faire une demande Web POST ou GET dans le bloc-notes ou un éditeur de texte. Votre texte affichera une clé API correcte, pour des raisons de sécurité, nous avons modifié le texte.
https://maker.ifttt.com/trigger/event/json/with/key/YOUR API KEY HERE
3. Supprimez /json et remplacez event par Post_Tweet.
https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR API KEY HERE
Vous avez maintenant une URL de webhook valide qui reliera votre Raspberry Pi Pico W à Twitter via IFTTT.
Configuration du Raspberry Pi Pico W
Notre Raspberry Pi Pico W agit comme un dispositif de collecte de données. Il se connecte à notre Wi-Fi et prend une lecture de température toutes les heures. Celui-ci est ensuite envoyé à IFTTT à l’aide d’une URL de webhook personnalisée. IFTTT envoie ensuite le message à Twitter selon l’applet que nous venons de créer.
Notre objectif est maintenant d’installer la dernière version du firmware MicroPython pour notre Raspberry Pi Pico W, puis d’écrire quelques lignes de code MicroPython pour se connecter à notre Wi-Fi, prendre une lecture de température, puis envoyer ces données à IFTTT.
1. Suivre ce guide pour télécharger et installer le micrologiciel MicroPython et configurer Thonny.
2. Ouvrez Thonny et créez un nouveau fichier.
3. Importez trois modules de code. Réseau permet au Pico W de se connecter à un réseau Wi-Fi. Urequests est une version des requêtes, un moyen de travailler avec des données Web, pour MicroPython. DHT fait référence au capteur de température DHT11 utilisé dans le projet.
import network
import urequests
import dht
4. Importez deux autres modules de code. Depuis le module Time, importez la fonction sleep, nous l’utiliserons pour ajouter une pause au projet. Depuis la broche d’importation du module Machine, cela permet à notre code d’interagir avec le GPIO.
from time import sleep
from machine import Pin
5. Créer un objet, « capteur » qui relie notre code au DHT11 connecté via le GPIO. Cet objet nous permet d’interagir avec le capteur connecté sur la broche 2, en interrogeant les données de température.
sensor = dht.DHT11(Pin(2))
6. Créez un objet « wlan » et utilisez-le pour connecter le code au Wi-Fi sur le Raspberry Pi Pico W, puis activez le Wi-Fi.
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
sept. Connectez votre Pico W à votre point d’accès Wi-Fi à l’aide de son SSID et de son mot de passe.
wlan.connect("SSID","PASSWORD")
8. Faites une pause de cinq secondes avant de continuer. Ce n’est pas strictement nécessaire car la connexion Wi-Fi précédente est un appel bloquant qui se connectera ou échouera, puis libérera le blocage. Cette pause est présente pour laisser une petite marge de manœuvre supplémentaire.
sleep(5)
9. Imprimer l’état actuel de la connexion Wi-Fi. Ce sera soit True pour une connexion réussie, soit False s’il n’a pas pu se connecter.
print(wlan.isconnected())
dix. Ajoutez une boucle pour exécuter en continu le code suivant. Une boucle while True exécutera le code en continu jusqu’à ce que le Pico W soit éteint. Notez que le code qui suit cette ligne est indenté pour montrer qu’il fait partie de la boucle.
while True:
11. Prenez une lecture avec le DHT11. Nous devons le faire pour obtenir les données brutes.
sensor.measure()
12. Enregistrez la température actuelle dans un objet, la température.
temperature = sensor.temperature()
13. Imprimez la température sur le Python Shell (REPL). Ceci est utile pour déboguer tout problème. Il doit afficher la température à chaque itération de la boucle.
print(temperature)
14. Créez un objet, message, pour stocker l’URL de webhook unique que nous avons créée précédemment. À la fin de l’URL, ajoutez ?value1= et assurez-vous qu’il est contenu entre guillemets » « . N’oubliez pas d’ajouter votre clé API IFTTT unique.
message = "https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR IFTTT API KEY HERE?value1="
15. Sur la même ligne, ajoutez la température actuelle stockée dans l’objet « température ». Notez que nous devons convertir la température d’un entier / flottant en une chaîne à l’aide de la fonction str(). Votre ligne de message devrait maintenant se lire comme suit.
message = "https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR IFTTT API KEY HERE?value1="+str(temperature)
16. Publiez le message sur Twitter en utilisant urequests.post. Cela envoie essentiellement les données à IFTTT via l’URL du webhook, et IFTTT les envoie ensuite à Twitter.
urequests.post(message)
17. Mettez le code en pause pendant une heure (3600 secondes) avant de permettre à la boucle de se répéter. IFTTT a une limite de débit de 25 tweets par jour, donc pour avoir un flux constant de données, nous devons limiter les tweets à un par heure. Si vous dépassez cette limite, IFTTT désactive l’applet jusqu’au lendemain.
sleep(3600)
18. Enregistrez le code sur votre Raspberry Pi Pico W sous tweet_temp.py
Liste complète des codes
import network
import urequests
import dht
from time import sleep
from machine import Pin
sensor = dht.DHT11(Pin(2))
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID","PASSWORD")
sleep(5)
print(wlan.isconnected())
while True:
sensor.measure()
temperature = sensor.temperature()
print(temperature)
message = "https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR IFTTT API KEY HERE?value1="+str(temperature)
urequests.post(message)
sleep(3600)
Tester et exécuter le code
Avant de déployer correctement le projet, nous devons tester que le code fonctionne.
1. Cliquez sur le bouton Exécuter, situé dans le coin supérieur gauche de Thonny.
2. Vérifiez la sortie. Vous devriez voir Vrai, confirmant que nous sommes connectés au Wi-Fi. Ensuite, la température devrait apparaître.
3. Visitez votre compte Twitter et vérifiez que le message a été publié. Cela devrait prendre environ 10 à 20 secondes pour apparaître.
4. Cliquez sur Arrêter pour arrêter le code en cours d’exécution.
Avec le code testé avec succès, nous pouvons maintenant configurer le code pour qu’il s’exécute automatiquement au démarrage du Raspberry Pi Pico W.
1. Enregistrez le code sur votre Raspberry Pi Pico W en tant que main.py. MicroPython (sur n’importe quel appareil) recherchera main.py lors de sa mise sous tension. S’il est présent, le code à l’intérieur de ce fichier est exécuté automatiquement.
2. Débranchez le câble micro USB du Pico W, puis réinsérez-le pour forcer un redémarrage.
3. Vérifiez votre compte Twitter pour le tweet correspondant.