Термореле с WI-FI интерфейсом

Для контроля температуры в помещении с радиоаппаратурой я уже в течение нескольких лет использую термометр с WI-FI интерфейсом. Он позволяет контролировать температуру удаленно, достаточно просто открыть вкладку браузера на любом устройстве (ПК, планшет, смартфон). При необходимости, это устройство может исполнять также функции термореле, включая или выключая внешнее оборудование по установленному термо профилю.

Принцип работы

Термореле собрано на базе WI-FI микроконтроллера ESP-12 (ESP8266). В схеме использован распространенный датчик температуры DS18B20, который можно подключить к устройству кабелем длиной до 20м. Собственно, схема состоит из двух частей (двух плат) — плата источника питания и плата с микроконтроллером и индикацией.

Схема включения ESP8266 стандартная, прошивка осуществляется через miniUSB разъем на плате контроллера. Две платы соединены шлейфом из четырех поводов.

Напряжение питания микроконтроллера и реле 3,3В, поэтому использован импульсный блок питания HLK-PM01-3.3. Он достаточно компактный и не «шумит» на радиолюбительских диапазонах. Устройство смонтировано в корпусе на DIN рейку Gainta D2MG.

Исходный код прошивки, схема и печатные платы размещены на GitHub. Там же есть инструкция по работе и подключению к WI-FI сети.

Дополнительные возможности

Данное устройство можно использовать для передачи данных о температуре воздуха для сервиса Народный Мониторинг. Интересный проект, который позволяет отслеживать реальную температуру воздуха в округе.

Для передачи данных на сервер Народного Мониторинга нужен компьютер с ОС Linux. Проще всего для этого приспособить raspberry pi или orange pi. Ниже приведена небольшая инструкция по настройке сервера.

В домашней папке пользователя необходимо выполнить следующие команды

mkdir narodmonitor
cd narodmonitor
nano get_xml.sh

Содержимое файла get_xml.sh:

#!/bin/bash
cd /home/pi/narodmonitor
wget -O /home/pi/narodmonitor/xml http://WIFI_RELAY_IP_ADDRESS/xml
cat xml | sed "s/<?xml version='1.0'?><response>Temperature: //" 
| cut -c1- | rev | cut -c13- | rev > /home/pi/narodmonitor/temp.txt

Далее даем права на исполнение:

sudo chmod +x get_xml.sh
nano send_data.sh

Содержимое файла get_xml.sh:

#!/bin/bash
# by Tuinov Andrey voytmar @ yandex.ru

SERVER="narodmon.ru"
PORT="8283"

# MAC адрес прибора. Заменить на свой!
DEVICE_MAC="02:42:3c:79:20:e7"

# идентификатор прибора, для простоты добавляется 01 (02) к MAC прибора
SENSOR_ID_1=$DEVICE_MAC"01"

# значения датчиков
sensor_value_1=$(cat /home/pi/narodmonitor/temp.txt)

# устанавливаем соединение
exec 3<>/dev/tcp/$SERVER/$PORT

# отсылаем единичное значение датчика
printf "#%s\n#%s#%s\n##" "$DEVICE_MAC" "$SENSOR_ID_1" "$sensor_value_1" >&3

# получаем ответ
read -r MSG_IN <&3
echo "$MSG_IN"

# закрываем соединение
exec 3<&-
exec 3>&-

Не забудьте поменять MAC адрес на свой. Далее даем права на исполнение и открываем настройки планировщика cron:

sudo chmod +x send_data.sh
crontab -e

И настраиваем сбор и отправку данных по расписанию:

*/15 * * * * /home/pi/narodmonitor/get_xml.sh
*/20 * * * * /home/pi/narodmonitor/send_data.sh

Теперь данные для Народного Мониторинга будут отправляться 3 раза в час. Сервис, например, умеет строить красивые графики температуры:

Телеграм-бот для контроля температуры

Еще одна функция, которая может пригодиться — это использование Телеграм-бота для контроля за температурой в помещении. Так как термометр имеет WI-FI интерфейс и выдает данные в виде html странички, это открывает огромное поле для творчества. Данные можно обрабатывать и посылать куда угодно, в том числе и в Телеграм. В будущем, я думаю, стоит более подробно рассказать о возможностях Телеграм-ботов в контексте любительской радиосвязи.

 

Запись опубликована в рубрике ESP8266, Linux, Удаленка с метками , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *