IoT в моей жизни. Кейс №2 — Датчик углекислого газа
В предыдущей заметке шёл разговор о создании Agile-gong'a – системы автоматизированного звукового оповещения в офисе. Вторым полезным решением для нас оказалось подключение датчика углекислого газа. Также подключили по MQTT. Опять же, схема сборки железа тривиальная.
Да, кстати, реализацией как первого, так и второго кейса мы занимались в рамках хакатона внутри компании. И никто из нас в работу железа не погружался, да и необходимости в этом не возникало.
Дальше порядок действий такой же. Модель включает параметр ppm (1000 ppm = 0,1% содержания СО2), который передает устройство, но оно не слишком наглядное, поэтому тут же в модели выведен еще один параметр — процент содержания CO2. Он рассчитывается как значение ppm, деленное на 10000.
Здесь вы также можете заметить две команды на включение лампочки. Ее решили использовать для индикации. А управляем мы ей, конечно, из автомата платформы. После подключения устройства отображение параметров следующее. Эти значения принимаются и отображаются в режиме реального времени, но также можно посмотреть прошлые накопленные пакеты в истории или отобразить график изменения параметра за определенный период.
Автомат для этого объекта работает следующим образом. В верхнем состоянии происходит выключение лампочки. В нижнем — запуск таймера на минуту и включение лампочки. Переход из первого состояния во второе происходит по событию получения данных от устройства с выполнением условия, что значение ppm больше 600 единиц. Возврат (переход из второго состояния в первое) происходит по срабатыванию таймера.
У вас может возникнуть два вопроса.
- А зачем автомат? Не проще ли на самой железке прописать такие условия? Ведь тут все так просто.
- Зачем тут таймер?
На самом деле, польза от автомата есть даже в таком простом кейсе. Этот датчик с лампочкой на время отладки я положила у себя на столе, и каждый раз, когда приходила на работу, лампочка загоралась, так как значение порога в автомате было довольно низкое. Какое-то время я пробовала разные значения в автомате и в итоге пришла к оптимальному значению в 600 единиц. Для подбора нужного значения мне нужно было просто поменять значение в автомате и сохранить его. Никакой перепрошивки устройства. А если это устройство мы перенесем в кабинет, где нужно поддерживать лучшее состояние воздуха и необходимо частое проветривание, то значение можно опять же просто поменять. Быстро и удобно.
Здесь поставлен таймер на минуту. Это необходимо, чтобы в течение минуты мы находились в состоянии высокого уровня CO2 и не реагировали на то, что какое-то время продолжает приходить высокое значение. Иначе, мы бы постоянно мигали лампочкой, совершая переходы до тех пор, пока состояние воздуха не нормализуется. Вы уже могли догадаться, что сделать переход в начальное состояние можно и по-другому. Также по событию получения данных, но в которых выполняется противоположное условие — ppm<600. Тогда мы будем находиться во втором состоянии ровно до тех пор, пока не придет нормальное значение.
Все статьи на эту тему: - "IoT в моей жизни. Кейс №1 — Agile-gong"; - "IoT в моей жизни. Кейс №2 — Датчик углекислого газа"; - "IoT в моей жизни. Кейс №3 — СКУД"; - "IoT в моей жизни. Кейс №4 — Умный огород".