MeteoHome es un proyecto de estación meteorológica usando una placa NodeMCU para ESP8266 con sensores DHT22 y BMP180. La particularidad en este caso es que la configuración se puede hacer a través de un portal web cautivo y el uso de MQTT para el envío de información a un servidor. Además la máquina que recoge toda la información ejecuta una instancia de Home Assistant que es la responsable de mostrar el estado actual de los sensores y las gráficas con el histórico. Puedes bajarte el código fuente del proyecto aquí.
Características
- Configuración del a red WiFi y MQTT a través de un portal web
- Deep sleep incluido para ahorrar batería
- Mide la temperatura, humedad y presión atmosférica.
- Posibilidad de integrarlo con Home Assistant
Requerimientos
- Este proyecto usa Arduino IDE y sus librerías estándar.
- Librerías adicionales: WiFiManager, Arduino Json, PubSubClient, DHT y Adafruit BMP085
- A ordenador ejecutando MQTT
- [Opcional] Un ordenador ejecutando Home Assistant
Componentes hardware
- NodeMCU 0.9/1.0
- Sensor DHT22
- Sensor BMP180
- Cables, herramientas...
Configurando un dispositivo meteo-home
Después de cargar el sketch y en su primera ejecución, el dispositivo actuará como Punto de Acces. Desde tu ordenador, observa la lista de redes inalámbricas disponibles y conéctate a "meteo-home". Después de eso pon en tu navegador la dirección http://192.168.4.1 y se te mostrará el porta cautivo.
Elige la primera opción ("Configure WiFi") y selecciona la WiFi a la que quieres que se conecte de la lista de APs.
Escribe la clave de tu WiFi y rellena todos los campos relacionados con tu servidor MQTT.
Usando MeteoHome con Home Assistant
Uso Home Assistant para recoger todos los datos y mostrar la información. El software se ejecuta en un miniPC (un SolidRun CuBox-i) que en este caso es un pequeño servidor IoT casero y que también tiene un broker Mosquitto. El dispositivo envía los datos de los sensores al broker mqtt y Home Assistant los lee y almacena todo en una base de datos SqLite. Además de esto Home Assistant tiene una aplicación frontend que muestra el estado actual de todos tus sensores y gráficas históricas de un día seleccionado.
Si quieres probarlo tienes un ejemplo de archivo de configuración para Home Assistant incluido en el repositorio.
Prototipos
El modo más fácil de probar el código es usar una breadboard. La foto de abajo es una placa NodeMCU 1.0 con todos los cables conectados como aparece en el dibujo de Fritzing de más arriba.
Después de probarlo en la breadboard hice todo el montaje en una perfboard. Aquí puedes ver una NodeMCU 0.9 que es el primer prototipo en perfboard.
Bájate el código fuente del este proyecto aquí.