Altinkaya: турецкие корпуса для РЭА

Как я сделал Open Source монитор качества воздуха icaRUS

STMicroelectronics STM32L412KB ESDA5V3SC6

За сутки человек вдыхает 12,000 литров или 14 кг воздуха. Даже при малейшей концентрации вредных веществ суммарно за год набегает приличная масса. Туман может быть не просто конденсатом воды, но еще и смогом, состоящим из всевозможных опасных веществ. Поговорим только о части таких веществ. Помимо пыли человек вдыхает летучие органические соединения (VOC). Это широкий класс органических соединений, включающий ароматические углеводороды, альдегиды, спирты, кетоны, терпеноиды и др. К примеру, человек за один год спокойно может вдохнуть 6.5 граммов кетонов (токсичное вещество). Это примерно половина столовой ложки ацетона. Наверное, вдыхать ацетон не полезно, но как узнать, что в нашем воздухе много летучих органических соединений? Наше правительство тоже задумывается об этом, но сегодня мы поговорим об открытом проекте icaRUS (Рисунок 1).

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Корпус и плата монитора качества воздуха icaRUS.
Рисунок 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, как рекомендует производитель.

Первый прототип, еще без подпаянного датчика SGP30.
Рисунок 3. Первый прототип, еще без подпаянного датчика SGP30.

Сами сенсоры не проверялись на соответствие реальным показаниям. При желании их можно откалибровать и подать на аттестацию. Сейчас проверялась сама возможность сделать датчики качества воздуха беспроводными.

Для расчета VOC требуется сообщить сенсору SGP40 влажность и температуру; для этого установил BME280. Попутно этот сенсор умеет регистрировать атмосферное давление.

Микроконтроллер

Выбран микроконтроллер STM32L412KB от STMicroelectronics. Он имеет малое энергопотребление, был в наличии и содержит много памяти.

Питание

Для автономности установил Li-ion аккумулятор емкостью 180 мА•ч. В дальнейшем планируется увеличить емкость. Зарядка осуществляется через разъем Micro-USB. Для питания всей схемы используется линейный стабилизатор напряжения; планируется перейти на более эффективное решение.

Схема и печатная плата

Все исходники icaRUS можно найти по ссылке [3].

Принципиальная схема монитора показана на Рисунке 4.

Принципиальная схема Open Source монитора качества воздуха icaRUS.
Рисунок 4. Принципиальная схема Open Source монитора качества воздуха icaRUS.

Плата делалась в Altium Designer с небольшой помощью авторазводки Eremex Topor (Рисунок 5).

Печатная плата.
Рисунок 5. Печатная плата.

Антенна

Модель для расчета антенны.
Рисунок 6. Модель для расчета антенны.

Антенна (Рисунок 6) рассчитывалась под 868 МГц с учетом расположения датчика на бетонной стене. По расчетам КСВ = 1.1, после пайки и настройки получилось 1.2. Результаты расчетов можно увидеть на Рисунках 7 и 8.

Коэффициент отражения волны.
Рисунок 7. Коэффициент отражения волны.
 
Коэффициент стоячей волны.
Рисунок 8. Коэффициент стоячей волны.

Сборка

Паять такие корпуса микросхем в кустарных условиях очень тяжело, я бы не смог так сделать аккуратно. Спасибо за помощь друзьям! Собирали с помощью пасты, нижнего преднагревателя, паяльного фена и керамического паяльника. И всё получилось: результаты можете посмотреть на Рисунке 9.

Пайка трансивера WA1470.
Рисунок 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 передачи данных.

Результаты передачи данных

График VOC полученный с нашего датчика.
Рисунок 13. График VOC полученный с нашего датчика.

В дальнейшем планируется провести валидацию данных, полученных от датчика VOC. На Рисунке 13 приведен график концентрации летучих органических соединений за 2 дня. Пик показаний был в полночь 13 ноября на уровне 940 ppm.

Данные влажности сайта Гидрометцентра.
Рисунок 14. Данные влажности сайта Гидрометцентра.

Сравнение графика изменения влажности, представленного на сайте Гидрометцентра (Рисунок 14), с нашим датчиком влажности (Рисунок 15), показывает хорошее совпадение.

Показания влажности с нашего датчика.
Рисунок 15. Показания влажности с нашего датчика.

В плате есть много недочетов. Например, перепутаны выводы стабилизатора 3.3 В. Поэтому потребуется третья ревизия платы.

Возможные апгрейды:

  1. Установить всепогодные датчики, так как сейчас непонятно, как будет вести себя устройство на морозе.
  2. Сделать дополнительный кейс для установки снаружи зданий для защиты от дождя и снега. Интересный похожий проект [10].
  3. Установить дополнительные сенсоры опасных веществ.
  4. Установить сбор солнечной энергии для полной автономности.
  5. Проработать применение этой технологии в других сферах, например, в теплицах.

Заключение

Датчик в интерьере.
Рисунок 16. Датчик в интерьере.

Получившийся прототип датчика подтверждает, что данные о качестве воздуха можно собирать удаленно. Вот так он выглядит внутри помещения (Рисунок 16) и снаружи (Рисунок 17).

Датчик возле окна.
Рисунок 17. Датчик возле окна.

Ссылки

  1. Sharon Shea. LPWAN (low-power wide area network)
  2. ПНСТ (проект, первая редакция). Информационные технологии. Интернет вещей. Протокол обмена для Интернета вещей в узкополосном спектре (NB-FI)
  3. Simple air quality monitor
  4. Протокол Water7
  5. NBFi stack for STM32 + WA1470
  6. IoT платформа WAVIoT
  7. API модуля driver
  8. API личного кабинета ЖКХ
  9. Народный мониторинг
  10. Зачем нам общественный мониторинг?

Материалы по теме

  1. Datasheet Waviot WA1470
  2. Datasheet Sensirion SGP30
  3. Datasheet Sensirion SGP40
  4. Datasheet Bosch Sensortec BME280
  5. Datasheet STMicroelectronics STM32L412KB
  6. Datasheet Infineon BGS12WN6
  7. Datasheet STMicroelectronics ESDA5V3SC6
  8. Datasheet Fairchild FDV303N
  9. Datasheet Siproin H7605
  10. Datasheet Microchip MCP73831T-2ACI/OT
  11. Datasheet onsemi NCP502
  12. Datasheet Nexperia PDTC143ZE
  13. Datasheet Nexperia PMF170XP
  14. Datasheet Nexperia RB520S30
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Интересно. Есть несколько моментов, которые хотелось бы уточнить. 1. Чего-то я не могу въехать: на данный момент времени услуги сети и поддержка протокола NB-Fi в Москве предоставляются на бесплатной основе? Т.е. разработчики подобных беспроводных устройств могут свободно воспользоваться данными ресурсами (сервер, API для доступа к данным)? 2. Я вижу, что микроконтроллер управляет питанием трансивера WA1470. Это для снижения энергопотребления? А почему бы не переводить его в Shutdown Mode? 3. Если управляем питанием трансивера, почему бы не управлять питанием датчика SGP40? Он вроде и при бездействии жрет тоже много..
  • И в свете некоторых событий этот сервер может отвалиться и .... Как в фильме"жмурки": усе.... Железка есть, а с нее ничего не получить удаленного без сервера, есп даже в данном случае выгодна, так как можно поднять свой местный локальный сервер.
  • 1. Да, можно получить бесплатный доступ к API и получить доступ к регистрации устройства на бесплатной основе. 2. Я подробно не стал изучать, взял как в референс дизайне. Скорее всего там есть какой-то ток даже в Shutdown Mode. 3. Насколько я понял с SGP40- у него внутри есть нагревающая пластина и электроника для калибровки и компенсации. Проще держать его включенным, чтобы каждый раз не проводить переинициализацию. Но надо поэксперементировать с оотношением количество измерений в сутки/ выгодность полного выключения
  • Вроде у них сервера в России и данные можно как-то напрямую с базовых станций получать. Но есп не выход если требуется 1000 сенсоров разбросанных по всему городу. Плюс энергопотребление несравнимо разное.