Table des matières:

L'IoT simplifié : surveillance de plusieurs capteurs : 7 étapes
L'IoT simplifié : surveillance de plusieurs capteurs : 7 étapes

Vidéo: L'IoT simplifié : surveillance de plusieurs capteurs : 7 étapes

Vidéo: L'IoT simplifié : surveillance de plusieurs capteurs : 7 étapes
Vidéo: 3 minutes pour comprendre... les objets connectés (IoT) 2024, Juillet
Anonim
L'IoT simplifié: surveillance de plusieurs capteurs
L'IoT simplifié: surveillance de plusieurs capteurs
L'IoT simplifié: surveillance de plusieurs capteurs
L'IoT simplifié: surveillance de plusieurs capteurs

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

Capteur de température DS18B20
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

Connexion des capteurs à NodeMCU
Connexion des capteurs à NodeMCU
  1. 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.
  2. 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
  3. 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:

  1. Un fil
  2. 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

Test des capteurs
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

Utiliser Blynk
Utiliser Blynk
Utiliser Blynk
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:

  1. Créer un nouveau projet.
  2. Donnez-lui un nom (dans mon cas "Moniteur de température double")
  3. Sélectionnez Nouvel appareil - ESP8266 (WiFi) comme "Mes appareils"
  4. Copiez le TOKEN d'AUTH à utiliser dans le code (vous pouvez l'envoyer à votre adresse e-mail).
  5. 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
  6. Comprend un widget "History Graph", définissant V10 et V11 comme des broches virtuelles
  7. 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

Conclusion
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é: