Tabla de contenido:
- Paso 1: Lista de materiales
- Paso 2: Sensor de temperatura DS18B20
- Paso 3: Conexión de los sensores a NodeMCU
- Paso 4: instalar las bibliotecas apropiadas
- Paso 5: Prueba de los sensores
- Paso 6: uso de Blynk
- Paso 7: Conclusión
Video: IoT simplificado: monitoreo de múltiples sensores: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
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
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
- 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.
-
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
- 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:
- OneWire
- 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
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
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:
- Crea un nuevo proyecto.
- Ponle un nombre (en mi caso, "Monitor de temperatura dual")
- Seleccione Nuevo dispositivo - ESP8266 (WiFi) como "Mis dispositivos"
- Copie el AUTH TOKEN que se utilizará en el código (puede enviarlo a su correo electrónico).
-
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.
- Incluye un widget de "Gráfico de historial", que define V10 y V11 como pines virtuales
- 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
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:
Múltiples sensores BMP280 en Arduino Uno a través de SPI: 6 pasos
Múltiples sensores BMP280 en Arduino Uno a través de SPI: En este tutorial conectaremos tres BMP280 en Arduino Uno a través de SPI, pero puede conectar hasta ocho BMP280 en Uno usando los puertos digitales D3 a D10 como nSS (Selección de esclavo) para cada sensor. de las muestras de presión atmosférica medidas por el B
Múltiples sensores de temperatura IR - MLX90614: 4 pasos
Múltiples sensores de temperatura IR - MLX90614: esta es una guía rápida sobre cómo configurar múltiples sensores de temperatura sin contacto MLX90614B a través del bus I2C con un Arduino uno y mostrar las lecturas en el monitor serial de Arduino IDE. Estoy usando las placas prefabricadas, pero si compras el sensor b
Cómo construir una estación de sensores de monitoreo de confort: 10 pasos (con imágenes)
Cómo construir una estación de sensores de monitoreo de confort: este instructivo describe el diseño y la construcción de una llamada estación de monitoreo de confort CoMoS, un dispositivo sensor combinado para condiciones ambientales, que fue desarrollado en el departamento de entorno construido en TUK, Technische Universität Ka
Monitoreo de la salud estructural de las infraestructuras civiles mediante sensores de vibración inalámbricos: 8 pasos
Monitoreo de la salud estructural de las infraestructuras civiles utilizando sensores de vibración inalámbricos: el deterioro del edificio antiguo y la infraestructura civil puede conducir a situaciones fatales y peligrosas. El monitoreo constante de estas estructuras es obligatorio. El monitoreo de la salud estructural es una metodología extremadamente importante en la evaluación de
IoT simplificado: captura de datos meteorológicos remotos: UV y temperatura y humedad del aire: 7 pasos
IoT simplificado: captura de datos meteorológicos remotos: UV y temperatura y humedad del aire: en este tutorial, capturaremos datos remotos como UV (radiación ultravioleta), temperatura y humedad del aire. Esos datos serán muy importantes y se utilizarán en una futura estación meteorológica completa. El diagrama de bloques muestra lo que obtendremos al final