Собери датчик сам

Датчик AirMQ можно собрать из недорогих модулей из интернет-магазинов: платы ESP32-C3 SuperMini, датчика пыли и датчика погоды. Прошивка устанавливается прямо из браузера, а измерения появляются на карте AirMQ

Порядок такой: купить модули, соединить их проводами, установить прошивку, настроить WiFi и датчики, отправить нам номер устройства. Паять придётся немного: обычно штыревые разъёмы к плате SuperMini нужно припаять самому, остальное соединяется проводами

Что понадобится

Минимальный комплект

МодульЧто делаетПодключениеКак искать
ESP32-C3 SuperMiniКонтроллер с WiFi - «мозг» датчикаUSB-CESP32-C3 SuperMini
PMS7003 с переходникомТвёрдые частицы PM1, PM2.5, PM10UARTPMS7003 с переходником (adapter)
BME280Температура, влажность, давлениеI2CGY-BME280 3.3V

Почти всё продаётся на маркетплейсах - ищите по словам из последнего столбца. Ещё понадобятся соединительные провода «мама-мама» (Dupont), кабель USB-C и зарядное устройство от телефона на 5 В. У PMS7003 мелкий разъём с шагом 1,27 мм, поэтому его покупают вместе с платой-переходником под обычные провода

Под названием BME280 часто продают более дешёвый BMP280 - он не измеряет влажность. Перед покупкой проверьте описание и отзывы

Другие поддерживаемые датчики

Их можно поставить вместо модулей из минимального комплекта или вместе с ними. Все датчики I2C подключаются к одним и тем же двум проводам SDA и SCL

ДатчикЧто измеряетПодключение
SHT3x, SHT4xТемпература, влажностьI2C
HTU21DТемпература, влажностьI2C
BMP580Давление, температураI2C
SCD4x (SCD40, SCD41)CO2, температура, влажностьI2C
SGP4x (SGP40, SGP41)Индексы летучих органических веществ (VOC) и оксидов азота (NOx)I2C
Sensirion SEN54, SEN55PM, температура, влажность, VOC (SEN55 - ещё NOx)I2C
Sensirion SEN66PM, температура, влажность, VOC, NOx, CO2 - всё в одном модулеI2C
DS18B20Температура (бывает в водонепроницаемом корпусе)1-Wire
Счётчик Гейгера, например наша платаРадиационный фонИмпульсы на GPIO

Нужного датчика нет в списке? Поддержку новых датчиков можно добавить в прошивку через pull request в репозиторий SensorNode на GitHub

Подключение

Выводы на плате SuperMini подписаны. Прошивка по умолчанию ждёт датчики на этих выводах:

ДатчикВывод датчикаВывод SuperMini
PMS7003VCC5V
GNDGND
TX20 (RX)
RX21 (TX)
BME280 и другие I2CVIN (VCC)3.3V
GNDGND
SDA6
SCL7

Провода «крест-накрест»: передающий вывод датчика (TX) идёт на приёмный вывод платы (RX), и наоборот. PMS7003 питается от 5 В, но его сигнальные выводы работают на 3,3 В и подключаются к плате напрямую

DS18B20 подключается к любому свободному выводу, например 4, с резистором 4,7 кОм между этим выводом и 3.3V. Счётчик Гейгера - тоже к свободному выводу, например 3. Номер вывода для них нужно указать при настройке

Sensirion SEN54, SEN55 и SEN66 подключаются кабелем с маленьким разъёмом JST GHR (шаг 1,25 мм) - его покупают вместе с датчиком

Питание - от зарядки телефона через USB-C. Где лучше разместить датчик и как защитить его от дождя и солнца - в FAQ

Установка прошивки

Подключите SuperMini к компьютеру кабелем USB-C и откройте страницу установки прошивки в Chrome или Edge. Установка занимает около минуты, программы ставить не нужно. Датчик пыли на это время лучше отключить: он передаёт данные на те же выводы, которые плата слушает при установке прошивки

