Апрель 2013 — AVRobot

В этой статье я хотел бы познакомить Вас с новым устройством web-термометром TE_MONITOR. Что это такое и для чего он нужен?















TE_MONITOR - это web-термометр по Ethernet. Имея свой уникальный IP-адрес позволяет просматривать и опрашивать температуру удаленно, из любой точки мира. Возможность подключения 4-х датчиков температуры, поддержка SNMP, Telnet. TE_MONITOR обладает встроенным web-сервером.


Особенности:
  • Возможно применение для контроля температуры в помещении(склад,торгово-офисное помещение и т.д.), на улице, в серверной, внутри системного блока,.
  • Диапазон измеряемых температур от -55°C до +125°C .
  • Погрешность ± 0.5°C .
  • НЕ НУЖНО какое-либо дополнительное программное обеспечение. Достаточно любого браузера. Также показания можно считать по SNMP или по telnet.
  • Заказать термометр можно здесь
В качестве разъёма питания применён стандартный мини USB разъём.
Поэтому питание достаточно универсально, вы можете подключить устройство либо к USB порту компьютера, либо использовать как на фотографии зарядное устройство от сотового телефона с подходящим разъемом.

Первое включение устройства:

Соедините все кабели и подайте питание.

Мигание зелёного светодиода говорит о том, что устройство получает питание.

Свечение красного светодиода это индикация неисправности датчиков.
Обрыв или замыкание в линии.

По умолчание устройство имеет IP 192.168.1.20
Логин: admin
Пароль: admin

Набрав в адресной строке браузера адрес устройства мы увидим главную страницу:


При нажатии кнопки SETUP открываются дополнительные вкладки:

На вкладке Network Config можно настраивать системные параметры устройства.

IP Address - можно поменять IP адресс
Gateway - необходимо установить шлюз для устройства, например какой нибудь Router,ADSL-модем, или шлюз на Linux/Windows.
Subnet Mask - маска вашей сети
Login - установите новы логин
Password - укажите новый пароль
HTTP Port - можно указать на каком порте устройство будет слушать входящий запрос по протоколу HTTP. Иногда такая функция нужна если вы хотите прокидывать порты через свой Router, или просто скрыть порт.
Telnet Port - то же самое, что и HTTP Port
SNMP Port - то же самое, что и HTTP Port
Read Community - Это своеобразный пароль для опроса устройства по протоколу SNMP. Его необходимо в обязательном порядке поменять на другой, более сложный



На вкладке Sensor Config можно переименовать датчики, в соответствии с тем местом где они установлены. Названия могут быть и на русском языке. Названия каждого датчика пишем в поле "Alias". В поле "End" можно подписать, что температура у нас измеряется в градусах по Цельсию ( °C ). В поле "Hello Msg" можно ввести место/адрес установки данного устройства, например: квартира на Кутузовском; склад на Проспекте и т.д.

Попробуем переименовать датчик и посмотрим что из этого получится:


Если вам нужна страница для передачи только параметров температуры куда либо, то можно перейти по адресу http://192.168.1.20/tiny.htm
Тут не отображается ничего лишнего, только температура.











Следующая
вкладка (Remote log server) была добавлена для поддержки проекта http://narodmon.ru смысл в том, что даже если у вас нет "белого" ip адреса или адрес динамический, у вас всё равно будет возможность удалённо посмотреть показания ваших датчиков и привязать их к карте.





















Так как мы поклонники Linux,  то не сможем обойти стороной и связать устройство и  данную ОС, ну а также попробуем рассмотреть поближе все прелести использования SNMP ну и telnet-а заодно. Также попробуем вывести графики в нашем "Умном доме".

 Опрос значений по SNMP
В операционной системе Linux есть замечательный пакет net-snmp. Он включает в себя ряд утилит позволяющих работать с оборудованием по протоколу SNMP. В данном обзоре я не ставлю задачу расписать досконально по пунктику установку и работу с Linux. Азы вы должны познавать сами.

Установить net-snmp можно с помощью пакета apt.

apt-get install net-snmp - эту команду необходимо ввести в консоли linux под root-ми  привилегиями.

Предварительно необходимо узнать интересующие нас OID, это можно сделать с помощью команды snmpwalk:

# snmpwalk -v1 -c public 192.168.1.20 1
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.17095.1
SNMPv2-SMI::enterprises.17095.1.1.1.0 = STRING: "TE-MONITOR"
SNMPv2-SMI::enterprises.17095.1.1.2.0 = STRING: "v1.20"
SNMPv2-SMI::enterprises.17095.1.1.3.0 = STRING: "10.08.2012"
SNMPv2-SMI::enterprises.17095.1.2.1.0 = STRING: " 26.4"
SNMPv2-SMI::enterprises.17095.1.2.2.0 = Hex-STRING: 00
SNMPv2-SMI::enterprises.17095.1.2.3.0 = Hex-STRING: 00
SNMPv2-SMI::enterprises.17095.1.2.4.0 = Hex-STRING: 00

Опрашивать можно командой snmpget вида:

snmpget -v1 -c public 192.168.1.20 SNMPv2-SMI::enterprises.17095.1.2.1.0

Где
-v1  - версия используемого протокола snmp
-c  -  community поле в котором у нас по умолчанию написано public (см.выше)
SNMPv2-SMI::enterprises.17095.1.2.1.0  -  OID позволяющий напрямую опрашивать нужные нам значения.

В итоге мы получаем нужное нам значение первого датчика:

snmpget -v1 -c public 192.168.1.20 SNMPv2-SMI::enterprises.17095.1.2.1.0
" 26.4"

, которое мы можем записать в базу, например MySQL для последующего составления графика изменения температуры.

Если мы опрашиваем датчики из скрипта написанного на bash, то можно воспользоваться вот таким способом записи в базу:

#!/bin/bash

#Считаем температуру
temp=`snmpget -v1 -c public 192.168.1.20 SNMPv2-SMI::enterprises.17095.1.2.1.0`

#После этого уберем лишние кавычки и пробелы
temp=`echo $temp | sed "s/\" //" | sed "s/\"$//"`

#Запишем данные в базу mysql
mysql --user="USER" --password="PASSWORD" NAME_DB -e "INSERT INTO temp_serv VALUES(SYSDATE(),'$temp');"