Перевод статьи DIY ESP32-P4 weather station & air quality monitor connects to LoRa and ESP-NOW sensors, various weather APIsJean-Luc Aufranc, CNX Software.

Харальд Кройцер собрал метеостанцию и монитор качества воздуха на ESP32-P4 с 10,1-дюймовым дашбордом-дисплеем и встроенным датчиком Sensirion SEN66 для измерения взвешенных частиц, CO2, VOC и NOx. Устройство также умеет подключаться к беспроводным датчикам по LoRa и ESP-NOW.

Проект целиком собран из готовых плат, без единой заказной платы, поэтому его относительно легко повторить. Он не требует ни облака, ни учётной записи, хотя при желании может подключаться к одному из погодных API (Open-Meteo, OpenWeatherMap или Visual Crossing), чтобы показывать прогноз погоды. Сборка подробно описана в большой статье в блоге автора, а мы здесь остановимся на ключевых особенностях проекта.

Аппаратная часть основного блока#

Характеристики главного устройства:

  • Основа — ESP32-P4-Module-DEV-KIT-C размером с кредитную карту, на базе модуля ESP32-P4NRW32 с ESP32-P4, 32 МБ PSRAM и ESP32-C6 для Wi-Fi и BLE
    • 10,1-дюймовая IPS-панель с разрешением 1280 × 800, контрастностью 800:1 и яркостью 400 кд/м²
    • Динамик 8 Ом, 2 Вт (в проекте не используется)
    • Камера RPi Camera (B) и 15-контактный шлейф FFC для неё (в проекте не используются)
  • Связь по LoRa — Heltec V4 (только плата)
  • Датчики:
    • Мультисенсор Sensirion SEN66 для PM1.0, PM2.5, PM4.0, PM10, оксидов азота (NOx) и летучих органических соединений (VOC)
    • Датчик освещённости BH1750 для управления яркостью
    • 24-ГГц mmWave-датчик DFRobot C4001 для обнаружения присутствия человека (вариант с дальностью 12 метров)
Waveshare ESP32-P4-Module-DEV-KIT-C

Waveshare ESP32-P4-Module-DEV-KIT-C

Собранный блок в напечатанной на 3D-принтере подставке

Обратная сторона полностью собранного блока в напечатанной на 3D-принтере подставке

Харальд также работает над версией на базе 10-дюймового сенсорного дисплея GUITION ESP32-P4 — она должна получиться тоньше, поскольку ESP32-P4 там встроен прямо в плату дисплея.

Дополнительные датчики LoRa и ESP-NOW#

Основной блок можно использовать и как есть, но вы наверняка захотите добавить несколько внешних модулей LoRa и ESP-NOW:

  • Sensor-Receiver — приёмник LoRa + ESP-NOW на базе Heltec WiFi LoRa 32 (ESP32-S3)
  • Sensor-LORA-BME280 — узел LoRa для температуры, влажности и давления на Heltec WiFi LoRa 32 V3/V4
  • Sensor-LORA-BME280-HTCC-AB01 — то же самое на Heltec CubeCell HTCC-AB01 V2 (дешевле, без дисплея)
  • Sensor-LORA-SHT45 — узел LoRa для температуры и влажности на Heltec WiFi LoRa 32 (ESP32-S3)
  • Sensor-LORA-RadiationD — счётчик Гейгера по LoRa на базе трубки RadiationD-v1.1 и Heltec WiFi LoRa 32 V4 (ESP32-S3)
  • Sensor-LORA-RadiationD-HTCC-AB01 — то же самое, но на Heltec CubeCell HTCC-AB01 V2
  • Sensor-ESP-NOW-BME280 — узел ESP-NOW для температуры, влажности и давления на обычной плате ESP32 (самый старый подпроект)
Датчик Sensor-ESP-NOW-BME280

Sensor-ESP-NOW-BME280

Счётчик Гейгера по LoRa

Счётчик Гейгера по LoRa

Блок-схема архитектуры

Блок-схема архитектуры

Программная часть#

На этом с аппаратной частью всё. Исходный код основного блока, приёмного модуля и датчиков лежит на GitHub. В основном он построен на фреймворке ESP-IDF — за исключением модулей на CubeCell, чья прошивка написана на Arduino/PlatformIO. Пользовательский интерфейс на главном блоке отрисовывается через LVGL и спроектирован в открытом GUI-редакторе EEZ Studio.

Архитектура ПО

Архитектура ПО

Ещё вам понадобится напечатать на 3D-принтере корпуса для основного блока и датчиков. Единственная загвоздка в том, что STL-файлы, похоже, пока не выложены — удалось найти только файлы для старой версии проекта, и для нового варианта они не подойдут. Зато файлы STEP и SolidWorks теперь лежат в папке SolidWorks того же репозитория с прошивкой.

Стоит ли повторять#

Существует немало DIY-проектов метеостанций и мониторов качества воздуха — например, MoreSense MS-07, Project Aura или Sparkfun ESP32 Arduino IoT Weather Station, — но этот проект довольно продвинутый и к тому же первый на моей памяти на базе ESP32-P4.

Собирая собственную метеостанцию и монитор качества воздуха на ESP32-P4, вы наверняка получите удовольствие, новые знания и навыки, но почти наверняка не сэкономите по сравнению с готовыми коммерческими решениями. Стоимость основного блока оценивается так:

  • Waveshare ESP32-P4-Module-DEV-KIT-C — $77,99 на Waveshare или $98,55 на Amazon
  • Плата Heltec V4 — $29,99 на Amazon
  • Sensirion SEN66 — $62,03 на сайте Sensirion
  • Датчик освещённости BH1750 — $1,39 на AliExpress
  • C4001 24 ГГц (12 метров) — $12,90 на DFRobot

Итого как минимум $185. К этому нужно добавить налоги и доставку, а также немного крепежа, филамент для 3D-печати и дополнительные электронные компоненты, если захотите подключать внешние модули.