Настройка

  1. После установки плата создаёт свою сеть WiFi AirMQ-SN-<номер> без пароля. Запишите номер - это идентификатор вашего датчика
  2. Подключитесь к этой сети с телефона или ноутбука. Страница настройки откроется сама, если нет - откройте в браузере http://192.168.4.1
  3. В разделе WiFi Setup введите имя и пароль домашней сети, нажмите Save. Сеть должна быть на 2,4 ГГц - сети 5 ГГц плата не видит
  4. В разделе Sensors добавьте каждый подключённый датчик, выбрав его тип (например, PMS7003 и BME280). Для DS18B20 и счётчика Гейгера укажите номер вывода. Нажмите Save, затем Reboot
  5. Проверьте, что в разделе Sensors у каждого датчика появились текущие показания. Если какого-то нет - проверьте провода и номера выводов
  6. Когда показания идут, сохраните настройки на сервере: в разделе Commands нажмите Save Provision Config. Если плату придётся сбросить или заменить, выводы и датчики вернутся кнопкой Restore Config, без повторной настройки. Сервер принимает настройки только от зарегистрированных датчиков, поэтому этот шаг делается после регистрации

Плата перезагрузится и подключится к домашней сети. Сервер AirMQ уже прописан в прошивке - его настраивать не нужно. Если вы подключили датчики к другим выводам, поменяйте их в настройках выводов (I2C SDA, I2C SCL и другие)

Регистрация

Данные от незарегистрированных датчиков не сохраняются, поэтому последний шаг - сообщить нам о новом датчике

  1. Напишите нам номер датчика из имени его сети (AirMQ-SN-<номер>) и какие модули вы подключили - в Telegram или на airmq.belarus@gmail.com. Мы добавим датчик в систему
  2. Войдите в панель управления и добавьте место установки датчика. После этого его измерения появятся на карте
  3. Откройте веб-интерфейс датчика по его адресу в домашней сети (его показывает роутер в списке подключённых устройств) и нажмите Save Provision Config в разделе Commands - см. последний шаг настройки

Добавляя место установки, вы соглашаетесь с Условиями использования: измерения публикуются как открытые данные

Новые версии прошивки можно установить из веб-интерфейса датчика - с сервера обновлений или из файла, а после регистрации - удалённо, из панели управления или приложения

Своя прошивка: HTTP API

Если вы пишете прошивку сами или используете чужую, данные можно отправлять по HTTP на сервер https://api-post.airmq.cc. Устройство при этом тоже нужно зарегистрировать - напишите нам

/api/v1 - прошивка sensor.community (airrohr)

В веб-интерфейсе датчика, в разделе «APIs», отметьте «Send data to custom API» и укажите сервер api-post.airmq.cc, путь /api/v1 и порт 80

/api/v2 - простой API для своих устройств

Запрос POST с заголовком Content-Type: application/json и JSON в теле:

{
  "deviceId": "57:1F:D2:52:FE:79",
  "PM1": 5,
  "PM25": 8.3,
  "PM10": 10.1,
  "Temp": 4.75,
  "Hum": 64.51,
  "Press": 989.44
}

В качестве deviceId подходит MAC-адрес устройства или chip_id - три последних октета MAC-адреса, записанные десятичным числом. Сервер в любом случае берёт chip_id, и регистрируется устройство под ним - его и сообщите нам

ПолеЗначениеЕдиницы
PM1Частицы PM1мкг/м³
PM25Частицы PM2.5мкг/м³
PM10Частицы PM10мкг/м³
TempТемпература°C
HumВлажность%
PressАтмосферное давлениегПа
CO2Углекислый газppm
VOCИндекс летучих органических веществиндекс
NOxИндекс оксидов азотаиндекс
CountРадиационный фонимп/мин
radRgРадиационный фонмкР/ч

Остались вопросы?

Посмотрите ответы на частые вопросы или напишите нам