Недорогой датчик температуры
Мониторим температуру в серверной. Недорого
31 октября 2011 г. RSS Обсудить
Статьи » Серверная комната серверное
К теме организации серверной комнаты в условиях ограниченного бюджета мне уже доводилось обращаться ранее. Одна из коротких заметок об общих принципах так и называлась - Бюджетная серверная. Сегодня я хочу снова вернуться к этой теме, но на этот раз в узкой области мониторинга температуры.
Сначала очень хотелось рассказать, почему так важно контролировать температуру серверного помещения, привести статистику по причинам сбоев в работе вычислительного оборудования, привлечь аналогию с крупными центрами обработки данных, ещё раз высказать мнение, что основополагающие принципы построения крупных дата-центров и маленьких серверных, в общем-то не отличаются, и затем плавно перейти к основной теме. Но зачем, подумал я, раз вы читаете этот текст, то наверняка уже в курсе, а потому – сразу к делу. )
Для бюджетного мониторинга температуры в серверном помещении предлагаю воспользоваться простеньким USB-термометром, стоимость которого сравнима со стоимостью дюжины поездок на метро, а задачу по обработке получаемых с него данных возложить на один из серверов. Представляю вам TEMPer.
Устройство существует в разных вариантах, с выносными и внутренними датчиками температуры и влажности. Далее речь пойдёт о самом простом (и недорогом) представителе семейства с единственным внутренним датчиком температуры.
Данная модель USB-термометра может продаваться под разными брендами, но чаще всего концы ведут к компании RDing Technology и торговой марке PCsensor .
Продаётся обычно в комплекте с USB-удлинителем и 8-см диском с драйвером и ПО. Содержимое диска в моём случае оказалось бесполезно – программа под Windows, по качеству пригодная, разве что, для демонстрации работы.
Комплектный простой USB-удлинитель так же не очень удобен. Вот, к примеру, как выглядит TEMPer, установленный в кредл из комплекта USB Wi-Fi адаптера Netgear WNA1100:
Итак, датчик у нас есть, осталось разобраться с ПО для мониторинга. Помимо выяснения текущей температуры, хотелось бы получить следующие функции: сбор статистики за определённый период, представление её в удобном виде и возможность задания пороговых значений температуры, достижение которых вызывало бы отправку сообщения, например, по электронной почте, ответственному лицу.
В случае ПО для Windows всё очень просто. Стивом Тимсом (Steve Timms) написана и поддерживается программа ThermoHID. где есть все перечисленные функции и даже много больше.
Поблагодарим Стива за программу, и перейдём к более интересному (по крайней мере, для меня ;)) случаю – мониторинг из UNIX-подобных операционных систем. По причинам, не относящимся к теме данной заметки, ближе всего мне системы семейства BSD. Так что пусть простят меня линуксоиды, но именно примеру мониторинга из операционной системы OpenBSD будет посвящён дальнейший текст, хотя многое из описанного с небольшими изменениями подойдёт и для них. Да и в интернете примеров применения устройств семейства TEMPer с различными дистрибутивами на базе GNU/Linux несравнимо больше.
Функции датчика HidTEMPer (vendor 0x1130, product 0x660c) в операционной системе OpenBSD доступны благодаря драйверу uthum, и, благодаря нему же, получить значение температуры можно в одной из переменных sysctl. Пример:
В других UNIX-подобных операционных системах поддержка данного устройства может отличаться, поддерживаться может другим драйвером, и для получения данных потребуется отдельная программа, а не чтение переменной sysctl. Кроме того, существует устройство TEMPerV1.2, внешне выглядящее точно так же и выполняющее те же функции, но аппаратно несколько отличающееся.
Для дальнейшего использования в скрипте неплохо бы получать только значение, без имён переменных и описаний. Проще простого, призовём на помощь awk:
Отсечено всё, что было в выводимой изначально строке после первого пробела.
Применив операцию дважды, но во второй раз назначив разделительным знак "=" и взяв второе поле, наконец получим искомое:
Способ получать значения температуры найден, давайте посмотрим, как можно собирать статистику и представлять её в удобоваримом виде. Для UNIX-like существует отличный набор утилит rrdtool. С помощью rrdtool создадим и будем вести базу данных с получаемыми периодически отсчётами температуры, но не только – rrdtool умеет на основе данных из базы строить различные графики.
Пример скрипта на sh, с комментариями:
Теперь осталось запланировать в cron выполнение данного скрипта с заданной периодичностью (в примере – раз в минуту), и по мере заполнения базы данных начнут создаваться графики, подобные этим:
Следующим логичным ходом будет установить и запустить web-сервер, создаваемые изображения с графиками складывать в папку, доступную по http, а на web-сервере разместить страничку с этими изображениями.
Полагаю, разобравшемуся в данном скрипте не составит сложности дополнить этот или написать ещё один скрипт, который будет сверять текущее значение температуры с заданным, и в случае превышения первого над вторым отправлять e-mail на определённый адрес. Ничто не мешает с помощью сервисов Email-to-SMS обеспечить таким образом доставку SMS сообщений с предупреждениями. Нетрудно так же наладить периодическую отправку отчётов, причём с почтовым клиентом вроде mutt, можно к отправляемым сообщениям легко присоединять изображения, созданные с помощью приведённого выше скрипта.
Да пребудет всегда прохлада в вашей серверной!
Регистраторы температуры производства GREISINGER electronic GmbH
EL-USB-TC-LCD
Регистратор температуры с дисплеем (терморегистратор) для подключения внешних термоэлементов (J, K и T)
- Подключение к USB-порту;
Разрешение: 0,5°C
Точность: ± 1,0°С (при 25°С)
Разъем для термоэлемента: Миниатюрный плоский разъем
Память: 32.000 измеренных значений
Интервал регистрации:
1 сек, 10 сек, 1 мин, 5 мин, 30 мин, 1 час, 6 часов, 12 часов
(настраиваемые программно)
Рабочая температура USB-носителя: -10. +40°C
Интерфейс: USB
Батарея: 3,6V литиевая батарея типа 1/2 AA
Срок службы батареи: 6 месяцев при 25°С и с интервалом записи измеренных значений в 1 минуту
Размеры: 118,2 x 26,8 мм (LXB), диаметр 27,0 мм
Особенности: Hi/Lo пределы, светодиодная индикация разряда батареи, красный, зеленый и оранжевый светодиоды для индикации статуса устройства
Kомплект поставки: регистратор,3,6V литиевая батарея, программное обеспечение, защитный колпачок, инструкция по эксплуатации (на CD-ROM), карманный зажим, проволочный датчик
Примечание: EL-USB-TC-LCD не предназначен для подключения к промышленным сетям и не совместим с EASYBus
Техническое описание 20flag.jpg" /%
T-Logg 100
Недорогой регистратор температуры
- Индивидуальное программирование периодичности записи;
- 16000 показаний для самых различных случаев применения;
- Встроенный датчик температуры.
Диапазон измерений: -25,0. + 60,0°C
Разрешение: 0,1°C (индикация и сохранение)
Точность измерений: ± 0,5°C (при температуре 25°С)
Память: 16000 измеренных значений
Датчик: встроенный датчик 10k NTC,
Периодичность регистрации: от 2 сек. до 5 ч (настраивается программно)
Длительность записи: 166 дней (при 15-минутном интервале записи)
Рабочая температура: -25. +60°C
Интерфейс: последовательный интерфейс, 3-контактный мини-штекер
Батарея: сменная батарея CR 2032
Срок службы батареи: более 1 года (при 15-минутном интервале записи)
Размеры: 48,5 мм x 48,5 мм x 35,5 мм (Д х Ш x В)
Kомплект поставки: прибор с батареей питания, руководство по эксплуатации
Примечание: Т-Logg не предназначен для подключения к промышленным сетям и не совместим с EASYBus. Для считывания и конфигурирования требуется дополнительный интерфейсный преобразователь USB 100.
Техническое описание 20flag.jpg" /%
T-Logg 100 E
Недорогой регистратор температуры с внешним датчиком
- Индивидуальное программирование периодичности записи;
- 16000 показаний для различных случаев применения;
- Внешний датчик температуры диаметр 5 х 50 мм, с 1 м кабеля.
Диапазон измерений: от -25,0. + 60,0°C
Разрешение: 0,1°C (Отображение и сохранение данных)
Точность измерений: ± 0,2% от измеряемой величины ± 0,5°C
Память: 16000 измеренных значений
Периодичность регистрации: от 2 сек. до 5 ч (настраиваемые программным обеспечением)
Период записи: 166 дней (при 15-минутном интервале записи измеренных значений)
Рабочая температура: -25. +60°C
Интерфейс: последовательный интерфейс, 3-контактный мини-штекер
Батарея: сменная батарея CR 2032
Срок службы батареи: более 1 года (при 15-минутном интервале записи измеренных значений)
Температурный датчик: 10k NTC. 5 x 50 мм, силиконовый кабель 1 м
Размеры: 48,5 мм x 48,5 мм x 35,5 мм (Д х Ш x В)
Kомплект поставки: регистратор температуры с термодатчиком, элемент питания, руководство по эксплуатации
Примечание: Т-Logg не предназначен для подключения к промышленным сетям и не совместим с EASYBus. Для считывания и конфигурации прибора требуется интерфейсный преобразователь USB 100.
Техническое описание 20flag.jpg" /%
T-Logg 100 SET
Недорогой регистратор температуры
с программным обеспечением и интерфейсным преобразователем
- Индивидуальное программирование периодичности регистрации (записи);
- Регистрация до 16000 показаний;
- Встроенный датчик.
Диапазон измерений: от -25,0. + 60,0°C
Разрешение: 0,1°C (индикация и сохранение данных)
Точность измерений: ± 0,5°C (при 25°С)
Память: 16000 измеренных значений
Периодичность регистрации: от 2 сек. до 5 ч (настраивается программно)
Длительность записи (регистрации): 166 дней (при 15-минутном интервале записи измеренных значений)
Рабочая температура: -25. +60°C
Интерфейс: последовательный интерфейс, 3-контактный мини-штекер
Батарея: сменная батарея CR 2032
Срок службы батареи: более 1 года (при 15-минутном интервале записи измеренных значений)
Размеры: 48,5 мм x 48,5 мм x 35,5 мм (Д х Ш x В)
Kомплект поставки: регистратор с батареей питания, руководство по эксплуатации, интерфейсный преобразователь USB 100, Minisoft программное обеспечение для считывания данных на CD
Примечание: Т-Logg не предназначен для подключения к промышленным сетям и не совместим с EASYBus.
Техническое описание 20flag.jpg" /%
EASYLOG 40K, регистратор температуры
с чувствительным элементом (температурным датчиком) установленным непосредственно на устройстве
Диапазон измерений: -25,0. +60,0 °C
Память: 48000 измеренных значений
Датчик: FL=30 мм, D=7 мм (установлен непосредственно на устройстве)
Техническое описание 20flag.jpg" /%
EASYLOG 40KH, регистратор температуры
Датчик подключен к устройству при помощи 1 м гибкого кабеля
Диапазон измерений: -50,0. +150,0 °C.
Память: 48000 измеренных значений
Датчик: D=5 мм, FL=50 мм, силиконовый кабель 1 м
Техническое описание 20flag.jpg" /%
EASYLOG 40KH-GOF
Регистратор температуры для измерения на поверхностях
- Индивидуальное программирование периодичности регистрации (записи);
- 48000 измеренных значений на поверхности материала и температуры окружающей среды;
- Внешний самоклеящийся на поверхность датчик GOF 115 Pt1000.
Диапазон измерений: -50,0. +150,0°C
Разрешение: 0,1°C (индикация и сохранение данных)
Точность измерений: ± 0,5°C ±0,2% v.M.W. (при 25°С)
Периодичность регистрации: от 2 сек. до 5 ч (настраивается программно)
Длительность записи: 500 дней (при 15-минутном интервале записи измеренных значений)
Рабочая температура: -25. +60°C
Интерфейс: EASYBus интерфейс, 3-контактный мини-штекер
Срок службы батареи: около 6 лет (при 15-минутном интервале записи измеренных значений)
Температурный датчик: самоклеящийся на поверхность датчик температуры с силиконовой оболочкой Typ GOF 115 Pt1000) около 2 м PFA-изолированного кабеля смонтированным на корпусе.
Размеры: 48,5 мм x 48,5 мм x 35,5 мм (Д х Ш x В)
Kомплект поставки: регистратор с батареей питания, руководство по эксплуатации.
Самоклеющийся датчик
Техническое описание 20flag.jpg" /%
EASYLOG 40KH-E300, регистратор температуры
Датчик подключен к устройству при помощи 1 м гибкого кабеля
Диапазон измерения: -50,0. 300,0°C
Память: 48000 измеренных значений
Датчик: D=3 мм, FL=100 мм с уплотнением ввода кабеля, 1 м кабель с оболочкой из стекловолокна
Техническое описание 20flag.jpg" /%
EASYLOG 40KH-E600, регистратор температуры
Датчик подключен к устройству при помощи 1 м гибкого кабеля
Диапазон измерения: 0. 600°C
Память: 48000 измеренных значений
Датчик: D=3 мм, FL=100 мм, с оболочкой, силиконовый кабель 1 м
Техническое описание 20flag.jpg" /%
Недорогой ESP8266 NodeMCU выключатель
Основным компонентом или, скорее, само понятие Интернет вещей, о том, как подключать различные устройства к сети, так что бы они оба могли отправлять данные и получать команды. Различные технологии для решения этой проблемы из последнего это: Bluetooth, Wi-Fi, NFC, и т.д … которые уже существуют, но большинство из них сложны в установке и часто нуждаются в дополнительных аппаратных средств, таких как локальный сервер управления или приборы подключенные к ним.
Здесь я покажу вам, как создать и сконфигурировать простой автономный выключатель с управлением по Wi-Fi, которая может отправлять данные об окружающей среде в интернет и получать ДУ (дистанционное управление), чтобы включить / выключить переключатель. Этот проект, который может быть построен менее чем за 10 или 15 долларов США делает следующее:
- Отправить показаний температуры / влажности с датчика DHT11 по MQTT на канал Thingspeak
- Следить за сообщениями MQTT и включить или выключить реле, подключенного к ESP8266
- Периодически проверять канал Thingspeak и включает / выключает реле, если поле было обновлено.
ESP8266 NodeMCU
Программная часть платы выполнена на модуле ESP8266 NodeMCU. т.е. имеет нестандартную прошивку, а специальный интерпретатор языка LUA. LUA – является скриптовым языком, который понимет наш модуль благодаря NodeMCU. Подробнее о быстрой установке ESP8266 NodeMCU. можно прочитать в блоге Нестерова Кирилла kirill1985.ru.
Говоря простыми словами, это датчик температуры / влажности с интернет подключением и реле. Реле двух-позиционный переключатель и может быть использован для включения / выключения любого прибора переменного тока и постоянного тока, подключенных к нему. Все комплектующие по расходам обошлись мне менее 15 долларов США и другого оборудования не требуется. Программное обеспечение, используемое в моем мини проекте с открытым исходным кодом и только свободный онлайн-сервис были использованы для подключения платы к интернету. Предполагается, что у нас есть WiFi сеть, работающая и доступная для подключения платы.
- ESP8266 модуль ESP-01
- DHT11 или датчик DHT22
- 5V реле
- LM1117 стабилизатор напряжение 3,3 В
- 1 х 470 мкФ
- 2 х 10 мкФ Танталовый конденсатор
- 2 х 1K резистор
- 1 LED
- клеммы
- Печатная плата
- FTDI USB to TTL адаптер с кабелем
Схема довольно проста
Плата может питаются либо от кабеля USB или отдельно через 5В питания постоянного тока, подключенного к разъему питания в самом верху. LM1117-3.3 LDO используется для получения 3,3 Вольт для модуля ESP8266. Датчик DHT11 подключен к GPIO2 через колодки ESP8266.