Nodos remotos para el termostato wifi

En este artículo aprenderás cómo configurar los nodos para tu termostato inteligente wifi. Resumiendolo un poco, tendrás que instalar el sketch en el microcontrolador, y después conectar el sensor y/o el relé.

  • Introducción
  • Descarga los sketches.
  • Como instalar el sketch en el ESP32
  • Conexiones para el nodo relé
  • Conexiones para el nodo de temperatura/humedad
  • Conexiones para el nodo híbrido.

Introducción

En primer lugar tendrás que decidir cuántos nodos tendrá tu instalación y de qué clase serán. Si quieres tener solo un nodo, entonces deberá ser un nodo híbrido, es decir, un nodo con un sensor de temperatura y un relé como el de la foto:

Esp32 relay and dht sensor
Nodo híbrido: ESP32 controlando un relé (el cual estará conectado con tu caldera), y un sensor de temperatura humedad DHT11

Esta clase de nodo recibe el nombre de “nodo híbrido”, porque realiza las dos funciones: controlar el relé que activará la caldera, y leer los datos de temperatura y humedad del ambiente.

Puedes usar un nodo híbrido para reemplazar el tradicional termostato de pared que tienen la mayoría de las viviendas. Normalmente los termostatos tradicionales que podemos encontrar en el salón de una vivienda, están conectados con la caldera a través de un cable que está preinstalado en las paredes de la casa. El termostato mide la temperatura ambiente en el cuarto donde está, y actúa sobre la caldera, demandando calor según sea necesario.

También puedes decidir dividir el nodo híbrido en dos, y tener dos nodos (con sus correspondientes microcontroladores), uno para el relé, y el otro para el sensor de temperatura. Podrías dejar nodo sensor de temperatura en algún lugar de tu cuarto de estar, y colocar el nodo relé directamente en la caldera (siempre que el alcance de la wifi sea suficiente). Las siguientes imágenes ilustran este tipo de configuración:

Un sensor de temperatura DHT11 conectado a un micrcontrolador ESP32. Podrias colocar este nodo en algún lugar de tu salón.
Two Channel High Level Relay connected to an ESP32 board
Un relé “High Level Triggered” conectado a un ESP32. Podrias colocar este relé directamente en tu caldera, o en el lugar que ocupaba el termostato de pared (y taparlo con algo, un cuadro por ejemplo).

Por supuesto, puedes añadir más nodos de temperatura/humedad, para monitorizar la temperatura en otras habitaciones, incluso en el exterior. Pero ten en cuenta que sólo puedes tener un nodo relé.

Depending on which nodes do you need, you will have to upload a specific sketch to the ESP32. Before uploading them to the sketch, don’t forget to configure your Wifi Ssid and password, and the name for the node.


Descarga los sketches para el ESP32

Hay tres sketches, dependiendo del tipo de nodo que quieras configurar. Puedes descargar un archivo zip con los sketches disponibles de la página de recursos.


Transferir el sketch al ESP32

El próximo paso es transferir el sketch apropiado al ESP32. Decide si el nodo será de temperatura, un nodo relé, o un nodo híbrido, y transfierelo con el Arduino IDE

Te recomendamos que transfieras el sketch al ESP32 antes de conectar el relé o el sensor temperatura. Hemos detectado problemas con algunos tipos de microcontroladores ESP32 a la hora de transferir sketches cuando todos los periféricos ya están conectados el ESP32. ¿Problemas de alimentación?

En cualquier caso los problemas desaparecen cuando trabajamos con una placa ESP32 sin ningún dispositivo conectado.

  • Descarga e instala el Arduino IDE. Puedes descargarlo de aquí.
  • Inicia Arduino IDE, y añade el repositorio de mcu’s Espressif ESP32: abre el menu File-> Preferences
  • Introduce la url https://dl.espressif.com/dl/package_esp32_index.json en el campo “Additional Board Manager URLs” , como en la imagen inferior:
Si has configurado tu Arduino IDE en español, el nombre de los menús y campos será diferente, pero no tiene pérdida.
  • A continuación, abre el menú Tools-> Board -> Boards Manager, e instala la plataforma ESP32 (busca por el termino esp32, e instala la plataforma que aparece).
