За сутки человек вдыхает 12,000 литров или 14 кг воздуха. Даже при малейшей концентрации вредных веществ суммарно за год набегает приличная масса. Туман может быть не просто конденсатом воды, но еще и смогом, состоящим из всевозможных опасных веществ. Поговорим только о части таких веществ. Помимо пыли человек вдыхает летучие органические соединения (VOC). Это широкий класс органических соединений, включающий ароматические углеводороды, альдегиды, спирты, кетоны, терпеноиды и др. К примеру, человек за один год спокойно может вдохнуть 6.5 граммов кетонов (токсичное вещество). Это примерно половина столовой ложки ацетона. Наверное, вдыхать ацетон не полезно, но как узнать, что в нашем воздухе много летучих органических соединений? Наше правительство тоже задумывается об этом, но сегодня мы поговорим об открытом проекте icaRUS (Рисунок 1).
Рисунок 1. | Корпус и плата монитора качества воздуха icaRUS. |
Все начинающие ардуинщики первым делом делают температурный датчик, мы же пойдем чуть дальше. Будем мониторить не только температуру, но еще влажность, атмосферное давление и собственно концентрацию VOC.
Связь
В современном мире нужен именно беспроводной датчик, поэтому прожорливые варианты типа 3G/4G/Wi-Fi пока отметаем. Локальные решения Zigbee/Z-wave/Bluetooth тяжело масштабируются. Цена тоже играет роль, поэтому NB-IoT/CAT-M тоже пока не будем рассматривать. Возможно, в скором времени цена на модули снизится, но сейчас цена компонентов только растет. Самая подходящая связь, остающаяся для сенсоров, – это – LPWAN [1].
Рисунок 2. | Печатная плата с аккумулятором (вид сверху). |
В мире есть несколько конкурирующих технологий; я подробно рассмотрел каждую из них и столкнулся со сложностью поиска рабочей сети с покрытием в Москве. Есть популярные LoRaWAN и SigFox, но выбор пал на отечественную технологию. Для меня самой подходящей связью в России оказалась сеть на базе российского протокола интернета вещей NB-Fi [2]. Скажу сразу, что покрытие NB-Fi компания строит для корпоративных заказчиков (то есть,. можно купить базовые станции и поставить куда надо). Однако в Москве у компании оказалось покрытие, и мне дали к нему доступ для моего устройства. Связь реализуется через чип WA1470. Можно было взять готовый модуль, но я решил пойти по сложному пути (Рисунок 2).
Сенсоры
Изначально планировалось установить сенсор SGP30, который косвенно может давать информацию о концентрации CO2. В первой ревизии платы (Рисунок 3) все работало, но, видимо, при перепайке на вторую я что-то нажал, и все сломалось. Взял SGP40, как рекомендует производитель.
Рисунок 3. | Первый прототип, еще без подпаянного датчика SGP30. |
Сами сенсоры не проверялись на соответствие реальным показаниям. При желании их можно откалибровать и подать на аттестацию. Сейчас проверялась сама возможность сделать датчики качества воздуха беспроводными.
Для расчета VOC требуется сообщить сенсору SGP40 влажность и температуру; для этого установил BME280. Попутно этот сенсор умеет регистрировать атмосферное давление.
Микроконтроллер
Выбран микроконтроллер STM32L412KB от STMicroelectronics. Он имеет малое энергопотребление, был в наличии и содержит много памяти.
Питание
Для автономности установил Li-ion аккумулятор емкостью 180 мА•ч. В дальнейшем планируется увеличить емкость. Зарядка осуществляется через разъем Micro-USB. Для питания всей схемы используется линейный стабилизатор напряжения; планируется перейти на более эффективное решение.
Схема и печатная плата
Все исходники icaRUS можно найти по ссылке [3].
Принципиальная схема монитора показана на Рисунке 4.
Рисунок 4. | Принципиальная схема Open Source монитора качества воздуха icaRUS. |
Плата делалась в Altium Designer с небольшой помощью авторазводки Eremex Topor (Рисунок 5).
Рисунок 5. | Печатная плата. |
Антенна
Рисунок 6. | Модель для расчета антенны. |
Антенна (Рисунок 6) рассчитывалась под 868 МГц с учетом расположения датчика на бетонной стене. По расчетам КСВ = 1.1, после пайки и настройки получилось 1.2. Результаты расчетов можно увидеть на Рисунках 7 и 8.
Рисунок 7. | Коэффициент отражения волны. |
Рисунок 8. | Коэффициент стоячей волны. |
Сборка
Паять такие корпуса микросхем в кустарных условиях очень тяжело, я бы не смог так сделать аккуратно. Спасибо за помощь друзьям! Собирали с помощью пасты, нижнего преднагревателя, паяльного фена и керамического паяльника. И всё получилось: результаты можете посмотреть на Рисунке 9.
Рисунок 9. | Пайка трансивера WA1470. |
Корпус
Корпус (Рисунки 10 и 11) выбирался для установки внутри помещений, так как люди проводят, как минимум, треть своей жизни в помещениях. Корпус диаметром 90 мм имеет съемное крепление на стену, отверстие под Micro-USB и отверстие под кнопку.
Рисунок 10. | Корпус (вид сбоку). |
Рисунок 11. | Плата в корпусе. |
Софт
Данные отправляем каждый час с процентным расходом передаваемых показателей каждые 2.5 минуты. То есть, данные передаются раз в час, но с дополнительной информацией внутри часа. Описание самого протокола можно посмотреть в [4].
Пока что не реализовал функционал светодиода и не стал впаивать кнопку сброса.
Самым большим вопросом было общение с WA1470. Документации немного, есть только библиотека [5], в которую можно интегрироваться. Сам чип общается по SPI и имеет еще два вывода: один – это выход для подачи прерываний, а второй – вход для включения или выключения всей микросхемы. Есть возможность взять просто модуль и общаться АТ-командами.
Потребление энергии
Измерения с периодом в 30 секунд потребляют 15.6 мкА. Вместе с передачей раз в час получается 405 мкА. Это значит, что на аккумуляторе датчик проработает всего 18 дней (Рисунок 12). Но тут сейчас передается много избыточной информации, и в реальности такие частые измерения не нужны. Кроме того, сейчас стоит аккумулятор ничтожно малой емкости 180 мА•ч. Если просто вставить батарейку типоразмера АА, то получается уже 260 дней автономности.
Рисунок 12. | Профиль энергопотребления. Видны передачи каждый час. |
Сеть и данные
Далее данные попадают на сервер NB-Fi, где их можно будет получить через API.
Технические особенности работы с серверами
После общения со службой технической поддержки необходимо зарегистрироваться на сайте [6]. Далее при покупке чипов WA1470 нужно запросить ID с ключами, которые зашиваются во Flash память микроконтроллера по адресу 0x0801FF80.
Сами сообщения в графическом интерфейсе можно будет посмотреть на сайте [6].
Авторизация идёт согласно [6]:
POST https://auth.waviot.ru/?action=user-login&true_api=1
Content-type: application/json
X-requested-with: XMLHttpRequest
{"login": "[email protected]","password":"your_password"}
и [7]:
/api/dl?modem_id=8407701&from=1574780505&to=1574783503&limit=2
Необходимо еще добавить JWT токен, полученный после авторизации. Как добавлять JWT, можно посмотреть в этих примерах [8].
GET https://lk.waviot.ru/api.modem/full_info/?id=[ваш ID]
Authorization: bearer [JWT]
Куда выводить полученную информацию? Этот вопрос можно решить разными способами. Нашел интересную платформу народного мониторинга. Сюда можно добавить почти любой сенсор. У данной платформы есть один недостаток – для общедоступной публикации необходима установка датчиков снаружи зданий.
Формат передачи данных для сайта народного мониторинга [9] описан на нём в разделе Справка -> API передачи данных.
Результаты передачи данных
Рисунок 13. | График VOC полученный с нашего датчика. |
В дальнейшем планируется провести валидацию данных, полученных от датчика VOC. На Рисунке 13 приведен график концентрации летучих органических соединений за 2 дня. Пик показаний был в полночь 13 ноября на уровне 940 ppm.
Рисунок 14. | Данные влажности сайта Гидрометцентра. |
Сравнение графика изменения влажности, представленного на сайте Гидрометцентра (Рисунок 14), с нашим датчиком влажности (Рисунок 15), показывает хорошее совпадение.
Рисунок 15. | Показания влажности с нашего датчика. |
В плате есть много недочетов. Например, перепутаны выводы стабилизатора 3.3 В. Поэтому потребуется третья ревизия платы.
Возможные апгрейды:
- Установить всепогодные датчики, так как сейчас непонятно, как будет вести себя устройство на морозе.
- Сделать дополнительный кейс для установки снаружи зданий для защиты от дождя и снега. Интересный похожий проект [10].
- Установить дополнительные сенсоры опасных веществ.
- Установить сбор солнечной энергии для полной автономности.
- Проработать применение этой технологии в других сферах, например, в теплицах.
Заключение
Рисунок 16. | Датчик в интерьере. |
Получившийся прототип датчика подтверждает, что данные о качестве воздуха можно собирать удаленно. Вот так он выглядит внутри помещения (Рисунок 16) и снаружи (Рисунок 17).
Рисунок 17. | Датчик возле окна. |
Ссылки
- Sharon Shea. LPWAN (low-power wide area network)
- ПНСТ (проект, первая редакция). Информационные технологии. Интернет вещей. Протокол обмена для Интернета вещей в узкополосном спектре (NB-FI)
- Simple air quality monitor
- Протокол Water7
- NBFi stack for STM32 + WA1470
- IoT платформа WAVIoT
- API модуля driver
- API личного кабинета ЖКХ
- Народный мониторинг
- Зачем нам общественный мониторинг?
Материалы по теме
- Datasheet Waviot WA1470
- Datasheet Sensirion SGP30
- Datasheet Sensirion SGP40
- Datasheet Bosch Sensortec BME280
- Datasheet STMicroelectronics STM32L412KB
- Datasheet Infineon BGS12WN6
- Datasheet STMicroelectronics ESDA5V3SC6
- Datasheet Fairchild FDV303N
- Datasheet Siproin H7605
- Datasheet Microchip MCP73831T-2ACI/OT
- Datasheet onsemi NCP502
- Datasheet Nexperia PDTC143ZE
- Datasheet Nexperia PMF170XP
- Datasheet Nexperia RB520S30