Estoy haciendo un proyecto de automatización del hogar basado en topología en estrella. Lo que estoy tratando de lograr es que uno de los nodemcu / ESP8266 actúa como un servidor accesible para el mundo exterior y otros nodemcu / ESP8266 actúan como clientes que están conectados a relés o sensores.
Al recibir el comando del servidor, los relés deben activarse en consecuencia y actualizar el estado nuevamente al servidor. Leí muchos tutoriales a través de diferentes métodos. MQTT parece bueno, pero no quiero usar ningún corredor de terceros como Adafruit. Quiero alojar el servidor web en mi nodemcu o mi servidor web. La parte triste es que no tengo una Raspberry Pi.
¿Puedo usar uno de mis dispositivos ESP8266 como agente MQTT o existe una alternativa adecuada?
fuente
Respuestas:
Técnicamente hablando, sí, un ESP8266 podría actuar como un corredor MQTT. De hecho, ¡ alguien ya lo ha intentado ! Al final de su proyecto , afirmaron tener un intermediario que puede conectarse a un intermediario MQTT en la nube, con una interfaz web y una buena cantidad de tiempo de actividad. En los comentarios, dicen que su código es propietario, por lo que no podrá usar su código exactamente, pero sirve como prueba de concepto si realmente desea usar un ESP8266.
Sin embargo, usar un ESP8266 como corredor probablemente sea un gran esfuerzo . Usar un Pi, como lo sugiere MatsK , sería mucho más fácil, y aunque las unidades Raspberry Pi son un poco más caras (entre £ 5 y £ 25 + gastos de envío, dependiendo del modelo que elija), ahorrará mucho tiempo . Con un Pi, puedes usar un corredor establecido como Mosquitto . En un ESP8266, no hay posibilidad de que Mosquitto se ejecute, y probablemente tenga que escribir su propio corredor o usar uno mucho menos confiable.
Alternativamente, puede conectar todos sus ESP8266 directamente a un servicio en la nube como AWS IoT . Esto simplifica su configuración, pero significa que cada solicitud se enruta a través de Internet y que no puede controlar los dispositivos localmente. Si su conexión a Internet se rompe con este enfoque, tampoco tendrá control sobre los dispositivos.
fuente
Mi sugerencia sería un corredor de mosquitto MQTT en una Raspberry Pi.
Hay un artículo aquí https://tech.scargill.net/a-christmas-script/ donde Peter Scargill ha creado un script que instala todos los componentes y dependencias necesarios.
Echa un vistazo a Node-red. Con él puedes crear lógica para complementar tu proyecto.
Actualizaciones:
Acabo de encontrar un corredor ESP8266 MQTT, disponible gratuitamente. Esto tengo que intentarlo ...
https://www.youtube.com/watch?v=0K9q4IuB_oA
https://github.com/martin-ger/esp_mqtt
fuente
Además de las respuestas y los comentarios que recomiendan el uso de una Raspberry Pi debido a los recursos limitados del ESP8266, generalmente tendría sentido usar el ESP32 , el sucesor no oficial del ESP8266. Debido a que tiene doble núcleo + 3 veces más RAM, corrige los problemas de conexión WiFi que aumentaron cuando los programas de usuario aumentaron de tamaño.
En el rango de precios, es solo unos pocos dólares más caro que ESP8266 y significativamente más barato que el de RaspberryPi (al menos hasta que el cero baje de precio). Las otras respuestas deberían tenerlo cubierto en el lado del software.
fuente
Además de lo que ya han dicho las otras excelentes respuestas, usar un ESP8266 como su agente MQTT es menos que ideal por la simple razón de que carece de los requisitos del sistema para funcionar a la velocidad. Alguien en Github estaba probando una hazaña similar, y le dijeron:
Me hago eco de las otras excelentes respuestas: consígase una Raspberry Pi o alguna otra computadora barata para que actúe como su agente. El ESP simplemente carecerá de las especificaciones para funcionar bien.
fuente
Hay una biblioteca agradable y funcional compatible con Arduino con un pequeño corredor MQTT que se ejecuta en ESP8266:
fuente
Puede usar un ESP8266 como agente MQTT. Admite 20 dispositivos, websockets y conexión de puente a una instancia de MQTT en la nube que proporciona sockets web MQTT y SSL.
En tres minutos puede tener un corredor MQTT completamente funcional. Echa un vistazo a la plataforma iotcentral.eu. Haga una cuenta y ya está listo.
fuente