Table des matières:
- Étape 1: Nomenclature
- Étape 2: capteur de température DS18B20
- Étape 3: Connecter les capteurs à NodeMCU
- Étape 4: Installation des bibliothèques appropriées
- Étape 5: Test des capteurs
- Étape 6: Utiliser Blynk
- Étape 7: Conclusion
Vidéo: L'IoT simplifié : surveillance de plusieurs capteurs : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Il y a quelques semaines, j'ai publié ici un tutoriel sur la surveillance de la température à l'aide d'un DS18B20, un capteur numérique qui communique sur un bus 1-Wire, envoyant des données sur Internet avec NodeMCU et Blynk:
L'IoT simplifié: surveiller la température n'importe où
Mais ce qui nous manquait dans l'exploration, c'était l'un des grands avantages de ce type de capteur qui est la possibilité de collecter plusieurs données, à partir de plusieurs capteurs connectés au même bus 1 fil. Et maintenant, il est temps de l'explorer également.
Nous allons étendre ce qui a été développé sur le dernier tutoriel, en surveillant maintenant deux capteurs DS18B20, configurés l'un en Celsius et l'autre en Fahrenheit. Les données seront envoyées à une application Blynk, comme indiqué dans le schéma fonctionnel ci-dessus.
Étape 1: Nomenclature
- NodeMCU ESP 12-E (*)
- 2 capteurs de température DS18B20
- Résistance 4.7K Ohms
- Planche à Pain
- Câblage
(*) Tout type d'appareil ESP peut être utilisé ici. Les plus courants sont les NodeMCU V2 ou V3. Les deux fonctionneront toujours bien.
Étape 2: capteur de température DS18B20
Nous utiliserons dans ce tutoriel une version étanche du capteur DS18B20. Il est très utile pour les températures éloignées dans des conditions humides, par exemple sur un sol humide. Le capteur est isolé et peut prendre des mesures jusqu'à 125oC (Adafrut ne recommande pas de l'utiliser au-dessus de 100oC en raison de sa gaine de câble en PVC).
Le DS18B20 est un capteur numérique ce qui le rend bon à utiliser même sur de longues distances ! Ces capteurs de température numériques à 1 fil sont assez précis (±0,5 °C sur une grande partie de la plage) et peuvent donner jusqu'à 12 bits de précision à partir du convertisseur numérique-analogique embarqué. Ils fonctionnent très bien avec le NodeMCU à l'aide d'une seule broche numérique, et vous pouvez même en connecter plusieurs à la même broche, chacune ayant un ID 64 bits unique gravé en usine pour les différencier.
Le capteur fonctionne de 3,0 à 5,0 V, ce qui signifie qu'il peut être alimenté directement à partir de l'une des broches NodeMCU 3,3 V.
Le capteur a 3 fils:
- Noir: GND
- Rouge: VCC
- Jaune: données à 1 fil
Ici, vous pouvez trouver les données complètes: Fiche technique DS18B20
Étape 3: Connecter les capteurs à NodeMCU
- Connectez les 3 fils de chaque capteur à la mini planche à pain comme indiqué sur la photo ci-dessus. J'ai utilisé des connecteurs spéciaux pour mieux fixer le câble du capteur dessus.
-
Notez que les deux capteurs sont en parallèle. Si vous avez plus de 2 capteurs, vous devriez faire de même.
- Rouge ==> 3.3V
- Noir ==> GND
- Jaune ==> D4
- Utilisez une résistance de 4,7K ohms entre VCC (3,3V) et Data (D4)
Étape 4: Installation des bibliothèques appropriées
Afin d'utiliser correctement le DS18B20, deux librairies seront nécessaires:
- Un fil
- DallasTempérature
Installez les deux bibliothèques dans votre dépôt Arduino IDE Library.
Notez que la bibliothèque OneWire DOIT être la bibliothèque spéciale, modifiée pour être utilisée avec ESP8266, sinon vous obtiendrez une erreur lors de la compilation. Vous trouverez la dernière version sur le lien ci-dessus.
Étape 5: Test des capteurs
Pour tester les capteurs, téléchargez le fichier ci-dessous depuis mon GitHub:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
* Test d'émetteur de température multiple * * 2 x capteur OneWire: DS18B20 * Connecté à NodeMCU D4 (ou Arduino Pin 2) * * Développé par Marcelo Rovai - 25 août 2017 ****************** **********************************************/ #comprendre # inclure #define ONE_WIRE_BUS 2 // DS18B20 sur la broche NodeMCU D4 OneWire oneWire (ONE_WIRE_BUS); DallasTempérature DS18B20(&oneWire); void setup() { Serial.begin(115200); DS18B20.begin(); Serial.println("Test des données du double capteur"); } boucle vide() { float temp_0; float temp_1; DS18B20.requestTemperatures(); temp_0 = DS18B20.getTempCByIndex(0); // Le capteur 0 capturera la température en Celsius temp_1 = DS18B20.getTempFByIndex(1); // Le capteur 0 capturera Temp en Fahrenheit Serial.print("Temp_0: "); Serial.print(temp_0); Serial.print(" oC. Temp_1: "); Serial.print(temp_1); Serial.println("oF"); retard(1000); }
En regardant le code ci-dessus, nous devrions remarquer que les lignes les plus importantes sont:
temp_0 = DS18B20.getTempCByIndex(0); // Le capteur 0 capturera la température en degrés Celsius
temp_1 = DS18B20.getTempFByIndex(1); // Le capteur 0 capturera la température en degrés Fahrenheit
La première retournera une valeur de Sensor [0] (regardez le "index(0)") en Celsius (regardez la partie du code: "getTempC". La deuxième ligne est liée à Sensor[1] et renverra des données en Fahrenheit. Vous pourriez avoir ici "n" capteurs puisque vous avez un "index" différent pour chacun d'eux.
Téléchargez maintenant le code dans votre NodeMCU et surveillez la température à l'aide du moniteur série.
La photo ci-dessus montre le résultat attendu. Tenez chacun des capteurs dans votre main, vous devriez voir la température monter.
Étape 6: Utiliser Blynk
Une fois que vous commencez à capturer des données de température, il est temps de les voir de n'importe où. Nous allons le faire en utilisant Blynk. Ainsi, toutes les données capturées seront affichées en temps réel sur votre appareil mobile et nous construirons également un dépôt historique pour cela.
Suivez les étapes ci-dessous:
- Créer un nouveau projet.
- Donnez-lui un nom (dans mon cas "Moniteur de température double")
- Sélectionnez Nouvel appareil - ESP8266 (WiFi) comme "Mes appareils"
- Copiez le TOKEN d'AUTH à utiliser dans le code (vous pouvez l'envoyer à votre adresse e-mail).
-
Comprend deux widgets "Gauge", définissant:
- Broche virtuelle à utiliser avec chaque capteur: V10 (Sensor[0]) et V11 (Sensor[1])
- La plage de température: -5 à 100 oC pour le capteur [0]
- La plage de température: 25 à 212 oC pour le capteur [1]
- La fréquence de lecture des données: 1 seconde
- Comprend un widget "History Graph", définissant V10 et V11 comme des broches virtuelles
- Appuyez sur "Play" (le triangle dans le coin droit en haut)
Bien sûr, l'application Blynk vous dira que le NodeMCU est hors ligne. Il est temps de télécharger le code complet sur votre IDE Arduino. Vous pouvez l'avoir ici:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Modifiez les "données factices" avec vos propres informations d'identification.
/* Identifiants Blynk */
char auth = "VOTRE CODE D'AUTORISATION BLYNK ICI"; /* Identifiants WiFi */ char ssid = "YOUR SSID"; char pass = "VOTRE MOT DE PASSE";
Et c'est tout!
Ci-dessous le code complet. Il s'agit essentiellement du code précédent, où nous sommes entrés avec des paramètres Blynk et des fonctions spécifiques. Notez les 2 dernières lignes du code. Ce sont les plus importants ici. Si vous avez plus de capteurs collectant des données, vous devriez également avoir de nouvelles lignes équivalentes à celles-ci (avec de nouvelles broches virtuelles pertinentes définies).
/**************************************************************
* Moniteur de température multiple IoT avec Blynk * La bibliothèque Blynk est sous licence MIT * Cet exemple de code est dans le domaine public. * * Capteur OneWire multiple: DS18B20 * Développé par Marcelo Rovai - 25 août 2017 ******************************** **************************/ /* ESP & Blynk */ #include #include #define BLYNK_PRINT Serial // Commente ceci sur désactiver les impressions et économiser de l'espace /* Identifiants Blynk */ char auth = "YOUR BLYNK AUTH CODE HERE"; /* Identifiants WiFi */ char ssid = "YOUR SSID"; char pass = "VOTRE MOT DE PASSE"; /* TIMER */ #include Minuteur SimpleTimer; /* Capteur de température DS18B20 */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 sur la broche arduino 2 correspond à D4 sur la carte physique OneWire oneWire(ONE_WIRE_BUS); DallasTempérature DS18B20(&oneWire); int temp_0; int temp_1; void setup() { Serial.begin(115200); Blynk.begin(auth, ssid, pass); DS18B20.begin(); timer.setInterval(1000L, getSendData); Serial.println(" "); Serial.println("Test des données du double capteur"); } boucle vide() { timer.run(); // Lance SimpleTimer Blynk.run(); } /****************************************************** *** * Envoyer les données du capteur à Blynk ******************************************* *********/ void getSendData() { DS18B20.requestTemperatures(); temp_0 = DS18B20.getTempCByIndex(0); // Le capteur 0 capturera la température en Celsius temp_1 = DS18B20.getTempFByIndex(1); // Le capteur 0 capturera Temp en Fahrenheit Serial.print("Temp_0: "); Serial.print(temp_0); Serial.print(" oC. Temp_1: "); Serial.print(temp_1); Serial.println("oF"); Blynk.virtualWrite(10, temp_0); //broche virtuelle V10 Blynk.virtualWrite(11, temp_1); //broche virtuelle V11 }
Une fois le code téléchargé et exécuté, vérifiez l'application Blynk. Il devrait maintenant également fonctionner comme indiqué sur l'écran d'impression ci-dessus à partir de mon iPhone.
Étape 7: Conclusion
Comme toujours, j'espère que ce projet pourra aider d'autres personnes à trouver leur chemin dans le monde passionnant de l'électronique, de la robotique et de l'IoT !
Veuillez visiter mon GitHub pour les fichiers mis à jour: NodeMCU Dual Temp Monitor
Pour plus de projets, veuillez visiter mon blog: MJRoBot.org
Salutations du sud du monde !
Rendez-vous à mon prochain instructable !
Merci, Marcelo
Conseillé:
Arduino contrôlant plusieurs capteurs P.I.R sur le même bord : 3 étapes
Arduino contrôlant plusieurs capteurs PIR sur le même bord : aujourd'hui, je vais vous expliquer comment connecter plusieurs capteurs PIR avec un seul Arduino Bord > ici, j'ai également utilisé un module de relais à 4 canaux pour des fonctionnalités supplémentaires.ARDUINO + module de relais à 4 canaux + capteur à 4 PIR (OU vous pouvez utiliser autant de broches sur votre arduin
CONNEXION DE PLUSIEURS CAPTEURS À UN PORT SÉRIE ARDUINO UNO : 4 étapes
CONNEXION DE PLUSIEURS CAPTEURS À UN PORT SÉRIE ARDUINO UNO : Dans ce didacticiel, nous allons étendre un seul port série Arduino UNO UART (Rx/Tx) afin que plusieurs capteurs Atlas puissent être connectés. L'extension est effectuée à l'aide d'une carte d'extension de port série 8:1. Le port de l'Arduino est lié à l'expandeur après whi
CONNEXION DE PLUSIEURS CAPTEURS À RASPBERRY PI : 6 étapes (avec photos)
CONNEXION DE PLUSIEURS CAPTEURS À RASPBERRY PI : Dans ce projet, nous allons connecter trois des capteurs EZO d'Atlas Scientific (pH, oxygène dissous et température) à un Raspberry Pi 3B+. Au lieu de câbler les circuits au Raspberry Pi, nous utiliserons le shield Tentacle T3 de Whitebox Labs. T
2.4 Station météo TFT Arduino avec plusieurs capteurs : 7 étapes
2.4 Station météo Arduino TFT avec plusieurs capteurs : Une station météo Arduino portable avec un écran LCD TFT et quelques capteurs
Thermomètre avec couleur relative à la température sur un écran TFT 2" et plusieurs capteurs : 5 étapes
Thermomètre avec température relative couleur sur un écran TFT 2" et plusieurs capteurs : j'ai fait un affichage montrant les mesures de plusieurs capteurs de température. Ce qui est cool, c'est que la couleur des valeurs change avec la température :> 75 degrés Celsius = ROUGE> 60 > 75 = ORANGE> 40 < 60 = JAUNE> 30 < 40