Tabla de contenido:

IoT simplificado: monitoreo de múltiples sensores: 7 pasos
IoT simplificado: monitoreo de múltiples sensores: 7 pasos

Video: IoT simplificado: monitoreo de múltiples sensores: 7 pasos

Video: IoT simplificado: monitoreo de múltiples sensores: 7 pasos
Video: Arduino IoT Cloud con ESP32, Relé (relay) y Sensor DHT22. Guía completa paso a paso desde cero 2024, Noviembre
Anonim
IoT simplificado: supervisión de varios sensores
IoT simplificado: supervisión de varios sensores
IoT simplificado: supervisión de varios sensores
IoT simplificado: supervisión de varios sensores

Hace unas semanas, publiqué aquí un tutorial sobre cómo monitorear la temperatura usando un DS18B20, un sensor digital que se comunica a través de un bus de 1 cable, enviando datos a través de Internet con NodeMCU y Blynk:

IoT simplificado: monitorización de la temperatura en cualquier lugar

Pero lo que echamos de menos en la exploración, fue una de las grandes ventajas de este tipo de sensor que es la posibilidad de recolectar múltiples datos, de múltiples sensores conectados al mismo bus de 1 cable. Y ahora es el momento de explorarlo también.

Ampliaremos lo desarrollado en el último tutorial, monitoreando ahora dos sensores DS18B20, configurados uno en Celsius y el otro en Fahrenheit. Los datos se enviarán a una aplicación Blynk, como se muestra en el diagrama de bloques anterior.

Paso 1: Lista de materiales

  • NodeMCU ESP 12-E (*)
  • Sensor de temperatura 2 X DS18B20
  • Resistencia 4.7K ohmios
  • Tablero de circuitos
  • Alambrado

(*) Aquí se puede utilizar cualquier tipo de dispositivo ESP. Los más comunes son el NodeMCU V2 o V3. Ambos siempre funcionarán bien.

Paso 2: Sensor de temperatura DS18B20

Sensor de temperatura DS18B20
Sensor de temperatura DS18B20

Usaremos en este tutorial una versión impermeabilizada del sensor DS18B20. Es muy útil para temperaturas remotas en condiciones húmedas, por ejemplo en un suelo húmedo. El sensor está aislado y puede tomar medidas hasta 125oC (Adafrut no recomienda utilizarlo por encima de 100oC debido a su cable forrado de PVC).

El DS18B20 es un sensor digital que lo hace bueno para usar incluso en largas distancias. Estos sensores de temperatura digitales de 1 cable son bastante precisos (± 0,5 ° C en gran parte del rango) y pueden proporcionar hasta 12 bits de precisión desde el convertidor de digital a analógico integrado. Funcionan muy bien con NodeMCU usando un solo pin digital, e incluso puede conectar varios al mismo pin, cada uno tiene una identificación única de 64 bits grabada en la fábrica para diferenciarlos.

El sensor funciona de 3,0 a 5,0 V, lo que significa que se puede alimentar directamente desde uno de los pines NodeMCU de 3,3 V.

El sensor tiene 3 cables:

  • Negro: GND
  • Rojo: VCC
  • Amarillo: datos de 1 cable

Aquí puede encontrar los datos completos: Hoja de datos DS18B20

Paso 3: Conexión de los sensores a NodeMCU

Conexión de los sensores a NodeMCU
Conexión de los sensores a NodeMCU
  1. Conecte los 3 cables de cada sensor en la mini placa de pruebas como se muestra en la foto de arriba. Usé conectores especiales para fijar mejor el cable del sensor.
  2. Tenga en cuenta que ambos sensores están en paralelo. Si tiene más de 2 sensores, debe hacer lo mismo.

    • Rojo ==> 3.3V
    • Negro ==> GND
    • Amarillo ==> D4
  3. Utilice una resistencia de 4.7K ohmios entre VCC (3.3V) y Datos (D4)

Paso 4: instalar las bibliotecas apropiadas

Para utilizar el DS18B20 correctamente, serán necesarias dos bibliotecas:

  1. OneWire
  2. DallasTemperatura

Instale ambas bibliotecas en su depósito de bibliotecas IDE de Arduino.

Tenga en cuenta que la biblioteca OneWire DEBE ser la especial, modificada para usarse con ESP8266; de lo contrario, obtendrá un error durante la compilación. Encontrará la última versión en el enlace de arriba.

Paso 5: Prueba de los sensores

Prueba de los sensores
Prueba de los sensores

Para probar los sensores, descargue el siguiente archivo de mi GitHub:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

