- Composants requis
- Schéma
- Configuration Thinger.io pour l'enregistreur de température ESP8266
- Configuration IFTTT pour l'enregistreur de données NodeMCU
- Programmation NodeMCU pour l'enregistrement des données
- Journalisation des données sur Thinger.io à partir de NodeMCU
- Création d'un point de terminaison dans Thinger.io pour envoyer une alerte par e-mail
Nous avons précédemment utilisé NodeMCU pour enregistrer les données de température dans la feuille Google. Maintenant, nous allons envoyer des données au cloud IoT Thinger.io et les afficher dans un format graphique attrayant. Un capteur BMP180 est interfacé avec NodeMCU ESP8266 pour collecter les données de température, d'humidité et d'altitude, qui seront envoyées à la plate-forme Thinger.io. Dans ce didacticiel, nous allons apprendre à gérer différentes fonctionnalités de la plate-forme thinger.io, telles que les appareils, les points de terminaison, les compartiments de données ou les jetons d'accès.
Composants requis
- NodeMCU ESP8266
- Capteur de pression BMP180
- Fils de cavalier
- Planche à pain
Schéma
Le schéma de circuit de cet enregistreur de données ESP8266 est très simple, ici seul le capteur BMP180 est interfacé avec NodeMCU.
Le capteur BMP180 utilise le protocole de communication I2C. Vous devez donc connecter les broches SCL et SDA du BMP180 aux broches SCL et SDA (D1 et D2) de NodeMCU. Connectez également les broches V IN et GND du BMP180 à 3,3 V et GND de NodeMCU. Ne connectez pas le capteur directement à 5V car cela peut endommager le capteur de façon permanente.
Pour en savoir plus sur NodeMCU, consultez divers projets IoT basés sur NodeMCU ESP8266.
Configuration Thinger.io pour l'enregistreur de température ESP8266
Thinger.io est une plateforme open-source pour l'Internet des objets. Il fournit tous les outils nécessaires pour prototyper, mettre à l'échelle et gérer les produits connectés de manière très simple. Thinger.io fournit trois outils essentiels à savoir Data Bucks, Dashboard et Endpoint pour travailler avec les données des appareils; ces outils peuvent être utilisés pour visualiser les données de l'appareil et étendre l'interopérabilité des appareils.
Data Bucks: L'outil Data Bucks peut être utilisé pour stocker les données de l'appareil de manière évolutive, en programmant différents intervalles d'échantillonnage ou en enregistrant des événements déclenchés par des appareils.
Tableau de bord: L' outil de tableau de bord comporte des panneaux avec des widgets personnalisables qui peuvent être créés en quelques minutes à l'aide de la technologie glisser-déposer pour visualiser les données en temps réel et stockées.
Points de terminaison: les points de terminaison peuvent être utilisés pour intégrer la plate-forme à d'autres services tels que IFTTT, des services Web personnalisés, des e-mails ou appeler d'autres appareils.
Dans cette journalisation ESP8266, nous allons explorer ces outils.
Pour envoyer des données à Thinger.io, vous devez créer un compte gratuit sur la plateforme Thinger.io et suivre les étapes ci-dessous pour connecter votre appareil.
Étape 1: La première étape consiste à créer un nouvel appareil. Pour créer un nouvel appareil, cliquez sur Appareils dans l'onglet de menu puis cliquez sur le bouton Ajouter un appareil.
Remplissez ensuite le formulaire avec l'ID de l'appareil, la description et les informations d'identification ou générez des informations d'identification aléatoires pour votre appareil et cliquez sur « Ajouter un appareil ».
C'est tout; votre appareil est prêt à se connecter. Dans l'étape suivante, nous programmerons le NodeMCU pour envoyer les données à la plate-forme Thinger.io.
Configuration IFTTT pour l'enregistreur de données NodeMCU
Ici, nous utilisons IFTTT pour envoyer des avertissements par e-mail lorsque la température dépasse une limite. IFTTT (If This Then That) est un service Web par lequel nous pouvons créer des chaînes d'instructions conditionnelles, appelées applets. En utilisant ces applets, nous pouvons envoyer des e-mails, des notifications Twitter, Facebook.
Pour utiliser l'IFTTT, connectez-vous au compte IFTTT si vous en avez déjà un ou créez un compte.
Recherchez maintenant « Webhooks » et cliquez sur la section Webhooks dans la section Services.
Ensuite, dans la fenêtre Webhooks, cliquez sur «Documentation» dans le coin supérieur droit pour obtenir la clé privée. Copiez cette clé, cette clé sera utilisée lors de la création d'Endpoint dans Thinger.io.
Après cela, créez une applet à l'aide de Webhooks et de services de messagerie . Pour créer une applet, cliquez sur votre profil puis sur ' Créer. '
Maintenant, dans la fenêtre suivante, cliquez sur l' icône « Ceci ». Recherchez maintenant les Webhooks dans la section de recherche et cliquez sur " Webhooks ".
Maintenant, choisissez le déclencheur « Recevoir une requête Web» et entrez le nom de l'événement en tant que temp, puis cliquez sur créer un déclencheur.
Après cela, cliquez sur « Alors ça» , puis sur E-mail.
Maintenant dans l'e-mail, cliquez sur «envoyez-moi un e-mail» et entrez l'objet et le corps de l'e-mail, puis cliquez sur créer une action. Dans la dernière étape, cliquez sur « Terminer » pour terminer la configuration de l'applet.
Programmation NodeMCU pour l'enregistrement des données
Le code complet pour l' envoi de données à Thinger.io est donné en fin de page. Ici, nous expliquons quelques parties importantes.
Démarrez le code en incluant toutes les bibliothèques requises. Le ThingerESP8266.h est utilisé pour établir une connexion entre la plateforme IoT et le NodeMCU tandis que Adafruit_BMP085.h est utilisé pour lire les données du capteur BMP. Vous pouvez installer la bibliothèque ThingerESP8266.h à partir du gestionnaire de bibliothèque des IDE Arduino.
#comprendre
Ensuite, entrez les informations d'identification dans le code afin que l'appareil puisse être reconnu et associé à votre compte.
#define USERNAME "Votre nom d'utilisateur de compte" #define DEVICE_ID "NodeMCU" // Votre nom de périphérique #define DEVICE_CREDENTIAL "FcLySVkP8YFR"
Ensuite, entrez le nom de votre point de terminaison. Le point de terminaison est utilisé pour intégrer la plate-forme avec des services externes comme IFTTT, requête HTTTP, etc.
#define EMAIL_ENDPOINT "IFTTT"
Définissez les variables pour stocker les données de pression, de température et d'altitude.
int Pression, température, altitude;
À l'intérieur de la boucle vide (), lisez les données du capteur. Le type de données pson peut contenir différents types de données. Ainsi, le type de données Pson est utilisé pour recevoir plusieurs valeurs en même temps.
chose >> (pson & out) {out = bmp.readPressure () / 100; out = bmp.readAltitude (); out = bmp.readTemperature (); };
Utilisez la condition if pour appeler le point final si la valeur de température dépasse 15 degrés. Ici, les données sont le nom du point final.
if (Temperature> 15) {thing.call_endpoint (EMAIL_ENDPOINT, "data");} Serial.print ("Sending Data");
Journalisation des données sur Thinger.io à partir de NodeMCU
Connectez maintenant le capteur BMP à NodeMCU et téléchargez le code. Le NodeMCU utilisera les informations d'identification de votre compte pour se connecter à l'appareil que vous avez créé précédemment. S'il se connecte avec succès, il affichera connecté, comme indiqué dans l'image ci-dessous:
Vous pouvez vérifier les statistiques de votre appareil telles que les données transmises, les données reçues, l'adresse IP, l'heure de connexion, etc. en cliquant simplement sur le nom de l'appareil dans le menu Appareils.
Comme nous recevons maintenant les données, nous allons créer un tableau de bord pour visualiser les données à l'aide des widgets.
Pour créer un tableau de bord, cliquez sur Tableaux de bord dans l'onglet du menu, puis cliquez sur « Ajouter un tableau de bord ».
Maintenant, dans la fenêtre suivante, entrez les détails du tableau de bord comme le nom, l'ID et la description du tableau de bord, puis cliquez sur Tableau de bord.
Après cela, accédez au nouveau tableau de bord en cliquant sur le nom du tableau de bord. Par défaut, le tableau de bord apparaîtra vide. Pour ajouter les widgets, vous devez d'abord activer le mode d'édition en cliquant sur l'interrupteur supérieur droit du tableau de bord. Cliquez ensuite sur le bouton « Ajouter un widget» .
Lorsque vous cliquez sur le bouton « Ajouter un widget» , une fenêtre contextuelle s'affiche dans laquelle vous pouvez sélectionner le type de widget, la couleur d'arrière-plan, etc. Dans mon cas, j'ai sélectionné le widget Gauge.
Lorsque vous cliquez sur Enregistrer, cela vous amène à l'écran suivant où vous devez sélectionner la valeur source, le périphérique, la ressource, la valeur et le mode d'actualisation. Sélectionnez toutes les valeurs puis cliquez sur le bouton Enregistrer.
Répétez maintenant la même procédure pour le reste des variables. Mon tableau de bord ressemblait à ceci:
Création d'un point de terminaison dans Thinger.io pour envoyer une alerte par e-mail
Nous allons maintenant créer un point de terminaison pour intégrer Thinger.io avec IFTTT. Un point de terminaison peut être appelé par l'appareil pour effectuer n'importe quelle action, comme envoyer un e-mail, envoyer un SMS, appeler une API REST, interagir avec IFTTT, appeler un appareil à partir d'un autre compte ou appeler tout autre point de terminaison
Pour créer un point de terminaison, cliquez sur l'option «Point de terminaison» dans les onglets du menu, puis cliquez sur «Ajouter un point de terminaison».
Maintenant, dans la fenêtre suivante, entrez les détails requis. Les détails sont:
ID du point de terminaison : identifiant unique de votre point de terminaison.
Description du point de terminaison: rédigez une description ou des informations détaillées sur votre point de terminaison.
Type de point de terminaison: sélectionnez le type de point de terminaison parmi les options données.
Nom de l'événement Maker: entrez le nom de votre applet IFTTT.
Maker Channel Key: votre clé secrète Webhooks.
Après cela, cliquez sur Test Endpoint pour vérifier si tout fonctionne. Il devrait vous envoyer un e-mail avec un avertissement sur les données de température.
Au lieu d'utiliser IFTTT Webhook Trigger, vous pouvez envoyer un e-mail ou un télégramme, ou vous pouvez envoyer une requête HTTP à l'aide des fonctionnalités Endpoint.
C'est ainsi qu'un NodeMCU ESP8266 peut être utilisé pour enregistrer les données de température, de pression et d'altitude du capteur BMP180 sur Internet.
Une vidéo de travail et un code complet sont donnés en fin de page.