Estación meteorológica DIY con ESP32-P4 y monitor de calidad del aire: sensores LoRa y ESP-NOW y pronóstico del tiempo por API

Harald Kreuzer ha construido una estación meteorológica y un monitor de calidad del aire basados en ESP32-P4 que incorporan una pantalla de 10,1 pulgadas tipo panel de control y un sensor Sensirion SEN66 integrado para medir material particulado, CO2, compuestos orgánicos volátiles (COV) y NOx, además de conectarse a sensores inalámbricos LoRa y ESP-NOW.

El proyecto utiliza únicamente placas disponibles en el mercado, sin hardware a medida, por lo que debería ser relativamente fácil de reproducir. No depende de ningún servicio en la nube ni requiere cuenta de usuario, aunque puede conectarse a varias APIs meteorológicas (Open-Meteo, OpenWeatherMap o Visual Crossing) para mostrar la previsión del tiempo. La construcción está documentada al completo en una entrada de blog muy extensa, así que en este artículo nos centraremos en destacar las características clave del proyecto.

Estación meteorológica y monitor de calidad del aire DIY basados en ESP32-P4

Especificaciones de hardware de la unidad principal:

  • Basada en la placa Waveshare ESP32-P4-Module-DEV-KIT-C
    • SBC ESP32-P4-Module-DEV-KIT del tamaño de una tarjeta de crédito basado en un módulo ESP32-P4NRW32 con un ESP32-P4 con 32 MB de PSRAM y un ESP32-C6 para WiFi y BLE
    • Panel IPS de 10,1 pulgadas con resolución de 1280 x 800, relación de contraste de 800:1 y brillo de 400 cd/m²
    • Altavoz de 8 Ω y 2 W (no se utiliza en este proyecto)
    • Cámara RPi Camera (B) y cable FFC de 15 pines para la cámara (tampoco se utilizan en este proyecto)
  • Conectividad LoRa: Heltec V4 (solo la placa)
  • Sensores
    • Multisensor Sensirion SEN66 para PM1.0, PM2.5, PM4.0 y PM10, óxidos de nitrógeno (NOx) y compuestos orgánicos volátiles (COV).
    • Control de brillo mediante
      • Sensor de luz BH1750
      • Sensor mmWave de 24 GHz DFRobot C4001 para la detección de presencia humana (variante con alcance de 12 metros)
Waveshare ESP32-P4-Module-DEV-KIT-C
Waveshare ESP32-P4-Module-DEV-KIT-C.
Parte trasera de la unidad totalmente ensamblada alojada en el soporte impreso en 3D
Parte trasera de la unidad totalmente ensamblada alojada en el soporte impreso en 3D.

Harald también está trabajando en una versión basada en las pantallas táctiles GUITION ESP32-P4 de 10 pulgadas, que probablemente será más fina, ya que el ESP32-P4 está integrado directamente en la placa de la pantalla.

Aunque puedes usar la unidad principal tal cual, quizá quieras añadir algunos módulos LoRa y ESP-NOW adicionales:

  • Sensor-Receiver: receptor LoRa + ESP-NOW basado en la Heltec WiFi LoRa 32 (ESP32-S3)
  • Sensor-LORA-BME280: nodo LoRa de temperatura, humedad y presión con Heltec WiFi LoRa 32 V3/V4
  • Sensor-LORA-BME280-HTCC-AB01: nodo LoRa de temperatura, humedad y presión con Heltec CubeCell HTCC-AB01 V2 (más barato, sin pantalla)
  • Sensor-LORA-SHT45: nodo LoRa de temperatura y humedad con Heltec WiFi LoRa 32 (ESP32-S3)
  • Sensor-LORA-RadiationD: contador Geiger por LoRa basado en el tubo RadiationD-v1.1 y la Heltec WiFi LoRa 32 V4 (ESP32-S3)
  • Sensor-LORA-RadiationD-HTCC-AB01: igual que el anterior, pero con Heltec CubeCell HTCC-AB01 V2
  • Sensor-ESP-NOW-BME280: nodo ESP-NOW de temperatura, humedad y presión basado en una placa ESP32 genérica (el subproyecto más antiguo)
Sensor ESP-NOW BME280
Sensor ESP-NOW BME280.
Contador Geiger con conectividad LoRa
Contador Geiger por LoRa.
Diagrama de bloques de la estación meteorológica con ESP32-P4
Diagrama de bloques de la arquitectura.

Y esto es todo en cuanto al hardware. El código fuente de la unidad principal, del módulo receptor y de los módulos de sensores está disponible en GitHub. Se apoya principalmente en el framework ESP-IDF, salvo en los módulos basados en CubeCell, cuyo firmware se basa en Arduino/PlatformIO. La unidad principal genera la interfaz de usuario con LVGL y se ha diseñado con el editor de GUI de código abierto EEZ Studio.

Arquitectura de software de la estación base
Arquitectura de software.

También tendrás que imprimir las carcasas de la unidad principal y de los sensores con tu impresora 3D. El único inconveniente es que los archivos STL aún no parecen haberse publicado: solo he podido encontrar los archivos de una versión anterior del proyecto, y no sirven para la nueva variante.

Existen también muchos proyectos de estaciones meteorológicas y monitores de calidad del aire DIY, como el MoreSense MS-07, el Project Aura o la SparkFun ESP32 Arduino IoT Weather Station, pero este proyecto es bastante avanzado y es el primero que veo basado en ESP32-P4.

Aunque montar tu propia estación meteorológica y monitor de calidad del aire con ESP32-P4 puede ser divertido y te permitirá adquirir conocimientos y habilidades, casi con toda seguridad no ahorrarás dinero en comparación con los productos comerciales optimizados en coste. Los costes estimados de la unidad principal son los siguientes:

En total, el coste mínimo se sitúa en 185 dólares, a los que hay que añadir impuestos y gastos de envío, además de algo de tornillería, el filamento para la impresión 3D y componentes electrónicos adicionales si quieres añadir módulos externos.

Traducido del artículo en inglés «DIY ESP32-P4 weather station & air quality monitor connects to LoRa and ESP-NOW sensors, various weather APIs» de Jean-Luc Aufranc (CNXSoft).