Instala la platforma esp32.
  • Tras instalar la plataforma, ya podrás seleccionar la placa adecuada del menú Tools -> Board menu. Por ejemplo, selecciona “ESP32 Dev Module” del menú Boards.
  • A continuación, instala la librería para el sensor DHT, en caso de que no la tengas instalada ya. Abre el gestor de librerías en el menú Tools -> Library Manager, y busca el termino “dhtesp”. Instala la libreria “DHT Sensor Library for ESPx by beege_tokio”.
  • Abre el sketch que quieras transferir al ESP32, y ajusta la sección de configuración.

Busca la sección de configuración al principio del sketch. Tendrás que introducir el nombre de tu Wifi, y la contraseña. También un nombre para el nodo (por ejemplo, “salón”). Si vas a transferir el sketch de un nodo de temperatura, tendrás que descomentar la línea adecuada según tengas un sensor de temperatura DHT11 o DHT22, y comentar la que no es adecuada. Como en el siguiente ejemplo:

/****** Start configuration section ******/


const char* ssid     = "YourWifiNameHere"; //Replace with your network SSID
const char* password = "YourPasswordHere"; //Replace with your network password
const String nodeName = "ReplaceThisName"; //Replace with the name for this node (example "Beed Room")


//Uncomment the appropriate type for your DHT Sensor.
DHTesp::DHT_MODEL_t DHT_TYPE = DHTesp::DHT22;
//DHTesp::DHT_MODEL_t DHT_TYPE=DHTesp::DHT11;

/****** End configuration section ******/
  • Conecta el microcontrolador ESP32 a tu ordenador con un cable usb.

Si tienes problemas transfiriendo el sketch al ESP32, asegurate de que el cable usb esta en buen estado y es de buena calidad. Asegurate también de que está conectado a un puerto de tu ordenador que proporcione suficiente alimentación.

Hemos comprobado que algunos hubs de usb, los puertos frontales de algunos ordenadores, y algunos cables baratos no funcionan muy bien a la hora de transferir el sketch.

  • Comprueba que has elegido el puerto COM adecuado, correspondiente al ESP32, en el menú Tools->COM. Para asegurarte de cual es el puerto que le corresponde al ESP32 que has conectado, puedes mirar dicho menu cuando NO lo conectado, a continuación conectar el ESP32, y comprobar cuál es el puerto nuevo que aparece en la lista. Ese es el puerto que le corresponde a tu ESP32.
  • Abre un monitor serie, en el menu Tools->Serial Monitor, y selecciona la velocidad 115200 baudios.
  • Pulsa el icono en el Arduino IDE para compilar y transferir el sketch a la placa (la flecha). Esta operación puede durar unos 20 o 30 segundos. Deberías ver una salida en la consola parecida a la siguiente:
Sketch uses 619398 bytes (47%) of program storage space. Maximum is 1310720 bytes.
Global variables use 41656 bytes (12%) of dynamic memory, leaving 286024 bytes for local variables. Maximum is 327680 bytes.
esptool.py v2.3.1
Connecting........_
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 8192 bytes to 47...

Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 5461.3 kbit/s)...
Hash of data verified.
Compressed 15072 bytes to 9733...

Writing at 0x00001000... (100 %)
Wrote 15072 bytes (9733 compressed) at 0x00001000 in 0.1 seconds (effective 996.5 kbit/s)...
Hash of data verified.
Compressed 619536 bytes to 374325...

