Vuelvo desde el inframundo para continuar con mi «aire acondicionado inteligente» 😄
En la anterior entrada, conseguimos echar a andar un sketch de prueba que permitía controlar el aire acondicionado mediante un arduino mega. Ahora toca portar el sketch a un ESP-01 para hacer uso de su conectividad WiFi y tamaño compacto, ya que no parece haber demasiado hueco dentro de la unidad split del aire acondicionado.
Al igual que con el proyecto de mi lavadora inteligente (que sigue funcionando genial un año después 😊), la idea sería usar MQTT para la comunicación con mi servidor central openHAB, por lo que necesitaremos la librería PubSubClient.
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <PubSubClient.h> . . . void reconnect() { // Loop until we're reconnected while (!client.connected()) { // Attempt to connect if (client.connect(mqttClientId, mqttUser, mqttPassword)) { // Once connected, resubscribe client.subscribe(mqttPowerCommandTopic); client.subscribe(mqttModeCommandTopic); client.subscribe(mqttTempCommandTopic); client.subscribe(mqttSpeedCommandTopic); } else { // Wait 5 seconds before retrying delay(5000); } } }
Para la gestión de conexiones WiFi, he encontrado una librería que nos permite configurar de nuevo la conexión WiFi en caso de que cambiemos de red, sin tener que reprogramar la placa, lo que nos viene genial. Se llama WiFiManager. En este caso, le indicamos que, en caso de no poder conectarse por WiFi a nuestro router, abra una conexión para realizar la configuración, y reintente la conexión pasados 3 minutos (180 segundos).