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

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

Метеостанция на ESP32-P4 с 10,1-дюймовым дисплеем и дашбордом погоды

Аппаратные характеристики основного блока:

Отладочная плата Waveshare ESP32-P4-Module-DEV-KIT-CWaveshare ESP32-P4-Module-DEV-KIT-C

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

  • Основа — ESP32-P4-Module-DEV-KIT-C
    • Одноплатный компьютер размером с банковскую карту на модуле ESP32-P4NRW32: чип ESP32-P4 с 32 МБ PSRAM плюс ESP32-C6 для Wi-Fi и BLE
    • IPS-панель 10,1 дюйма с разрешением 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) и летучих органических соединений (ЛОС)
    • Управление яркостью через
      • датчик освещённости BH1750
      • радар DFRobot C4001 на 24 ГГц для обнаружения присутствия человека (версия с дальностью 12 метров)
реклама кормит Уточку 🦆

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

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

Беспроводной датчик Sensor-ESP-NOW-BME280 на макетной платеSensor-ESP-NOW-BME280

Счётчик Гейгера с передачей данных по LoRaСчётчик Гейгера с передачей по LoRa

Блок-схема архитектуры метеостанции с беспроводными узламиБлок-схема архитектуры

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

Отдельно стоит объяснить, почему автор развёл два разных радиопротокола. ESP-NOW работает в диапазоне 2,4 ГГц, потребляет мало энергии и удобен для датчиков в пределах квартиры или дома. LoRa же за счёт узкой полосы и низкой частоты берёт сотни метров и уверенно проходит через капитальные стены — то, что нужно для датчика в гараже, на даче или в дальнем углу участка. Комбинация закрывает оба сценария без единого провода.

реклама кормит Уточку 🦆

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

Схема программной архитектуры проекта метеостанцииПрограммная архитектура

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

Проектов самодельных метеостанций и мониторов качества воздуха хватает — MoreSense MS-07, Project Aura, Sparkfun ESP32 Arduino IoT Weather Station и десятки других. Но этот выделяется проработанностью и, судя по всему, стал первым такого класса на базе 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-печати, а также дополнительные компоненты, если захочется собрать внешние модули. Для покупателей из СНГ ценник вырастет ещё сильнее за счёт посредников, зато основную часть мелочёвки — BH1750, платы Heltec, трубку счётчика Гейгера — вполне реально заказать напрямую на китайских площадках и заметно сбить итоговую сумму.