Образование, Xeoma и Arduino
Статья от пользователя Xeoma
Не секрет, что осуществление великого начинается с малого, а известный ученый всегда вырастает из любопытного ребенка. Одним из слагаемых успеха наряду с хорошими преподавателями, достойной лабораторной базой, являются интересные и наглядные эксперименты.
Может ли обычное видеонаблюдение помочь школьнику превратиться в успешного экспериментатора? Конечно может, ведь научный эксперимент не всегда сопровождается дымом, искрами и взрывом. Зачастую это долгое, многодневное или многомесячное наблюдение за объектом, поиск связей между внешними воздействиями и ответной реакцией. Например, юным химикам и биологам будет интересно, как изменения в окружающей среде влияют на скорость формирования солевого кристалла, рост редкого цветка или, активность обитателей настольной муравьиной фермы. Для проведения качественного анализа необходима продолжительная фиксация реакции подопытного объекта и характеристик воздействующих на него тех или иных сил.
Для этого и пригодится система видеонаблюдения, такая как Xeoma – она применима как в самых простых сценариях: ведение видеоархива, наложения данных на видеоряд, так и в более сложных
— используя возможности работы с несколькими камерами, становится доступной съёмка с разных ракурсов, с разным увеличением или параллельная запись состояния наблюдаемого и контрольного объектов. Полезными окажутся функции таймлапса, активации записи, а так же внешних устройств при обнаружении движения в кадре и многое другое.
Реализуя концепцию «экспериментального полигона», обратим внимание на статью Xeoma и системы умный дом, в которой приведен способ наложения информации на изображение, получаемое с камеры. Данные о состоянии окружающей среды получаются через сеть Internet от погодной станции Netatmo и передаются в модуль HTTP Маркировщик
К сожалению, решение на базе метеостанции дорого и не достаточно гибко – оно не позволяет ставить относительно масштабные эксперименты, в которых необходимы замеры температуры в нескольких точках и последующее усреднение показаний, оцифровка и математическая обработка аналогового сигнала, либо задействованы сенсоры, отсутствующие в Netatmо – инфракрасные бесконтактные термометры или пылевые датчики.
Устранить это затруднение нам позволит маленькая микросхема-микроконтроллер, установленный на плате из семейства Arduino — платформы, сделавшей доступным процесс создания простых цифровых электронных устройств множеству людей из различных сфер деятельности.
В нашем случае Arduino взаимодействует c сервером Xeoma через упомянутый ранее модуль HTTP Маркировщик. Данный модуль доступен в редакциях «Standart», «Pro» и пробной версии Xeoma. Для его активации необходимо встроить соответствующую иконку в цепочку между модулями «Универсальная камера» и «Просмотр и архив».
При необходимости ограничения доступа к модулю, в его свойствах следует задать учетные данные — имя пользователя и пароль, а так же изменить TCP-порт через который внешнее устройство будет командовать «HTTP-Маркировщиком». Важно понимать, что сохранение видеопотока с наложенными данными требует предварительного перекодирования. В случае применения IP-камеры для этого не следует разрешать опцию «Использовать запись H.264 потока в Архив без перекодирования» в модуле «Универсальная камера». При этом нагрузка на процессор, который обслуживает серверную часть Xeoma, увеличится.
Для работы модулю должна быть передана команда и данные, которые необходимо разместить в кадре. Так как передача осуществляется по локальной сети (LAN), то к ней необходимо подключить и плату Arduino.
Для начала создадим устройство с проводным подключением по сети Ethernet – установим на Arduino Uno дополнительный Ethernet Shield и снабдим наше устройство датчиком освещенности BH1750, работающим по шине I2C. Простой скетч проиллюстрирует принцип взаимодействия Arduino и Xeoma:
Затем модифицируем первоначальный вариант для получения более мобильного устройства на базе контроллера ESP32. Для разнообразия BH1750 заменим на датчик температуры DS18B20. Изменения в коде незначительны:
В завершение увеличим потенциал «экспериментального полигона» за счет модуля «Отправка HTTP команд», который по локальной сети совершает определенный пользователем GET/POST запрос на узел Arduino, непосредственно управляющий физическим устройством – микро-насосом, лампой или зуммером.
Для этого в цепочку, после любого модуля, генерирующего события, перетаскивается соответствующая иконка. В свойствах модуля указывается URL, по которому Xeoma будет соединяться при совершении заданного условия, например – при начале события. Для модуля
«Детектор движения» таковым событием является обнаружения изменения в кадре.
В нашем примере к детектору подключается два модуля «Отправка HTTP команд», которые будут работать по возникновению и завершению события соответственно. Таким образом, Arduino будет уведомлена о начале движения и его завершении. Её реакцией станет включение и выключение сигнального светодиода, расположенного на плате.
Для проверки используем ESP32 со следующим скетчем :
Как видно из приведенных выше примеров – объединение системы видеонаблюдения Xeoma и микроконтроллерных устройств на базе Arduino (а также, конечно же, других) не представляет особой сложности как для опытных специалистов в электронике, так и для совершающих свои первые шаги на этом пути, позволяя совершить много важных и интересных открытий.
*Орфография и пунктуация автора сохранены.
21 января 2022
Читайте также:
Работа на Linux
Работа на микрокомпьютере
Видеонаблюдение своими руками
Лайфхаки от Xeoma — советы и секретные возможности системы видеонаблюдения