Taula de continguts:

L’IoT és senzill: supervisió de diversos sensors: 7 passos
L’IoT és senzill: supervisió de diversos sensors: 7 passos

Vídeo: L’IoT és senzill: supervisió de diversos sensors: 7 passos

Vídeo: L’IoT és senzill: supervisió de diversos sensors: 7 passos
Vídeo: Создание приложений для мобильных устройств, игр, Интернета вещей и многого другого с помощью AWS DynamoDB, Рик Хулихан 2024, Juliol
Anonim
L’IoT és senzill: supervisió de diversos sensors
L’IoT és senzill: supervisió de diversos sensors
L’IoT és senzill: supervisió de diversos sensors
L’IoT és senzill: supervisió de diversos sensors

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

Sensor de temperatura DS18B20
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

Connexió dels sensors a NodeMCU
Connexió dels sensors a NodeMCU
  1. 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.
  2. 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
  3. 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:

  1. OneWire
  2. 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

Prova dels sensors
Prova dels 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

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

  1. Creeu un projecte nou.
  2. Posa-li un nom (en el meu cas "Monitor de temperatura dual")
  3. Selecciona un dispositiu nou - ESP8266 (WiFi) com a "Els meus dispositius"
  4. Copieu l'AUTH TOKEN que s'utilitzarà al codi (podeu enviar-lo al vostre correu electrònic).
  5. 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
  6. Inclou un widget "History Graph", que defineix V10 i V11 com a pins virtuals
  7. 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ó

Conclusió
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: