Table des matières:

ESP8266 NodeMCU avec jauges et graphique BME280 : 5 étapes
ESP8266 NodeMCU avec jauges et graphique BME280 : 5 étapes

Vidéo: ESP8266 NodeMCU avec jauges et graphique BME280 : 5 étapes

Vidéo: ESP8266 NodeMCU avec jauges et graphique BME280 : 5 étapes
Vidéo: Getting Started with Machinechat’s JEDI One IoT Software | Digi-Key Electronics 2024, Novembre
Anonim
ESP8266 NodeMCU avec jauges et graphique BME280
ESP8266 NodeMCU avec jauges et graphique BME280
ESP8266 NodeMCU avec jauges et graphique BME280
ESP8266 NodeMCU avec jauges et graphique BME280

Jauges et graphiques de fantaisie pour votre carte de développement ESP8266 NodeMCU avec capteur de température, d'humidité et de pression BME280. Thingspeak stockera toutes vos données dans le cloud pour les récupérer à tout moment pendant des années (espérons-le) à venir. Les jauges et le graphique sont renseignés à partir des données stockées à l'heure des choses et sont mis à jour automatiquement tous les 5 minutes.

Articles nécessaires:

Carte de développement ESP8266 NodeMCU (3,79 $ de Banggood.com Hong Kong)

Bosch BME280 (5,63 $ de Banggood.com Hong Kong)

Cavaliers de planche à pain (3,09 $ de Banggood.com Hong Kong)

Planche à pain (2,28 $ de Banggood.com Hong Kong)

Alimentation, gratuite si vous avez un chargeur de téléphone micro USB

Câble micro USB, gratuit si vous en avez déjà un

IDE Arduino, téléchargement gratuit

Obtenez les fichiers de code.ino et. HTML ici

Étape 1: Créez et configurez vos chaînes Thingspeak

Créez et configurez vos chaînes Thingspeak
Créez et configurez vos chaînes Thingspeak

1. Créez un compte Thingspeak gratuit et une nouvelle chaîne sur https://thingspeak.com, appelez la chaîne "ESP8266-NodeMCU-12E-BME280"

2. Le nouveau canal doit avoir 3 champs nommés Température Humidité Pression dans cet ordre spécifique (Notez la première lettre en majuscule).

3. Notez votre nouvel "ID de chaîne" XXXXXX sous "Paramètres de la chaîne"

4. Cliquez sur le lien « Clés API » et notez vos « clés API Ecrire » et « Lire les clés API » XXXXXXXXXXXXXXX. Aussi, faites-en une chaîne publique en cours de partage.

5. Créez un deuxième canal Thingspeak qui contiendra les données High Low "Aujourd'hui" (depuis minuit). Appelez-le "BME280 Daily High Low Data"

6. Ce nouveau canal doit avoir 6 champs nommés Tmax Tmin Hmax Hmin Pmax Pmin dans cet ordre spécifique (Notez la première lettre en majuscule).

7. Prenez note des "ID de canal" "BME280 Daily High Low Data", "Read" et "Write API keys" comme dans les étapes ci-dessus.

Étape 2: Configurez l'IDE Arduino, les bibliothèques et configurez le BME280

Configurer l'IDE Arduino, les bibliothèques et configurer le BME280
Configurer l'IDE Arduino, les bibliothèques et configurer le BME280

8. Suivez les instructions pour installer le noyau Arduino IDE et ESP8266 sur

9. Lancez l'IDE Arduino afin que nous puissions installer les quatre bibliothèques dont nous aurons besoin.

10. Vous aurez besoin de la bibliothèque "Adafruit Unified Sensor Driver", installez-la dans le "Library Manager" dans Arduino IDE. Menu Sketch Inclure la bibliothèque Gérer les bibliothèques effectuez une recherche par Type = "Recommandé" Sujet = "Capteurs", puis placez les mots Adafruit Unified Sensor Driver dans la zone de recherche. Celui que vous voulez dit "Adafruit Unified Sensor Driver by Adafruit"

11. En outre, vous aurez également besoin de la "Bibliothèque Adafruit BME280" pour l'installer dans le "Gestionnaire de bibliothèque" dans Arduino IDE. Menu Sketch Inclure la bibliothèque Gérer les bibliothèques effectuez une recherche par Type = "Recommandé" Sujet = "Capteurs", puis placez les mots Adafruit BME280 Library dans la zone de recherche. Celui que vous voulez dit "Adafruit BME280 Library by Adafruit"

