Собери датчик сам
Датчик AirMQ можно собрать из недорогих модулей из интернет-магазинов: платы ESP32-C3 SuperMini, датчика пыли и датчика погоды. Прошивка устанавливается прямо из браузера, а измерения появляются на карте AirMQ
Порядок такой: купить модули, соединить их проводами, установить прошивку, настроить WiFi и датчики, отправить нам номер устройства. Паять придётся немного: обычно штыревые разъёмы к плате SuperMini нужно припаять самому, остальное соединяется проводами
Что понадобится
Минимальный комплект
| Модуль | Что делает | Подключение | Как искать |
|---|---|---|---|
| ESP32-C3 SuperMini | Контроллер с WiFi - «мозг» датчика | USB-C | ESP32-C3 SuperMini |
| PMS7003 с переходником | Твёрдые частицы PM1, PM2.5, PM10 | UART | PMS7003 с переходником (adapter) |
| BME280 | Температура, влажность, давление | I2C | GY-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, SEN55 | PM, температура, влажность, VOC (SEN55 - ещё NOx) | I2C |
| Sensirion SEN66 | PM, температура, влажность, VOC, NOx, CO2 - всё в одном модуле | I2C |
| DS18B20 | Температура (бывает в водонепроницаемом корпусе) | 1-Wire |
| Счётчик Гейгера, например наша плата | Радиационный фон | Импульсы на GPIO |
Нужного датчика нет в списке? Поддержку новых датчиков можно добавить в прошивку через pull request в репозиторий SensorNode на GitHub
Подключение
Выводы на плате SuperMini подписаны. Прошивка по умолчанию ждёт датчики на этих выводах:
| Датчик | Вывод датчика | Вывод SuperMini |
|---|---|---|
| PMS7003 | VCC | 5V |
| GND | GND | |
| TX | 20 (RX) | |
| RX | 21 (TX) | |
| BME280 и другие I2C | VIN (VCC) | 3.3V |
| GND | GND | |
| SDA | 6 | |
| SCL | 7 |
Провода «крест-накрест»: передающий вывод датчика (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. Установка занимает около минуты, программы ставить не нужно. Датчик пыли на это время лучше отключить: он передаёт данные на те же выводы, которые плата слушает при установке прошивки
Настройка
- После установки плата создаёт свою сеть WiFi
AirMQ-SN-<номер>без пароля. Запишите номер - это идентификатор вашего датчика - Подключитесь к этой сети с телефона или ноутбука. Страница настройки откроется сама, если нет - откройте в браузере
http://192.168.4.1 - В разделе WiFi Setup введите имя и пароль домашней сети, нажмите Save. Сеть должна быть на 2,4 ГГц - сети 5 ГГц плата не видит
- В разделе Sensors добавьте каждый подключённый датчик, выбрав его тип (например, PMS7003 и BME280). Для DS18B20 и счётчика Гейгера укажите номер вывода. Нажмите Save, затем Reboot
- Проверьте, что в разделе Sensors у каждого датчика появились текущие показания. Если какого-то нет - проверьте провода и номера выводов
- Когда показания идут, сохраните настройки на сервере: в разделе Commands нажмите Save Provision Config. Если плату придётся сбросить или заменить, выводы и датчики вернутся кнопкой Restore Config, без повторной настройки. Сервер принимает настройки только от зарегистрированных датчиков, поэтому этот шаг делается после регистрации
Плата перезагрузится и подключится к домашней сети. Сервер AirMQ уже прописан в прошивке - его настраивать не нужно. Если вы подключили датчики к другим выводам, поменяйте их в настройках выводов (I2C SDA, I2C SCL и другие)
Регистрация
Данные от незарегистрированных датчиков не сохраняются, поэтому последний шаг - сообщить нам о новом датчике
- Напишите нам номер датчика из имени его сети (
AirMQ-SN-<номер>) и какие модули вы подключили - в Telegram или на airmq.belarus@gmail.com. Мы добавим датчик в систему - Войдите в панель управления и добавьте место установки датчика. После этого его измерения появятся на карте
- Откройте веб-интерфейс датчика по его адресу в домашней сети (его показывает роутер в списке подключённых устройств) и нажмите 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 | Радиационный фон | мкР/ч |
Остались вопросы?
Посмотрите ответы на частые вопросы или напишите нам
AIRMQ