NetPing: конструктор для администратора и досуг для программиста
Судя по тому, насколько популярен блог DIY, многие из нас любят изобретать. Наверное, каждый встречал человека, который способен сутками что-нибудь паять, программировать, отлаживать, не замечая ничего вокруг. Вот совсем свежие примеры.
В этой статье я расскажу про устройство, которое способно обеспечить досугом изобретателей очень надолго. Это, с одной стороны, серийно выпускаемые приборы. Но сделаны они в виде конструкторов, поэтому их применение ограничено лишь вашей фантазией.
Речь пойдет про устройства NetPing. Эта российская разработка периодически упоминается на хабре, но детального рассказа я не встречал. Пусть эта статья будет продолжением серии «Оборудование российского производства». Мне достался самый универсальный прибор линейки – UniPing RS-232. Основная сфера его применения – удаленный мониторинг и управление множеством устройств в квартире, доме, офисе. Конечно, давно существует понятие «умный дом», но, как правило, это преподносится как вариант для состоятельных людей, хотя получают они черный ящик с жестко заданным, пусть и большим, набором функций. Однако, можно ведь все собрать и запрограммировать самому!
- дистанционное управление электропитанием с возможностью принудительной перезагрузки;
- контроль доступа к удаленному объекту – датчики открытия/закрытия дверей, движения, удара, антивандальные системы, управление камерами наблюдения;
- слежение за микроклиматом внутри помещения – датчики температуры, влажности, скорость воздушного потока, управление кондиционером через ИК;
- отслеживание разных ЧП – датчики дыма, протечки воды;
- управление АТС по порту RS-232;
- удаленное изменение настроек систем в зависимости от ситуации;
- удаленный доступ к серверам через консоль – например, установка операционки без присутствия администратора;
- получение мгновенных уведомлений с фиксацией времени о сбоях и других важных событиях по множеству каналов: SMS, почта, Jabber;
- доступ ко всем параметрам наблюдаемой системы в реальном времени через HTTP или SNMP;
- управление включением/выключением света и любых других приборов по расписанию;
- дистанционный контроль каналов связи.
Использовать все это можно в обычной квартире, в загородном доме, в гараже, в удаленных серверных комнатах, в платежных терминалах, банкоматах и т.п. Понятно, что этим можно не ограничиваться и найти кучу других интересных применений. По этому поводу очень советую почитать вот это.
Подбираем нужный комплектНо давайте, наконец, посмотрим, как все это выглядит и как работает. Прибор достаточно простой, хотя при подключении датчиков надо быть внимательным и делать все по инструкции: так как это по сути конструктор, вставить проводок датчика можно куда угодно, а последствия могут оказаться самыми разными.
Все части комплекса продаются отдельно. В коробке лежит лишь устройство с блоком питания и разъемом DHS-44 для датчиков, а так же бумажка с IP-адресом.
- Датчик наличия 220В
- Датчик влажности
- Термодатчик TS (используется внутри помещений)
- Термодатчик WT (наружный влагозащищенный)
- Датчик дыма
- Датчик разбития стекла
- Датчик типа «сухой контакт» (например, сигнализация о факте открытия/закрытия двери)
- Датчик удара
- Датчик давления
- Датчик освещенности
- Датчик протечки жидкости
- Датчик движения
- Пассивный инфракрасный извещатель
- Инфракрасный приемник-передатчик
- SMS-гейт (для отправки SMS сообщений о срабатывании датчиков и других событиях)
- Сирена
- Счетчик электроэнергии (можно дистанционно контролировать расход)
В моем комплекте на картинке сверху датчики температуры, влажности, открытия двери и датчик удара.
На фото можно заметить еще одну плату, подключенную к NetPing. Это коммутационная плата NetPing Connection Board, предназначенная для упрощения подключения внешних датчиков.
В принципе, можно обойтись и без нее, но тогда придется самостоятельно паять провода под 44-штырьковый разъем, а это требует определенных навыков. Но мне понравилось, что не навязываются никакие лишние детали без необходимости.
Внутрь коробочки NetPing я лезть не стал, но, думаю, что там все просто: какой-нибудь специализированный микропроцессор, ОЗУ и обвес из миниатюрной периферии.
СобираемТеперь как все это собрать. Очень просто. Берем в руки отвертку, коммутационную плату, датчики и инструкцию (качаем с сайта). А дальше просто находим раздел про нужный датчик, вставляем проводки в нужные клеммы и прижимаем сверху винтиком.
На месте производителя, я бы все-таки сделал не голые провода, а что-то наподобие коннекторов на материнской плате:
Хотя, судя по всему, такие варианты у них тоже есть:
Руководство по сборке и настройке в некоторых случаях предполагает понимание азов схемотехники. Иногда встречаются вот такие пассажи: «Если линия, настроенная на вход, не подтянута к +5В и не подключена к источнику информации, то она является высокоомным входом». Однако, в остальном все описано не сложнее, чем в руководстве к материнской плате.
Включаем и настраиваемТеперь начинается самое интересное. Ведь для полноценной работы NetPing подключается к компьютеру, после чего можно настраивать датчики и следить за всеми параметрами в удобных программах и, что более важно для нас, программировать любые нестандартные сценарии работы.
Итак, соединяем NetPing со свободным портом роутера и включаем в розетку.
По умолчанию IP-адрес устройства выставлен в 192.168.0.100, поэтому если у вас сконфигурирована другая подсеть, может потребоваться поменять адрес NetPing. Делается это в программе NPConf. Программка эта также используется для загрузки новой прошивки. Есть еще возможность конфигурирования через Telnet, но мне она не потребовалась.
NetPing имеет встроенный веб-сервер, на который можно зайти через HTTP по адресу устройства.
Про его возможности расскажу немного ниже.
ПрограммируемПолный функционал устройства для программиста доступен по протоколу SNMP. HTTP — это лишь дополнение.
Протокол SNMP удобен, когда необходимо получать данные с большого количества устройств, при помощи каких-либо скриптов автоматизации или для отображения данных в уже существующих программах мониторинга сети. Получение данных по протоколу SNMP сводится к чтению/записи специальных адресов внутри устройства, называемых OID (object identifier). Адреса, поддерживаемые устройствами, можно найти в MIB-файлах (Management Information Base). Файл MIB должен соответствовать устройству и версии прошивки. Переменные внутри MIB-файла организованы в иерархии, и их удобно просматривать специальными программами, например, есть бесплатный MIB Browser. Здесь также можно менять значения переменных. Выглядит это примерно так:
Вот здесь пример полностью.
Сам MIB-файл можно открыть как ASCII-текст. Вот, например, описание датчика влажности:
На самом деле, протокол SNMP достаточно простой, хотя нотация требует некоторого привыкания. Управляющая система может получить информацию с устройства через команды GET, GETNEXT и GETBULK. Так можно считывать информацию с датчиков. Агент (на стороне устройства) может самостоятельно без запроса отправить данные, используя операцию протокола TRAP или INFORM. Управляющие системы могут также отправлять конфигурационные обновления или контролирующие запросы, используя операцию SET. Вот, собственно, и все.
Как это выглядит с точки зрения программиста. Пара примеров на PHP:
Получение значения температуры от датчика.
Включение/выключение реле: пишем по его адресу (OID) 1 для включения, и 0 для выключения.
Первый параметр функций – IP-адрес устройства. Второй (слово «SWITCH») – это так называемое community, специальное кодовое слово, которое необходимо указывать в любом запросе по протоколу SNMP. Оно задается на web странице настроек устройства NetPing. Далее идет OID, по которому мы читаем или пишем. Команда snmpset имеет еще 2 параметра: тип значения (в нашем случае integer) и само значение.
А вот опрос датчика на Perl. Или просто из командной строки (используются бесплатные утилиты NET-SNMP).
Если требуется только чтение показаний датчиков, то это можно делать по HTTP простым GET запросом.
Пробуем готовые программы мониторингаБезусловно, давно существует множество программ мониторинга, в которых можно работать, в том числе, и с устройствами NetPing. Опытные администраторы наверняка знакомы с какой-то из них. Кстати, для серверных комнат есть даже специализированное устройство UniPing server solution:
Я попробовал PRTG Network Monitor, который рекомендует сам производитель NetPing – Алентис Электроникс. При использовании 10 датчиков программа бесплатна. Если надо больше – придется платить $380, но под серьезные задачи оно того стоит.
В следующем разделе я покажу эту программу в работе, а здесь еще упомяну другие системы мониторинга: Zabbix и Nagios.
ЭкспериментируемК сожалению, у меня пока не было времени повозиться со всеми функциями и попрограммировать. Сначала я подключил самое простое – датчики влажности и температуры. Термодатчиков можно подключить до 8 штук.
Все заработало сразу. Для примера я провел небольшое исследование климата: положил датчик влажности на пол в комнате.
Влажность оказалась всего 25% (это еще когда отопление работало). По-моему, совсем нездоровый климат у нас в квартирах… Затем я протер пол вокруг датчика мокрой тряпкой. Как видим, влажность поднялось аж до 67% и держалось целых 5 минут :) Комфорт оказался мимолетным виденьем. А жаль. Надо будет серьезно думать над увлажнением комнаты. И это, кстати, еще при постоянно открытом окне. Страшно представить, чем мы дышим зимой за закрытым стеклопакетом.
Датчик влажности показывает еще и температуру по совместительству. Здесь все просто.
Заметьте (если это возможно на таком скриншоте), в программе есть вкладки на месяц и на 365 дней, так что, имея постоянно включенный сервер, можно строить красивые картинки климата. Еще бы барометр добавить – будет полноценная метеостанция.
С датчиком удара немного поиграл, убедился, что работает, но не стал настраивать TRAP-сообщения.
Зеленая лампочка (высокая чувствительность) загоралась при небольших сотрясениях, красная – при больших. Чувствительность настраивается. Датчик этот универсальный. Его можно использовать где угодно, в том числе в автомобиле с какой-нибудь сигнализацией.
Датчик открытия/закрытия двери тоже очень простой.
Разъединились половинки – уровень сигнала перешел из «0» в «1», соединились – снова вернулся в «0». Это было видно на коммутационной плате – там загорался или гас зеленый светодиод:
Все-таки пара слов о том, как настраивать TRAP. Потому что это единственный способ инициировать посылку сообщений от датчиков в случае каких-то важных событий. Настроить их можно и во встроенном web-сервере, но наблюдать удобнее в PRTG Monitor.
На этой страничке задается IP адрес, на который будут отсылаться TRAP пакеты по протоколу SNMP. События, по которым будут отправляться эти пакеты, задаются на других страницах web-интерфейса устройства.
Далее можно, например, настроить термодатчик на генерацию TRAP при превышении заданной температуры.
Безусловно, скриптами можно существенно расширить возможности. Например, отправлять SMS-оповещения при определенных событиях.
Провода у некоторых датчиков оказались достаточно короткими. Как я потом прочитал, длина проводов зависит от типа датчика. Особенность «токовых датчиков» (датчик дыма, датчик движения, датчик присутствия, шлейф сигнализации с контролем целостности и т.д.) в том, что сигнализация об их состоянии идет посредством не напряжения, а тока, из-за этого они намного меньше подвержены влиянию электромагнитных помех и допускают длинные шлейфы. Я думаю, что при хорошем экранировании любой датчик можно повесить на длинный шлейф. Потому что иначе применять их, например, в большой серверной комнате затруднительно.
В Web-интерфейсе есть также Журнал, в котором в хронологическом порядке фиксируются важные события, произошедшие в устройстве.
Так как устройство не содержит встроенных энергонезависимых часов, время в журнале отсчитывается от момента включения, который принимается за 01.01.1970,0:00. Если в настройках указан IP адрес NTP сервера, устройство вскоре после включения питания попытается установить свои часы по серверу времени.
Интересные примеры примененияОбласть применения устройства не заканчивается на контроле датчиков, а наоборот только начинается.
Здесь я приведу ссылки на другие интересные примеры применения.
Сравнение устройств и ценыЛинейка устройств NetPing довольно большая и функционал часто пересекается. Поэтому не всегда легко разобраться, какой прибор лучше подойдет для той или иной задачи. Я нашел ссылку с таблицей сравнения функций.
И еще полезной может оказаться тестовая плата DigiPing – на ней удобно отлаживать скрипты управления.
Что касается цен. Так как это конструктор, то для каждого решения стоимость может отличаться. Но в целом, по-моему, совсем не дорого. Для примера, небольшой комплекс для мониторинга оборудования в организации с ценами компонентов:
ВыводыЕсли вы системный администратор, то устройства NetPing вполне могут сэкономить вам время и средства на управление оборудованием в организации.
Но, думаю, что и просто люди с изобретательской жилкой найдут множество интересных применений. Некоторые я постарался описать в статье.
Есть, конечно, такие, которым интересны лишь готовые решения, выполняющие строго заданный набор функций.
С другой стороны, бывают ситуации, когда коробочка с одной кнопкой предпочтительнее сложного и гибкого устройства. Мне понравился пример в одной из статей, на которые я ссылался выше: «Настольный видеотелефон Skype у моей бабушки. Сколько я мучался, пытаясь ей настроить автопилотно работающие ноутбуки с камерой, и все равно проблемы и ставить некуда. А коробочка работает прекрасно».
В общем, вряд ли стоит думать, что все изобретено до нас. Успехов в творчестве!