12. Une autre bibliothèque dont vous avez besoin est Wire.h, installez-la dans le "Gestionnaire de bibliothèque" dans Arduino IDE. Menu, Sketch Inclure la bibliothèque Gérer les bibliothèques Faites une recherche par Type = "Contribué" Sujet = "Entrée/sortie du signal" puis placez le mot Fil dans la boîte de recherche. Celui que vous voulez dit "Wire Built-in by Arduino" Très probablement en bas de la sélection.

13. Une autre bibliothèque, ESP8266WiFi, installez-la dans le "Gestionnaire de bibliothèque" dans Arduino IDE. Menu, Sketch Inclure la bibliothèque Gérer les bibliothèques Faites une recherche par Type = "Contribué" Sujet = "Communication" puis mettez le mot ESP8266wifi dans le champ de recherche. Celui que vous voulez dit "ESP8266wifi intégré par Ivan Grokhotkov"

14. L'adresse I2C pour BME280 est codée en dur dans le fichier Adafruit_BME280.h (recherchez la ligne #define BME280_ADDRESS 0x77) dans le dossier Adafruit_BME280_Library. Les modules de capteur BME d'Adafruit sont câblés pour utiliser l'adresse I2C de 0x77. Mais le BME280 peut avoir une adresse I2C légèrement différente (0x76) si sa broche SDO externe est mise à la terre. Si vous utilisez les modules de capteurs d'un tiers, il est probable que son adresse ne corresponde pas à la valeur par défaut de la bibliothèque Adafruit. Par exemple, pour la plupart des modules de capteur BME280 disponibles sur eBay ou Aliexpress, leur adresse I2C est 0x76. Si vous n'obtenez pas de réponse du capteur en utilisant l'adresse par défaut définie dans le fichier Adafruit_BME280.h, vous devrez peut-être la remplacer par 0x76.

Points de connexion BME280 et ESP8266. ESP8266 3.3V à BME280 Vin, ESP8266 GND à BME280 GND, ESP8266 D4 à BME280 SCL, ESP8266 D3 à BME280 SDA. 15. Ouvrez le fichier ESP8266-NodeMCU-12E-BME280.html fourni dans un éditeur de texte et entrez votre "ESP8266-NodeMCU-12E-BME280" (le premier canal que vous avez créé) "Channel ID" & "Read API Key" pour le variables key1 & chan1. Entrez également la "Lire la clé API" et l'"ID de canal" pour "BME280 Daily High Low Data" (Le deuxième canal que vous avez créé) pour key2 et chan2. De plus, entrez votre décalage horaire par rapport à UTC. Comme dans -5 pour moi. Toutes les valeurs doivent être à l'intérieur des guillemets simples fournis « XXXXX ». Enregistrez et quittez l'éditeur de texte.

Branchez votre ESP8266 avec le câble USB sur votre ordinateur puis sélectionnez votre port série comme port USB.

Les utilisateurs de Linux peuvent avoir à changer la propriété du port USB pour communiquer avec le /dev/ttyUSB0 comme dans 'sudo chown yourusername /dev/ttyUSB0' ou tout ce que vous avez sélectionné comme port dans la configuration.

Étape 3: programmer l'ESP8266 avec l'IDE Arduino

Programmer l'ESP8266 avec l'IDE Arduino
Programmer l'ESP8266 avec l'IDE Arduino

16. Ensuite, nous allons programmer l'ESP8266. Connectez un câble USB entre votre ESP8266 et votre ordinateur.

Chargez le fichier New_BME_Sensor.ino fourni dans l'IDE Arduino. Votre capteur BME280 doit être connecté à D3 (SDA) et D4 (SCL) sur l'ESP8266. Entrez votre "ESP8266-NodeMCU-12E-BME280" (le premier canal que vous avez créé) "Write Key" "Wireless SSID" & "Password" dans la bonne section du croquis. Cliquez ensuite sur l'élément de menu "Sketch" & "Upload". Après avoir téléchargé le croquis (la progression atteint 100%) sur votre ESP8266, vous pouvez ouvrir le moniteur série (l'icône en haut à droite ressemble à une loupe) et voir vos données s'imprimer après 5 minutes, toutes les 5 minutes. Les données sont envoyées à Thingspeak à des intervalles de 5 minutes, il faudra donc un certain temps avant que vous ayez des données graphiques significatives, mais vous devriez avoir des lectures de jauge après 5 minutes.

