Дистанционный контроль температуры своими руками

Бюджетный мониторинг температуры в Cерверной комнате (MP707+nettop c Linux+PRTG)

Свою первую статью на Хабре интересно написать по материалу, основанному на личном опыте и действиях. Для этот как раз подходит раздел DIY или Сделай сам.

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

Задача:

Собрать бюджетную (с минимальными затратами) стабильную систему для простого удаленного мониторинга температуры в Серверной комнате.

В Серверной установлены два кондиционера (сплит-системы), две 19” стойки с оборудованием (коммутационное оборудование + сервера + ИБП).

Решение собиралось из имеющихся под рукой устройств (некоторым более 10 лет уже было) и бесплатного ПО.

Список оборудования и ПО:

  • цифровой USB-термометр MP707 (диапазон измеряемых температур, -55. +125);
  • 10-летний неттоп с МП MSI A9830IMS, Intel Atom N270 (1 Сore\1.60 GHz), 1GB ОЗУ, 80GB HDD;
  • ОС и ПО для неттопа: Linux Mint 17.1 Cinnamon 32-bit + ПО BMcontrol + служба SNMP + bash-script;
  • ПО для мониторинга: PRTG Network Monitor 17.1.28.1341 x64 на 100 сенсоров (бесплатное), установлено на внешнем ПК с Windows 7.

Устанавливаем в Серверной комнате датчик температуры (красным показано место установки):

Вот датчик закреплен на стойке:

— устанавливаем Linux Mint, обновляем;

— подключаем к неттопу по USB-кабелю USB-термометр MP707;
— получаем id температурного датчика с помощью BMcontrol;
— проверяем работу датчика: «sudo /var/www/bmcontrol1 temp b0000002c6dded28»
— пишем простой скриптик на 10+ лет работы системы:

— теперь у нас есть работающий и выдающий данные датчик, осталось передать эти данные в систему мониторинга – поднимаем службу SNMP и в конфиге snmpd.conf добавляем событие для передачи данных с датчика температуры, записанных в файл «extend .1.3.6.1.4.1.2021.51 ipmitemp /bin/cat /tmp/1.txt».

Настройка PRTG (это уже для данных с датчика)

(Главное, правильно интерпретировать данные с помощью регулярных выражений, путем экспериментов только получилось сделать как нужно эти настройки, внизу подсказка как они должны быть).

БАЗОВЫЕ НАСТРОЙКИ ДАТЧИКА Имя датчика SNMP Серверная Температура
Значение OID 1.3.6.1.4.1.2021.51.3.1.1.8.105.112.109.105.116.101.109.112
РАСШИРЕННАЯ ОБРАБОТКА
Интерпретировать результат как Строка (по умолчанию)
Извлекать числовое значение с помощью регулярного выражения
Регулярное выражение (23.85)

Теперь в ПО PRTG мы получаем данные по температуре из Серверной от датчика.

Не совсем простая система получилась, но очень дешевая (пришлось только датчик купить), да и как лабораторный вариант и потренироваться для настройки и понимания работы разных компонент – очень полезно.

В данный момент система работает более года (на этой неделе как раз проверил ее и перезапустил скрипт для профилактики) и далее будет еще развиваться, но это совсем другая история.

Источник

Как дёшево, сердито и удалённо контролировать температуру

Каждую зиму уезжая в город оставляю дом в деревне без присмотра. Ну то есть сосед одним глазом поглядывает что снаружи делается и в случае чего мне просигнализирует. А вот внутри дома в холода постоянно работает газовый котел, чтобы мыши не дай Бог не замёрзли. Однажды обратная тяга задула очаг и мне пришлось после покупать новую водяную станцию (насос с гидроаккумулятором и автоматикой) и чинить лопнувшие трубы водяного отопления. Оранжерея из неведомых, экзотических и уникальных цветов тоже не выжила.

Принято решение удалённо контролировать температуру внутри помещения, чтобы вовремя среагировать. Да. Знаю. Имеются готовые решения. Элементы и системы умного дома. Есть в конце концов Ардуино (и не только) с разнообразными датчикам и модулями беспроводной передачи данных. Но я решил исходить из того, что есть в наличии у каждого порядочного викинга: отработавший своё, но живой смартфон. Тем более в месте дислокации объекта только мобильный интернет.

Читайте также:  Замена сайлентблоков ниссан теана своими руками

Не претендую на оригинальность. Более того не уверен, что я первый. Но мой положительный опыт может будет кому-то полезен. Алгоритм работы системы прост как две копейки: по внешнему запросу либо по таймеру смартфон фотографирует показания с экрана метеостанции и отправляет фото на электронную почту. Всё! Супергерой мчится на помощь в случае критической динамики снижения температуры воздуха в помещении.