/**************************************************************

* Prueba de transmisor de temperatura múltiple * * 2 x Sensor OneWire: DS18B20 * Conectado a NodeMCU D4 (o Pin 2 de Arduino) * * Desarrollado por Marcelo Rovai - 25 de agosto de 2017 **************** ******************************************** / #include # incluir #define ONE_WIRE_BUS 2 // DS18B20 en el pin D4 de NodeMCU OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (y oneWire); configuración vacía () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Prueba de datos de sensor dual"); } bucle vacío () {float temp_0; float temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // El sensor 0 capturará la temperatura en grados centígrados temp_1 = DS18B20.getTempFByIndex (1); // El sensor 0 capturará la temperatura en Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); retraso (1000); }

Mirando el código anterior, debemos notar que las líneas más importantes son:

temp_0 = DS18B20.getTempCByIndex (0); // El sensor 0 capturará la temperatura en grados centígrados

temp_1 = DS18B20.getTempFByIndex (1); // El sensor 0 capturará la temperatura en Fahrenheit

El primero devolverá un valor del Sensor [0] (mire el "índice (0)") en Celsius (mire la parte del código: "getTempC". La segunda línea está relacionada con el Sensor [1] y devolverá datos en Fahrenheit. Podrías tener aquí "n" sensores ya que tienes un "índice" diferente para cada uno de ellos.

Sube ahora el código en tu NodeMCU y monitorea la temperatura usando el Monitor Serial.

La foto de arriba muestra el resultado esperado. Sostén cada uno de los sensores en tu mano, deberías ver que sube la temperatura.

Paso 6: uso de Blynk

Usando Blynk
Usando Blynk
Usando Blynk
Usando Blynk

Una vez que comience a capturar datos de temperatura, es hora de verlos desde cualquier lugar. Haremos esto usando Blynk. Por lo tanto, todos los datos capturados se mostrarán en tiempo real en su dispositivo móvil y también crearemos un depósito histórico para eso.

Siga los pasos a continuación:

  1. Crea un nuevo proyecto.
  2. Ponle un nombre (en mi caso, "Monitor de temperatura dual")
  3. Seleccione Nuevo dispositivo - ESP8266 (WiFi) como "Mis dispositivos"
  4. Copie el AUTH TOKEN que se utilizará en el código (puede enviarlo a su correo electrónico).
  5. Incluye dos widgets "Gauge", que definen:

    • Pin virtual que se utilizará con cada sensor: V10 (Sensor [0]) y V11 (Sensor [1])
    • El rango de temperatura: -5 a 100 oC para el sensor [0]
    • El rango de temperatura: 25 a 212 oC para el sensor [1]
    • La frecuencia para leer datos: 1 segundo.
  6. Incluye un widget de "Gráfico de historial", que define V10 y V11 como pines virtuales
  7. Presiona "Reproducir" (el triángulo en la esquina superior derecha)

Por supuesto, la aplicación Blynk le dirá que NodeMCU está fuera de línea. Es hora de cargar el código completo en su IDE de Arduino. Puedes obtenerlo aqui:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

Cambie los "datos ficticios" con sus propias credenciales.

/ * Credenciales de Blynk * /

char auth = "SU CÓDIGO DE AUTORIZACIÓN BLYNK AQUÍ"; / * Credenciales WiFi * / char ssid = "SU SSID"; char pass = "SU CONTRASEÑA";

¡Y eso es!

Debajo del código completo. Básicamente es el código anterior, donde ingresamos con parámetros de Blynk y funciones específicas. Tenga en cuenta las 2 últimas líneas del código. Ésos son los más importantes aquí. Si tiene más sensores que recopilan datos, también debe tener nuevas líneas equivalentes a esas (con los nuevos pines virtuales pertinentes definidos).

/**************************************************************

* Monitor de temperatura múltiple de IoT con Blynk * La biblioteca de Blynk tiene licencia de MIT * Este código de ejemplo es de dominio público. * * Sensor OneWire múltiple: DS18B20 * Desarrollado por Marcelo Rovai - 25 de agosto de 2017 ******************************** *************************** / / * ESP & Blynk * / #include #include #define BLYNK_PRINT Serial // Comente esto para deshabilita las impresiones y ahorra espacio / * Credenciales de Blynk * / char auth = "TU CÓDIGO DE AUTORIZACIÓN DE BLYNK AQUÍ"; / * Credenciales WiFi * / char ssid = "SU SSID"; char pass = "SU CONTRASEÑA"; / * TIMER * / #include temporizador SimpleTimer; / * DS18B20 Sensor de temperatura * / #include #include #define ONE_WIRE_BUS 2 // DS18B20 en arduino pin2 corresponde a D4 en la placa física OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (y oneWire); int temp_0; int temp_1; configuración vacía () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20.begin (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Prueba de datos de sensor dual"); } bucle vacío () {timer.run (); // Inicia SimpleTimer Blynk.run (); } / ********************************************* *** * Enviar datos del sensor a Blynk ************************************** ********* / void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // El sensor 0 capturará la temperatura en grados centígrados temp_1 = DS18B20.getTempFByIndex (1); // El sensor 0 capturará la temperatura 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); // pin virtual V10 Blynk.virtualWrite (11, temp_1); // pin virtual V11}

Una vez que el código esté cargado y ejecutándose, verifique la aplicación Blynk. Ahora también debería estar ejecutándose como se muestra en la pantalla de impresión anterior desde mi iPhone.

Paso 7: Conclusión

Conclusión
Conclusión

Como siempre, espero que este proyecto pueda ayudar a otros a encontrar su camino en el apasionante mundo de la electrónica, la robótica y la IoT.

Visite mi GitHub para obtener archivos actualizados: Monitor de temperatura dual NodeMCU

Para más proyectos, visite mi blog: MJRoBot.org

¡Saludos desde el sur del mundo!

¡Nos vemos en mi próximo instructable!

Gracias, Marcelo

Recomendado: