Hola y feliz año a tod@s
Antes de nada, ya que este es mi primer mensaje, quiero agradecer a esta comunidad su trabajo, sin vosotros posiblemente no habria llegado a plantearme el proyecto que llevo en mente ni habría ido resolviendo las dudas que por ahora han ido surgiendo.
Por otro lado, aprovecho para presentarme; soy mañico y tengo 50 primaveras, tengo experiencia sobre el mundo de la programación web y gracias a ello no me ha sido muy dificil adaptarme al lenguaje usado en Arduino.
Comencé en esto hace como 1 mes, cuando me plantee la idea de optimizar un sistema de calefacción por conductos desde una chimenea con un convertidor de calor; el proyecto era sencillo, con dos termostatos digitales controlar una turbina con dos velocidades y un par de ventiladores de extracción de aire caliente de la campana de la chimenea. No fue nada complicado pero no se adaptaba totalmente a lo que pretendía ya que necesitaba añadir algunas temporizaciones para no enfriar en exceso la campana de la chimenea con los ventiladores y los termostatos digitales no me daban esa opción
Googleando, vi la posibilidad de hacerlo con Arduino debido a su control y me inicie en el tema con tutoriales y prácticas varias. He de decir que, aunque me considero un manitas y hago "casi" de todo, la electronica es un tema que no había trasteado aun.
Partiendo de una idea simple como la expuesta arriba, la fui complicando hasta tener a las 2 semanas un proyecto funcionando con un arduino UNO, un termopar tipo K y un display tft que me muestra la temperatura, los estados de las salidas y me permite modificar a voluntad las temperaturas de activación de los diferentes ventiladores, las temporizaciones y el apagado/encendido del sistema, pero tras haber visto lo que habéis hecho algunos... quería mas
Tras investigar en la red sobre el mundo del IoT y ver diferentes opciones, me ha planteado ampliar el proyecto para domotizar la vivienda y, en principio, había pensado en una Rapsberri como cerebro, openHab como software y MQTT como medio para comunicar todo; de hecho tengo ya funcionando en un PC openHab y mosquitto como MQTT, pero me he encontrado con un problema y es ese el tema del mensaje, he creído conveniente explicar la base del proyecto por si me aconsejais algo diferente.
El problema en cuestión es enlazar los diferentes dispositivos con el sistema central, por ahora estoy intentando que el tft antes comentado sea independiente para usarlo como monitor y configurador del sistema inalámbrico por wifi y tras intentarlo con un ESP8266-01 me he dado una y otra vez de golpe con un muro que no consigo superar
Necesito que el arduino que controla el tft reciba y envie mensajes MQTT al sistema, y no hay forma de que el ESP8266 lo haga, he probado muchas opciones que he ido buscando en Google y a lo mas que he llegado es a un "timeout" o "failed" por lo que yo creo son errores de respuesta del ESP con los comandos AT.
He visto muchas opciones sobre cómo programar ese chip para que sea autónomo, pero en mi caso no me sirve, ya que no se trata de enviar un dato via wifi, sino de enviar/recibir bastantes datos, por ello necesito que sea simplemente un medio de comunicación.
He probado con diferentes firmwares AT y con varios ESP-01 y en todas las pruebas obtengo el mismo resultado.
Tambien he estado viendo los cores que hay para el chip, pero entiendo que son para programarlo como autonomo y no como enlace wifi con el servidor MQTT.
Las librerias que estoy intentando usar son:
WifiEsp: GitHub - bportaluri/WiFiEsp: Arduino WiFi library for ESP8266 modules
Pubsubclient: GitHub - knolleary/pubsubclient: A client library for the Arduino Ethernet Shield that provides support for MQTT.
Pero no obtengo buenos resultados, unas veces me da error de tiempo, otras error de escritura, otras error de socked, vamos.... un belén
Attempting MQTT connection...[WiFiEsp] Connecting to 192.168.1.105
startClient 192.168.1.105 1883
AT+CIPSTART=3,"TCP","192.168.1.105",1883
3,CONNECTOK
---------------------------------------------- > 0sendData: 3 27
OK
⸮
Recv 27 bytes
3,CLOSED
SEND FAIL
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] Data packet send error (2)
[WiFiEsp] Failed to write to socket 3
[WiFiEsp] Disconnecting 3
stopClient 3
AT+CIPCLOSE=3
UNLINKERROR
No se, soy un auténtico novato en esto y estoy convencido de que en algo me estoy equivocando, quizá el planteamiento del sistema, quizá el ESP-01... no puede ser tan complicado hacer funcionar algo que lleva años funcionando.
Agradecería por ello cualquier consejo sobre el planteamiento, hardware o software a cambiar y/o modificar porque estoy totalmente perdido
Un saludo