Железо. В моём случае метеостанция. Или цифровой термометр. Или обычный, если вера не запрещает. Смартфон с камерой (глупое наверное уточнение про камеру) и зарядное устройство. Подходящий тариф ОПСОСа. Сразу оговорюсь, в настройках камеры устанавливаю формат фото 320х240 и его размер не превышает 100 КБ. Для считывания данных этого достаточно. Расход трафика небольшой. Тряпки, палки, говно и синяя изолента на всякий случай.

Программная часть. В настройках камеры смартфона должна быть возможность установить формат и качество фото для уменьшения его размера, а то будете смотреть на термометр в разрешении 4К. Я пользуюсь Open Camera. В ней имеются нужные настройки и можно организовать режим timelapse. Тогда камера через заданные промежутки времени будет делать фото. Далее отправка фото на почту или в иное хранилище. Вариантом может быть, например, FolderSinc с заданием «немедленная синхронизация» или «синхронизация по расписанию». И изменения в каталоге хранения ваших фото можно наблюдать в вашем хранилище в любое время и из любого места.

Я выбрал иной вариант. Управляет работой смартфона MacroDroid. Есть ещё подобные программы, но названия я не помню. Яндекс помнит. Для организации моего варианта алгоритма работы прав суперпользователя не требуется. По триггеру, в качестве которого я использую входящий (или не отвеченный входящий) с выбранного номера, смартфон производит фотографирование и отправку последнего фото на указанный адрес электронной почты. Мне больше нравится получать фото по запросу, а не тупой timelapse. В этом я вижу свою божественную суть по отношению к перечисленным выше железкам!

Если у вас имеется датчик внешней температуры для/в смартфоне, можно просто по триггеру отправлять SMS с текстовой информацией о датчике. Тогда городить фото студию не придётся.

Спасибо дочитавшим до конца. Пользуйтесь на здоровье. И будьте все вы мне здоровы!

Источник

Прототип системы удаленного мониторинга температуры в погребе на LoRa

Есть такое утверждение: «что не делай на ардуино (а равно как и esp8266/esp32) получается метеостанция». Но метеостанций много не бывает и помимо жилых помещений есть ещё множество мест, в которых хотелось следить за температурой и влажностью. Мои родители живут за городом и для хранения продуктов, как и многие, используют погреб, который зимой необходимо хорошо утеплять и следить, чтобы овощи не померзли. Я подумал, что было бы удобно следить за температурой, а заодно и влажностью в погребе не выходя из дома. Так появился проект мониторинга температуры и влажности в погребе.

Проект состоит из двух частей — приемника и передатчика. Передатчик содержит датчик влажности и температуры, работает автономно, питаясь от аккумулятора, и с определенным интервалом делает измерения и отправляет на приемник. В промежутках между измерениями передатчик спит.
Приемник принимает данные от передатчика и отображает их на дисплее, при этом данные записываются в лог и есть возможность просмотреть историю изменения температуры и влажности за прошедший период.
У родителей нет единой точки доступа в интернет, все пользуются мобильным со своих устройств, поэтому в процессе продумывания системы мониторинга появился проект-концепт роутера для интернета вещей. Но проект пока находится в стадии концепта.

Читайте также:  Арболит мешалка своими руками

В качестве беспроводного протокола передачи данных между передатчиком и приемником я решил использовать LoRa, так как когда впервые о нем услышал, был прямо поражен показавшимися мне фантастическими характеристиками дальности связи и энергопотребления. «LoRa» это запатентованный компанией Semtech метод модуляции. Технологию «LoRa» поддерживают, выпускаемые Sementch микросхемы SX1278/SX1276 и др., на которых и основаны представленные на рынке приемеопередатчики. LoRa трансиверы обещают длительную работу от батарейки и связь на расстоянии в несколько километров.

Изначально для проекта были куплены модули Ra-02 (SX1278) от Ai-Thinker на 433МГц, спроектирована и изготовлена плата адаптера для Wemos D1 mini.

Позже я нашел более подходящий вариант для передатчика – TTGO T-Base. Он по распиновке полностью совместим с Wemos D1 mini, но при этом уже содержит схему зарядки и контроля напряжения аккумулятора.

Так проект понемногу обрастал железом и развивался, но в процессе неудачного эксперимента TTGO T-Base канул в небытие, к тому же появились новые железки, которые перетянули внимание на себя и проект был приостановлен. Одной из таких железок завладевших моим вниманием стал конструктор смарт-часов на ESP32 — TTGO T-Watch.

Я активно слежу за развитием этой платформы и мне вновь посчастливилось стать участником тестирования и получить плату расширения с LoRa-модулем на борту.

LoRa-модуль основан на SX1276, который работает на частоте 868 МГц, в моем же распоряжении были модули на SX1278 с частотой 433 МГц, поэтому для теста был дополнительно заказан трансивер на соответствующую частоту.

Характеристики трасивера SX1276
Технология FSK/GFKS, технология LoRa
Полудуплексная связь
Чувствительность приемника -139dbm.
Мощность передатчика 20dBm
Ток в режиме приема 10-12 мА

