Клуб Контур и бот для удаленного мониторинга
Давненько не было постов от Клуба любителей электроники Контур, поэтому - исправляемся :)
Сегодня поведаем вам о решении одной насущной проблемы, которая заключалась в следующем: периодически нужно знать, открыт в данный момент клуб или нет (так как мы часто открыты вне расписания, а иногда закрыты по расписанию). Проблема решалась согласованием времени заранее либо вопросом в чат; однако это зачастую неудобно - человек может не увидеть/ не ответить вовремя, время может измениться и так далее. Поэтому в один долгий зимний вечер было написано следующее сообщение (орфография сохранена):
«Давно надо сделать что нибудь, чтобы без писания сюда было понятно открыто или нет. Типо фигулины которая при включении света начинает [сообщать] на сервер куда нибудь мол типо я в сети»
Во время проработки предложения возникло множество заблуждений о необходимости покупать домен, выделенный сервер, статический IP и прочие непотребства (вплоть до того, что за API ВКонтакте якобы тоже надо платить), которые быстро развеял один из активных участников нашего клуба и пообещал провернуть всё на одной только ESP8266 с подключением через имеющийся в клубе интернет.
После недолгих обсуждений выяснили, что самый оптимальный вариант реализации – это чат-бот для ВКонтакте с приёмом сообщений через Long Poll. Вскрыв исходники своих старых похожих проектов, дописав всё «как надо» и позанимавшись оптимизацией, человек довольно быстро представил клубу прототип системы с уже разведённой печатной платой:
И практически сразу начался этап альфа-тестирования системы.
Первое время статус зависел исключительно от нажатия кнопки при входе или выходе из клуба (с обратной связью в виде звуковых и световых сигналов), но затем, когда разработчику перестало быть лень, к системе добавился заранее обещанный датчик наличия 220В (что весьма полезно).
Который мы подключили к освещению:
И протянули выходной логический сигнал остатками телефонной лапши:
Хоть изначально мы и хотели полностью автоматизировать изменение статуса клуба, но вспомнили, что клуб не всегда открывается именно для приёма посетителей (что-нибудь взять/положить, например), поэтому кнопка осталась на месте, а датчик 220 сделали вспомогательным для определения наличия кого-либо в клубе.
Хоть система всё ещё требует некоторых доработок, она уже радует своего создателя (который часто подходил к клубу «на удачу» и очень расстраивался, когда было закрыто). Из-за относительной слабости ESP8266 бот может задерживать ответ на время до 10 секунд (это время тратится на «холодную» установку SSL-соединения), но для нас это некритично.
Конечно, в клубе нередко происходят перебои в Интернет-соединении (у нас YOTA), но разработчик постарался реализовать автовосстановление, добавил предупреждающие сигналы и («на всякий случай!») автоперезагрузку при долгой потере связи. Заходящие в клуб в момент оборванной связи имеют все шансы услышать звук SOS =)
Напоследок, для особо любопытных (и желающих повторить что-нибудь подобное) создатель поделился исходным кодом системы: https://github.com/lethanner/kontur-monitor
А чуть менее любопытные могут уже сейчас попробовать спросить нашего бота: «клуб открыт?» https://vk.com/konturbot. ESP8266 ответит вам лично =) Учтите, что мы сохраняем историю запросов!
P.S. автор системы - тот же человек, что занимался Dial-UPом в предыдущих постах :)



















