Как стать автором
Обновить

Система сбора данных на ESP. Часть I. CO2

Время на прочтение 5 мин
Количество просмотров 48K
Доброго времени суток! В данной статье хочу рассказать о реализации устройств на модулях ESP. Тема похожих девайсов уже раскрыта в интернете, но не перестает быть актуальной.
Идея

Давно думал о реализации некой системы индикации и управления в квартире, но никак не мог найти применения, имеющихся в продаже датчиков, конкретно для себя. Первое что смущало – это наличие некого сервера (отдельной железки), который собирает данные, обрабатывает и выкидывает куда-либо для просмотра. Хотелось бы иметь наращиваемую систему независимых устройств, желательно работающих с одним приложением, оптимально, если приложение будет готовым, что казалось практически невозможным (забегая вперед скажу, что такое приложение есть и оно довольно гибко может настраиваться под наши задачи). И конечно же хотелось сделать линейку своих устройств.

Требования к системе

  1. Отсутствие аппаратного сервера («Центральный блок»).
  2. Независимые датчики/элементы управления.
  3. Датчики должны быть беспроводными.
  4. При изменении состава и типов датчиков не должно быть зависимости (добавляя новое устройство не должно быть необходимости «пилить» что-то на других).
  5. По возможности датчики должны быть с батарейным питанием.
  6. При необходимости датчики должны иметь возможность настройки, но без копания в коде (оптимально web).
  7. Уведомления. Это отдельное требование. Все мы привыкли пользоваться сотовыми телефонами и получать уведомления мгновенно.

Это далеко не полный список «хотелок», но это основные.

Поиск решения

Решение для создания системы пришло несколько позже. Сначала было разработано первое устройство, о котором я напишу в данной статье.

Аппаратная часть. ESP-12E и ESP32. Все описанные ниже проекты реализованы на первом модуле. На втором модуле есть несколько коммерческих проектов, которые в рамках данной статьи рассматриваться не будут.

О ESP-12E есть много статей и форумов в интернете, и повторяться про все плюсы и минусы я не буду. Все «затыки» происходили, в основном, из-за недостатка опыта в работе с модулем и со средой, в принципе.


Рис 1. Фото ESP-12E.

Программная часть. Прошивка для ESP писалась в среде «Arduino IDE». На стороне телефона/планшета работает приложение «Blynk». Это очень удобный конструктор для отображения данных. Приложение имеет облачный сервер, куда устройства (датчики) шлет данные, а Blynk их получает и позволяет отображать (www.blynk.cc). Таким же образом организована обратная связь с устройством. Что немаловажно, одно приложение может собирать и отображать данные с нескольких устройств.




Рис 2. Скрины приложения.

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

Первое трио датчиков

1. OpenWindAir Датчик концентрации углекислого газа.

Построен на основе Wi-Fi модуля ESP-12E. Измерение происходит при помощи датчика CO2 MH-Z19. Он широко известен и позволяет быстро и точно делать измерения. Помимо этого, в устройстве есть встроенный датчик температуры и влажности воздуха AM2302. Также существует поддержка выносного датчика для использования, например, с системой «Народный мониторинг». Питается устройство по miniUSB от ПК или блока питания 5В. Реализована светодиодная и звуковая сигнализация (последнюю можно отключать из приложения, либо использовать по часам – чтобы ночью не просыпаться).

2. LifeOfFlowers Датчик влажности почвы для растений.

Построен на основе Wi-Fi модуля ESP-12E. Измерение влажности почвы происходит при помощи втыкаемого электрода в землю (часть платы устройства). Что важно – электрод, как и вся плата, залита лаком (тут пришлось исхитриться с измерениями), что будет препятствовать гниению контактов. Помимо влажности почвы устройство измеряет влажность и температуру окружающего воздуха (AM2302), освещенность и напряжение батареек. Да, LifeOfFlowers работает от 1 до 3 лет от двух элементов питания AAA (время работы зависит от частоты обновления данных).

3. WarningWater Датчик протечек.

Построен на основе Wi-Fi модуля ESP-12E. Измерение происходит при помощи электродов, входящих в состав корпуса IP-65. Устройство работает от двух элементов питания AAA (или АА), время работы также составляет от 1 года. Размеры корпуса устройства составляют всего 55x55x30мм. Для начала работы необходимо положить девайс в потенциально опасное место и он просигнализирует о наличии воды на полу. В приложении также отображается напряжение батареек, чтобы не забыть их вовремя заменить.

OpenWindAir — аппаратная реализация

Схемотехнических изысков тут не встретить, все просто и по даташитам. Если кому-то нужна схема, могу дать.

Состав устройства:

ESP8266 ESP-12E – собственно сам модуль, отвечающий за сбор, обработку и отправку данных. Питание 3,3В.
MH-Z19 – датчик концентрации углекислого газа. Работает по UART, измеряет до 5000ppm и питается от 5В.
AM2302 – измерение влажности и температуры. Так как датчик находится внутри корпуса пришлось ввести калибровочные константы, и данные измерения являются справочными. Для более точных измерений используется выносной датчик.

1-1462037-8 (IM03TS) – реле, для коммутации слаботочки, заложили на всякий случай, поиграться. В принципе штука интересная, но применения пока не придумали (выведено на тот же внешний разъем, что и внешний датчик влажности).

CP2102-GM – USB-UART. Да, решили сделать красивые логи для отображения инфы в реальном времени, получилось очень удобно, можно смотреть данные в терминале, смотреть порядок загрузки, отлаживаться.

LM1117MP-ADJ – LDO для 3,3В.

Также есть бипер, пара кнопок и три светодиода. Помимо порогов концентрации CO2 светодиоды осуществляют индикацию процесса загрузки устройства, подключения к точке доступа (либо работу в режиме offline) и процесс обновления.

В устройстве реализовано OTA обновление. Кидаем прошивку на любой сервак (предварительно прописав его), жмем кнопку, подаем питание и начинается процесс прошивки. После прошивки (или перезапуска) в течении заданного времени можно зайти в web интерфейс (устройство представляется точкой доступа) и вбить настройки сети – после этого все готово к работе.


Рис 3. Фото платы с компонентами.

Хочу немного написать о форме и особенностях печатной платы. При тестировании обнаружилось что при длительной работе Wi-Fi модуль разогревает плату. Это не было бы критичным, если бы встроенный датчик температуры и влажности внутри корпуса. Пришлось разнести модуль ESP с питателем и датчики в разные стороны, а также сделать вырез в плате, куда подобно конструктору еще вставляется специальная перегородка. Тем самым не происходит смешивания воздуха внутри корпуса и измерения температуры и влажности получаются намного достовернее.


Рис 4. Фото перегородки на плате.

Корпус

Тут было много сомнений – хотелось иметь красивый металлический, обтекаемый корпус с матовой полоской индикации и т.д., но как всегда, на помощь пришел минимализм. Форм-фактор корпуса определил наличие олдскульных 5мм светодиодов, которые, как оказалось очень удобны. За счет того, что они выпуклые – это позволяет поставить устройство, например, на полку и индикация все равно будет хорошо видна. Сам корпус вырезали лазером из оргстекла 2мм.

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


Рис 5. Фото устройства.

Планы

Вообще, в планах сделать еще несколько устройств (помимо этих трех). Например, ESP32 имеет встроенный Ethernet (нужна только физика) и больше встроенных АЦП, что позволит обходиться без мультиплексора, как в случае с LifeOfFlowers, но об этом позже.

ЗЫ. Blynk имеет API сервера, которое легко разворачивается (проверяли) на ПК. Таким образом пропадает привязка к серверу.

ЗЗЫ. Чтобы было меньше негатива переименовал статью. Когда перейдем к управлению домом с помощью устройств, подкорректирую статью.

Спасибо за внимание!

ЗЗЗЫ: Как и обещал, вот ссылка на статью по софту geektimes.ru/post/122601
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+28
Комментарии 161
Комментарии Комментарии 161

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн