Taula de continguts:
- Pas 1: llista de materials
- Pas 2: sensor de temperatura DS18B20
- Pas 3: Connexió dels sensors a NodeMCU
- Pas 4: Instal·lació de les biblioteques apropiades
- Pas 5: provar els sensors
- Pas 6: utilitzar Blynk
- Pas 7: Conclusió
Vídeo: L’IoT és senzill: supervisió de diversos sensors: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Fa unes setmanes, vaig publicar aquí un tutorial sobre el control de la temperatura mitjançant un DS18B20, un sensor digital que es comunica a través d’un bus d’1 cable, enviant dades per Internet amb NodeMCU i Blynk:
L’IoT és senzill: supervisar la temperatura a qualsevol lloc
Però el que ens va faltar en l’exploració va ser un dels grans avantatges d’aquest tipus de sensor que és la possibilitat de recopilar diverses dades, de múltiples sensors connectats al mateix bus d’un cable. I, ara és hora d’explorar-ho també.
Ampliarem el que es va desenvolupar a l’últim tutorial, monitoritzant ara dos sensors DS18B20, configurats un a Celcius i l’altre a Fahrenheit. Les dades s’enviaran a una aplicació de Blynk, tal com es mostra al diagrama de blocs anterior.
Pas 1: llista de materials
- NodeMCU ESP 12-E (*)
- 2 X DS18B20 Sensor de temperatura
- Resistència 4.7K ohms
- BreadBoard
- Cablejat
(*) Aquí es pot utilitzar qualsevol tipus de dispositiu ESP. Els més habituals són el NodeMCU V2 o V3. Tots dos funcionaran sempre bé.
Pas 2: sensor de temperatura DS18B20
Utilitzarem en aquest tutorial una versió impermeable del sensor DS18B20. És molt útil per a temperatures remotes en condicions humides, per exemple en un sòl humit. El sensor està aïllat i pot mesurar fins a 125oC (Adafrut no recomana utilitzar-lo a més de 100oC a causa de la seva jaqueta de cable de PVC).
El DS18B20 és un sensor digital que el fa bo utilitzar fins i tot a llargues distàncies. Aquests sensors de temperatura digitals d’un fil són bastant precisos (± 0,5 ° C en gran part del rang) i poden proporcionar fins a 12 bits de precisió des del convertidor digital-analògic incorporat. Funcionen molt bé amb el NodeMCU mitjançant un sol pin digital i, fins i tot, podeu connectar-ne diversos al mateix pin; cadascun té un ID de 64 bits únic gravat a la fàbrica per diferenciar-los.
El sensor funciona de 3,0 a 5,0 V, cosa que significa que es pot alimentar directament des d’un dels pins NodeMCU de 3,3 V.
El sensor té 3 cables:
- Negre: GND
- Vermell: VCC
- Groc: dades de 1 cable
Aquí podeu trobar les dades completes: Full de dades DS18B20
Pas 3: Connexió dels sensors a NodeMCU
- Connecteu els 3 cables de cada sensor a la mini placa de pa tal com es mostra a la foto anterior. He utilitzat connectors especials per fixar-hi millor el cable del sensor.
-
Tingueu en compte que tots dos sensors estan en paral·lel. Si teniu més de 2 sensors, hauríeu de fer el mateix.
- Vermell ==> 3,3V
- Negre ==> GND
- Groc ==> D4
- Utilitzeu una resistència de 4.7K ohms entre VCC (3.3V) i Data (D4)
Pas 4: Instal·lació de les biblioteques apropiades
Per utilitzar correctament el DS18B20, seran necessàries dues biblioteques:
- OneWire
- DallasTemperature
Instal·leu les dues biblioteques al dipòsit de la vostra biblioteca Arduino IDE.
Tingueu en compte que la biblioteca OneWire DEU ser l’especial, modificada per utilitzar-la amb ESP8266, en cas contrari obtindreu un error durant la compilació. Trobareu l’última versió a l’enllaç anterior.
Pas 5: provar els sensors
Per provar els sensors, descarregueu el fitxer següent del meu GitHub:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
* Prova de remitent de temperatura múltiple * * 2 x OneWire Sensor: DS18B20 * Connectat a NodeMCU D4 (o Arduino Pin 2) * * Desenvolupat per Marcelo Rovai - 25 d'agost de 2017 **************** **********************************************/ #incloure # inclou #define ONE_WIRE_BUS 2 // DS18B20 al pin NodeMCU D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); configuració nul·la () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Prova de dades de sensor dual"); } void loop () {float temp_0; temperatura flotant_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // El sensor 0 capturarà Temp a Celcius temp_1 = DS18B20.getTempFByIndex (1); // El sensor 0 capturarà Temp a Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); retard (1000); }
Veient el codi anterior, hauríem de notar que les línies més importants són:
temp_0 = DS18B20.getTempCByIndex (0); // El sensor 0 capturarà Temp a Celcius
temp_1 = DS18B20.getTempFByIndex (1); // El sensor 0 capturarà Temp en Fahrenheit
El primer retornarà un valor del sensor [0] (mireu "índex (0)") a Celcius (mireu la part del codi: "getTempC". La segona línia està relacionada amb el sensor [1] i retornarà les dades a Fahrenheit. Podeu tenir aquí "n" sensors, ja que teniu un "índex" diferent per a cadascun d'ells.
Carregueu ara el codi al vostre NodeMCU i superviseu la temperatura mitjançant el monitor sèrie.
La foto anterior mostra el resultat esperat. Mantingueu cadascun dels sensors a la mà per veure la pujada de la temperatura.
Pas 6: utilitzar Blynk
Un cop comenceu a capturar dades de temperatura, és hora de veure-les des de qualsevol lloc. Ho farem amb Blynk. Per tant, totes les dades capturades es mostraran en temps real al vostre dispositiu mòbil i també crearem un dipòsit històric per a això.
Seguiu els passos següents:
- Creeu un projecte nou.
- Posa-li un nom (en el meu cas "Monitor de temperatura dual")
- Selecciona un dispositiu nou - ESP8266 (WiFi) com a "Els meus dispositius"
- Copieu l'AUTH TOKEN que s'utilitzarà al codi (podeu enviar-lo al vostre correu electrònic).
-
Inclou dos ginys "Gauge", que defineixen:
- Pin virtual que s'utilitzarà amb cada sensor: V10 (sensor [0]) i V11 (sensor [1])
- Rang de temperatura: -5 a 100 oC per al sensor [0]
- Rang de temperatura: 25 a 212 oC per al sensor [1]
- La freqüència de lectura de dades: 1 segon
- Inclou un widget "History Graph", que defineix V10 i V11 com a pins virtuals
- Premeu "Reprodueix" (el triangle a la cantonada dreta)
Per descomptat, l'aplicació Blynk us comunicarà que el NodeMCU està fora de línia. És hora de penjar el codi complet al vostre ID Arduino. Podeu obtenir-lo aquí:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Canvieu les "dades fictícies" amb les vostres pròpies credencials.
/ * Credencials de Blynk * /
char auth = "EL CODI D'AUTOR BLYNK AQUÍ"; / * Credencials WiFi * / char ssid = "EL SEU SSID"; char pass = "LA VOSTRA CONTRASENYA";
I ja està!
A continuació, mostra el codi complet. Bàsicament és el codi anterior, on vam introduir amb paràmetres de Blynk i funcions específiques. Tingueu en compte les 2 darreres línies del codi. Aquests són els més importants aquí. Si teniu més sensors que recopilen dades, també hauríeu de tenir línies noves equivalents a aquestes (amb els nous pins virtuals pertinents definits).
/**************************************************************
* Monitor de temperatura múltiple IoT amb Blynk * La biblioteca Blynk té llicència sota llicència MIT * Aquest codi d'exemple és de domini públic. * * Múltiples sensors OneWire: DS18B20 * Desenvolupat per Marcelo Rovai - 25 d'agost de 2017 ********************************** **************************** / / * ESP i Blynk * / #include #include #define BLYNK_PRINT Serial // Comenta això a desactiveu les impressions i estalvieu espai / * Blynk credentials * / char auth = "EL VOSTRE BLYNK AUTH CODI AQUÍ"; / * Credencials WiFi * / char ssid = "EL SEU SSID"; char pass = "LA VOSTRA CONTRASENYA"; / * TIMER * / #include temporitzador SimpleTimer; / * Sensor de temperatura DS18B20 * / #include #include #define ONE_WIRE_BUS 2 // DS18B20 al pin2 arduino correspon a D4 a la placa física OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; configuració nul·la () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20.begin (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Prova de dades de sensor dual"); } void loop () {timer.run (); // Inicia SimpleTimer Blynk.run (); } / ************************************************* *** * Envia dades del sensor a Blynk ****************************************** ********* / void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // El sensor 0 capturarà Temp a Celcius temp_1 = DS18B20.getTempFByIndex (1); // El sensor 0 capturarà Temp a 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); // pin virtual V10 Blynk.virtualWrite (11, temp_1); // pin virtual V11}
Un cop s'hagi penjat i executat el codi, consulteu l'aplicació Blynk. Ara també hauria d’executar-se com es mostra a la pantalla d’impressió superior des del meu iPhone.
Pas 7: Conclusió
Com sempre, espero que aquest projecte pugui ajudar els altres a trobar el seu camí en l’apassionant món de l’electrònica, la robòtica i l’IoT.
Visiteu el meu GitHub per obtenir fitxers actualitzats: Monitor NodeMCU Dual Temp
Per obtenir més projectes, visiteu el meu bloc: MJRoBot.org
Saluts del sud del món!
Ens veiem a la meva propera instrucció!
Gràcies, Marcelo
Recomanat:
Arduino, supervisió de l'obertura de portes mitjançant Gmail: 6 passos
Arduino, supervisió de l’obertura de la porta a través de Gmail: en aquest tutorial us mostraré com detectar l’esdeveniment d’obertura de la porta i enviar una notificació a través de Gmail mitjançant Arduino Uno. Si sou principiant, podeu obtenir més informació sobre el wifi i el sensor. a Arduino - WiFi i Arduino - Tutorials del sensor de porta. Anem
LED USB senzill (i altres coses) de bricolatge senzill i senzill: 16 passos
LED USB (s) senzills i senzills de bricolatge barats (i altres coses): Hola i benvinguts a la meva primera instrucció :) Aposto a que estem configurant i repoblant els espais dels nostres creadors una vegada més després del virus, així que crec que ja és hora que els creadors tots hem après a fabricar els nostres propis USB en lloc de dependre de bateries fàcilment esgotables
Supervisió d'un terrari de llangardaix mitjançant el controlador WiFi Adosia IoT + detecció de moviment: 17 passos (amb imatges)
Supervisió d’un terrari de llangardaixos mitjançant el controlador WiFi Adosia IoT + detecció de moviment: en aquest tutorial us mostrarem com construir un terrari de llangardaix senzill per a un grapat d’ous de pell que hem trobat i pertorbat accidentalment mentre feia jardineria a l’exterior. així que tot el que farem és crear un espai segur amb un plast
Arduino que controla diversos sensors P.I.R al mateix bord: 3 passos
Arduino que controla diversos sensors PIR al mateix bord: avui us explicaré com connectar diversos sensors PIR amb un únic Arduino Bord > aquí també he utilitzat un mòdul de relé de 4 canals per a algunes funcionalitats addicionals. (O bé podeu fer servir tants pinces del vostre arduin
Termòmetre amb color relatiu a la temperatura en una pantalla TFT de 2 "i diversos sensors: 5 passos
Termòmetre amb color relatiu de temperatura en una pantalla TFT de 2 "i diversos sensors: he fet una pantalla que mostra les mesures de diversos sensors de temperatura. El més fresc és que el color dels valors canvia amb la temperatura: > 75 graus Celcius = VERMELL > 60 > 75 = TARONJA > 40 < 60 = GROC > 30 < 40