Для теста был возрожден проект мониторинга температуры в погребе с новыми комплектующими. Теперь он выглядит так:
Передатчик: TTGO T-Base + SX1276 + DS18b20
Приемник: TTGO T-Watch + SX1276

Изначально для проекта на LoRa-модулях работающих на частоте 433Мгц были куплены соответствующие антенны, предполагалось, что антенна передатчика будет вынесена из погреба на поверхность. В данном же случае для приемника будет использоваться идущая в комплекте спиральная антенна, а для передатчика антенна от GSM-модуля.

LoRa-модуль на SX1276 совпадает по размерам, количеству пинов и шагом между пинами с модулем Ra-02 на SX1278, но назначение пинов отличается. Я принялся проектировать новую плату LoRa-шидла для Wemos d1 mini, а для теста припаял провода непосредственно к модулю трансивера. Также для теста использовал не датчик влажности и температуры, а просто термодатчик DS18b20 в водонепроницаемом исполнении.

Для доступа пинам GPIO платформы T-Watch я сменил базовую плату расширения, которая по умолчанию установлена в T-Watch, на дополнительную, теперь же вместо нее необходимо установить плату расширения с LoRa модулем. Платы расширения и основная плата соединяются гибким шлейфом, такой способ соединения не предполагает частой смены плат расширения в отличие от похожей по концепции платформы M5Stack, но это закономерный результат стремления к максимальной компактности платформы.
Пользуясь случаем покажу как выглядит основная плата T-Watch с ESP32.

Переходим к проверке работоспособности системы.
В репозитории есть пример для работы с LoRa модулем. Библиотека lvgl, на которой основан пример, для меня по-прежнему темный лес, поэтому я написал свой скетч без её использования. Я адаптировал примеры LoRa_sender и LoRa_reciver из библиотеки LoRa.h, использованные мною ранее для модулей на 433МГц. Пока есть только одно устройство можно проверить его работоспособность в качестве передатчика с помощью SDR-приемника.

Передатчик, собранный на проводах, выглядит весьма непривлекательно и работает нестабильно, доставка же плат затянулась в связи с новогодними праздниками. После получения печатных плат шилд наконец-то был собран.


Важной характеристикой передатчика является его энергопотребление. На рисунке показан график потребляемого тока передатчика, отправка значений происходит каждую минуту, после чего esp8266 переходит в режим глубокого сна. Замер производился с помощью USB-тестера c Bluetooth, который не отличается высокой разрешающей способностью и частотой дискретизации, поэтому на графике отображены не все пики, соответствующие циклу бодрствования микроконтроллера. В цикле сна же потребление вовсе равно 0, что было бы конечно просто замечательно, если было бы правдой.

Согласно проведенным замерам, за пару часов работы передатчик израсходовал порядка 70мАч. При таком расходе электроэнергии аккумулятора емкостью 1500 мАч хватит всего на пару суток, что очень мало. Тем не менее передатчик работает уже несколько дней непрерывно.
Для уменьшения энергопотребления в реальных условиях можно уменьшить частоту отправки измеренных параметров, убрать с платы T-Base светодиод и, возможно, переработать плату LoRa-шилда.

Читайте также:  Дневник тома реддла сделать реддла своими руками

Приемник на базе T-Watch отображает последнее значение температуры, максимальное, минимальное значение и график из 240 последних значений. Очевидно, что на данном этапе приемник работает весьма неэффективно и есть множество программных моментов, которые требуют оптимизации.

Тестирование в реальных условиях.

Передатчик собран в корпус от губки для обуви за неимением на данный момент другого.
Так как я, к сожалению бываю у родителей не очень часто, до настоящего времени удалось протестировать систему только два раза. Первый тест оказался не совсем удачным: я поленился лезть в погреб, передатчик оставил на крышке погреба, а сам датчик температуры опустил внутрь. Но, видимо, из-за мороза аккумулятор довольно быстро разрядился и проследить какую-бы то ни было динамику температуры в погребе не удалось.

Второй тест оказался более удачным. Передатчик, помещенный внутрь погреба, проработал почти сутки, пока я не забрал его. Сигнал уверенно принимался во всем доме, на расстоянии примерно 50м, что для конечно LoRa очень мало. Максимальную же дальность не проверял, так как не было необходимости. При этом следует учесть, что передатчик находился на глубине пары метров под землей, а между ним и приемником было несколько преград.
На не совсем удачной фотографии показан график температуры, при установке его в погребе. Можно увидеть, что температура не опустилась ниже 1 С, при этом на улице было около -14 С.

Код приемника и передатчика.

TODO
Поменять датчик DS18B20 на датчик влажности.
Добавить возможность отключения дисплея приемника.
Добавить контроль заряда батареи передатчика.
Подобрать корпус для передатчика, желательно герметичный.
Оптимизировать код приемника.

Вывод
Система работоспособна и может быть использована в реальных условиях, при этом необходимо уменьшить энергопотребление передатчика, а также оптимизировать код приемника.

Источник

Оцените статью