Writing at 0x00010000... (4 %)
Writing at 0x00014000... (8 %)
Writing at 0x00018000... (13 %)
Writing at 0x0001c000... (17 %)
Writing at 0x00020000... (21 %)
Writing at 0x00024000... (26 %)
Writing at 0x00028000... (30 %)
Writing at 0x0002c000... (34 %)
Writing at 0x00030000... (39 %)
Writing at 0x00034000... (43 %)
Writing at 0x00038000... (47 %)
Writing at 0x0003c000... (52 %)
Writing at 0x00040000... (56 %)
Writing at 0x00044000... (60 %)
Writing at 0x00048000... (65 %)
Writing at 0x0004c000... (69 %)
Writing at 0x00050000... (73 %)
Writing at 0x00054000... (78 %)
Writing at 0x00058000... (82 %)
Writing at 0x0005c000... (86 %)
Writing at 0x00060000... (91 %)
Writing at 0x00064000... (95 %)
Writing at 0x00068000... (100 %)
Wrote 619536 bytes (374325 compressed) at 0x00010000 in 5.8 seconds (effective 859.0 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 144...

Writing at 0x00008000... (100 %)
Wrote 3072 bytes (144 compressed) at 0x00008000 in 0.0 seconds (effective 2048.0 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

El Esp32 se reiniciará, y tras unos instantes deberías ver algo así en el monitor serie:

Connecting to YourWifiName
..
WiFi connected
IP address: 192.168.2.160
MAC: 30:AE:A4:39:44:FC
Signal strength (RSSI):-32 dBm

Como puedes ver, la IP del nodo está incluida en el mensaje de arranque.

Ahora es el momento de conectar los periféricos al ESP32. Desconecta el cable USB, conecta el sensor / relé según sea necesario, siguiendo los esquemas que hay en el siguiente apartado. Si todo ha salido bien, el nodo está listo para funcionar.

Puedes comprobar si el nodo funciona correctamente, invocando la url del nodo en un navegador. Por ejemplo en el caso del nodo de ejemplo que hemos configurado, invoca la url http://192.168.2.160. Deberías obtener una respuesta similar a la siguiente:

{
"type": "TH&Relay",
"name": "Master node",
"version": "3",
"relay_error": "",
"th_error": "",
"mac": "30:AE:A4:39:44:FC",
"relay_high": "0",
"celsius": "18.30",
"fahrenheit": "64.94",
"humidity": "43.10",
"wifi_ssi": "-33"
}

Consulta las siguientes secciones para saber como conectar los periféricos al ESP32


Configuración un nodo relé

Las conexiones son:

  • El pin GPIO27 del ESP32 conectado al pin IN del relé
  • El pin GND del ESP32 conectado al pin GND del relé
  • El pin VIN (5V) del ESP32 conectado al pin VCC del relé
Fritzing diagram for the setup of the relay node
Diagrama fritzing para la configuración de un nodo relé (abre en una ventana nueva para ampliar)
Esquema Fritzing para configurar un nodo relé
(abre en una ventana nueva para ampliar)

Configuración de un nodo de temperatura/humedad

  • Pin GPIO26 del ESP32 conectado al pin S del sensor DHT
  • Pin GND del ESP32 conectado al pin GND del sensor
  • Pin VIN (5V) del ESP32 conectado al pin VCC del sensor
Fritzing diagram with the setup of the ESP32 and the DHT temperature sensor
Diagrama fritzing con el cableado de un ESP32 y un sensor de temperatura.
(abre en una ventana nueva para ampliar )
Fritzing schema with the setup of the ESP32 and the DHT temperature sensor
Esquema fritzing con el cableado de un ESP32 y un sensor de temperatura DHT
(abre en una ventana nueva para ampliar )

Configuración de un nodo híbrido (relé y sensor de temperatura)

  • Pin GPIO26 del ESP32 al pin S del sensor DHT
  • Pin GPIO27 del ESP32 al pin IN del relé
  • Tendrás que compartir los pines VIN y GND del ESP con el relé y el sensor. Puedes hacerlo usando un breadboard.
Fritzing diagram of the setup of an ESP32 with a relay and a DHT temperature sensor
Diagrama de las conexiones de un ESP32 con un relé y un sensor de temperatura
(abre en una ventana nueva para ampliar )
Fritzing schema of the setup of an ESP32 with a relay and a DHT temperature sensor
Esquema de las conexiones de un ESP32 con un sensor de temperatura DHT y un relé
(abre en una ventana nueva para ampliar )

No dudes en preguntar en nuestro foro si tienes dudas o problemas configurando los nodos.