Assurez-vous d'obtenir des lectures correctes du BME280 dans le moniteur série.

La première mesure sera probablement un nan invalide.

Attendez quelques minutes jusqu'à la prochaine lecture et vérifiez que les lectures semblent bonnes.

Étape 4: Revenez à Thingspeak pour faire quelques ajustements de données

Retournez au Thingspeak pour faire quelques ajustements de données
Retournez au Thingspeak pour faire quelques ajustements de données

17. Maintenant, pendant que les données sont téléchargées lentement sur Thingspeak, faisons quelques ajustements pour obtenir des données supplémentaires à partir de ce qui est téléchargé. Retournez sur le site Web Thingspeak et dans la page du canal Thingspeak "BME280 Daily High Low Data" (le deuxième canal que vous avez créé), cliquez sur le bouton vert "MATLAB Analysis". Sélectionnez le modèle "Personnalisé (pas de code de démarrage)"

18. Nommez l'analyse MATLAB "Calculer Min Max depuis minuit".

19. Copiez le code MATLAB Analysis.txt dans l'espace fourni. Entrez l'"ID de canal" pour "ESP8266-NodeMCU-12E-BME280" (le premier canal que vous avez créé) dans "readChannelID". Entrez les « données quotidiennes hautes basses BME280 » (le deuxième canal que vous avez créé) écrivez « ID de canal » et « clé d'écriture » dans writeNewChannelID et writeAPIKey respectivement. Je sais que cela semble déroutant (lisez-le à nouveau). Cliquez sur Enregistrer et exécuter. Si vous l'avez fait correctement et que le canal de lecture est public, vous ne verrez aucune erreur et les valeurs seront imprimées avec succès. Remarque, une erreur peut s'afficher si aucune donnée n'a encore été téléchargée sur cette chaîne. Malgré l'erreur continuer. Si vous le souhaitez, vous pouvez à nouveau cliquer sur Enregistrer et exécuter pour vous assurer que cela fonctionne une fois les données téléchargées.

20. Ensuite, nous devons créer un "Time Control" pour déclencher ce code toutes les 5 minutes et nos données sont écrites sur le canal "BME280 Daily High Low Data" (le deuxième canal que vous avez créé). À partir de la page principale de "BME280 Daily High Low Data" (le deuxième canal que vous avez créé), sélectionnez Applications en haut. Sous actions sélectionnez "TimeControl" puis le bouton vert "New TimeControl". Nommez-le "Envoyer High Low Temps ESP8266". Sélectionnez votre fuseau horaire si nécessaire et sélectionnez "Récurrent" sous Fréquence. Sélectionnez Minute sous Récurrence. Réglé pour fonctionner toutes les 5 minutes. L'action doit être MATLAB Analysis et "Code à exécuter" est "Calculer Min Max depuis minuit". Enregistrez TimeControl.

Étape 5: Modifier le fichier HTML fourni

Modifier le fichier HTML fourni
Modifier le fichier HTML fourni

Modifiez les fichiers HTML et recherchez les commentaires qui disent "********** Change Me 1 of 8 *********" Modifiez-les selon vos préférences.

Remarques:

Certains des champs de texte et le graphique hebdomadaire ne se rempliront pas correctement tant que vous n'aurez pas une journée complète et une semaine complète de données pour la section et le graphique 24 heures et semaine. Une fois que vous avez un tas de données, vous pouvez zoomer sur les graphiques avec la molette de la souris (clic droit pour réinitialiser). Vous pouvez également avoir une quatrième jauge (comme on le voit dans les captures d'écran) d'un autre capteur d'un autre canal mais j'ai commenté les parties pertinentes. Si vous vous sentez avisé, branchez-le. Il y a aussi quelques problèmes de timing à prendre en compte. Vous n'aurez probablement pas les données absolues les plus récentes, mais elles devraient toujours dater de moins de 5 minutes. Cela vient du moment où le contrôle de synchronisation est déclenché, lorsque les données ont été envoyées depuis l'ESP8266 et lorsque vous avez chargé / actualisé la page Web.

Ouvrez le fichier ESP8266-NodeMCU-12E-BME280.html fourni dans votre navigateur Web et vous devriez voir les jauges et le graphique remplis.

Obtenez les fichiers de code.ino et. HTML ici

Conseillé: