- Composants requis
- Schéma
- Capteur de température et d'humidité DHT11
- Programmation NodeMCU ESP8266 Surveillance de la température et de l'humidité en direct
Les microcontrôleurs ont une petite mémoire interne qui n'est pas suffisante pour enregistrer les données générées par les capteurs pendant longtemps, soit vous devez utiliser un périphérique de mémoire externe, soit vous pouvez enregistrer les données sur un cloud en utilisant Internet. De plus, il devient parfois difficile à gérer lorsque le capteur est déployé dans un site dans des conditions extrêmes où l'homme ne peut pas atteindre ou il est difficile de s'y rendre fréquemment. Pour remédier à ce genre de problèmes, nous examinons toujours les moyens par lesquels nous voulons surveiller les données des capteurs en temps réel depuis n'importe où sans aucune présence physique à cet endroit.
Les bases de données en temps réel peuvent être utilisées dans ce scénario où nous devons simplement interfacer un contrôleur qui peut être connecté à Internet et peut être capable d'échanger des données avec un serveur cloud. Les données du serveur peuvent être utiles pour surveiller le comportement du système en temps réel, l'analyse de base de données, l'analyse et le traitement statistiques et l'interprétation pour un cas d'utilisation futur. Il existe de nombreuses plates-formes matérielles IoT et Cloud disponibles pour atteindre cet objectif. Si vous rencontrez des difficultés pour trouver la bonne plateforme pour votre application IoT, suivez le lien.
Auparavant, nous couvrions déjà ThingSpeak, Adafruit IO et de nombreux autres logiciels IoT. Aujourd'hui, nous allons construire un projet similaire dans lequel nous utiliserons un capteur de température et d'humidité DHT11 et un module NodeMCU ESP8266 pour enregistrer la température et l'humidité en temps réel sur le serveur de base de données Firebase de Google.
Nous diviserons le projet en deux sections. Tout d'abord, nous commencerons par assembler les composants matériels et y télécharger le firmware. Et deuxièmement, nous utiliserons Firebase pour configurer avec NodeMCU pour échanger des données en temps réel. Si vous êtes nouveau sur ESP8266 ou Firebase, suivez notre précédent tutoriel sur le contrôle des LED à l'aide de Firebase.
Composants requis
- Module NodeMCU ESP8266
- Capteur de température et d'humidité DHT11
Schéma
Capteur de température et d'humidité DHT11
Le module DHT11 comprend un complexe d'humidité et de température avec une sortie de signal numérique calibrée, ce qui signifie que le module de capteur DHT11 est un module combiné de détection d'humidité et de température qui donne un signal de sortie numérique calibré. DHT11 nous donne une valeur très précise de l'humidité et de la température et garantit une fiabilité élevée et une stabilité à long terme. Ce capteur a un composant de mesure d'humidité de type résistif et un composant de mesure de température de type NTC avec un microcontrôleur 8 bits intégré qui a une réponse rapide et rentable et disponible dans un boîtier à une rangée à 4 broches.
Nous avons précédemment utilisé ESP12E pour mettre à jour les lectures DHT11 sur le serveur Web, à part cela, vous pouvez vérifier tous les projets basés sur DHT11 où nous avons utilisé DHT11 pour s'interfacer avec de nombreux autres microcontrôleurs tels que Arduino, PIC, Raspberry et une station météo construite les utilisant.
Programmation NodeMCU ESP8266 Surveillance de la température et de l'humidité en direct
Le programme complet avec vidéo de travail est donné à la fin. Ici, nous expliquons quelques parties importantes du code.
Incluez tout d'abord les bibliothèques pour utiliser ESP8266 et Firebase.
#comprendre
Téléchargez et installez les bibliothèques en suivant les liens ci-dessous:
github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h
github.com/bblanchon/ArduinoJson
Lors de la compilation , si vous obtenez une erreur indiquant que la bibliothèque ArduinoJson.h n'est pas installée, veuillez l'installer en utilisant le lien ci-dessus.
Nous programmerons NodeMCU pour qu'il prenne les lectures du capteur DHT11 et le pousse vers Firebase toutes les 5 secondes d'intervalle. Nous allons définir un chemin pour pousser les données. En ce moment, deux paramètres à savoir. l'humidité et la température sont envoyées dans le même chemin parent et dans un chemin enfant différent.
Ces deux paramètres sont très importants pour communiquer avec Firebase. La définition de ces paramètres permettra l'échange de données entre l'ESP8266 et Firebase. Pour trouver ces paramètres pour votre projet, suivez notre précédent tutoriel sur la configuration de Firebase.
#define FIREBASE_HOST "your-project.firebaseio.com" // l'adresse du nom du projet de l'id de la base de feu #define FIREBASE_AUTH "Uejx9ROxxxxxxxxxxxxxxxxxxxxxxxxfQDDkhN" // la clé secrète générée à partir de Firebase
Après avoir trouvé les informations d'identification avec succès, remplacez simplement le code ci-dessus.
Saisissez votre SSID et votre mot de passe Wi-Fi pour vous connecter à votre réseau.
#define WIFI_SSID "nom_réseau" // entrez votre nom de wifi domestique ou public #define WIFI_PASSWORD "password" // mot de passe du ssid wifi
Définissez la broche de données DHT dans NodeMCU. Vous pouvez utiliser n'importe quelle broche GPIO numérique dans NodeMCU.
#define DHTPIN D4
La bibliothèque DHT est conçue pour toutes les variantes DHT et est livrée avec l'option du capteur DHT que vous souhaitez utiliser par exemple pour DHT11 ou DHT22. Choisissez simplement le bon capteur DHT et continuez.
#define DHTTYPE DHT11 // sélectionnez le type dht comme DHT 11 ou DHT22 DHT dht (DHTPIN, DHTTYPE);
Connectez-vous au réseau Wi-Fi sélectionné et connectez-vous également au serveur de base de données Firebase.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Commencez à lire à la broche D4 de NodeMCU.
dht.begin ();
Prenez les lectures d'humidité et de température du capteur DHT et enregistrez-les comme valeur flottante.
float h = dht.readHumidity (); // La lecture de la température ou de l'humidité prend environ 250 millisecondes! float t = dht.readTemperature (); // Lire la température en Celsius (par défaut)
Vérifiez simplement si le capteur DHT est correctement câblé ou s'il n'est pas endommagé et le contrôleur peut en lire les lectures. Si les lectures ne s'affichent pas, le capteur est probablement endommagé, affichez simplement un message d'erreur et revenez pour vérifier à nouveau sans continuer.
if (isnan (h) - isnan (t)) {// Vérifiez si des lectures ont échoué et quittez tôt (pour réessayer). Serial.println (F ("Impossible de lire à partir du capteur DHT!")); revenir; }
Imprimez les données du capteur dans le moniteur série pour le débogage et enregistrez les valeurs de température et d'humidité sous forme de chaîne pour les envoyer à la base de feu. Notez également que le délai minimum requis entre deux lectures du capteur DHT11 est de 2 secondes, utilisez donc toujours un délai supérieur à 2 secondes. Pour en savoir plus sur le DHT11, vous pouvez consulter la fiche technique officielle.
Serial.print ("Humidité:"); Serial.print (h); String fireHumid = String (h) + String ("%"); // convertit l'humidité entière en une chaîne d'humidité Serial.print ("% Temperature:"); Serial.print (t); Serial.println ("° C"); String fireTemp = String (t) + String ("° C"); retard (4000);
Enfin, envoyez les données de température et d'humidité à Firebase sur le chemin «your-project.firebaseio.com/DHT11/Humidity/».
Firebase.pushString ("/ DHT11 / Humidité", fireHumid); // configuration du chemin et envoi des lectures Firebase.pushString ("/ DHT11 / Temperature", fireTemp); // configuration du chemin et envoi des lectures
Vous pouvez voir toutes les données de votre compte Firebase. Allez simplement à la section « Base de données » dans « Votre projet » dans « Ma console » Dans Firebase.
Pour configurer Firebase pour l'envoi et la surveillance des données, vous pouvez consulter notre précédent tutoriel.
Le code complet et la vidéo pour cette surveillance de la température et de l'humidité basée sur l'IoT sont donnés ci-dessous.