Как сделать дешевые wifi датчики температуры/влажности

Оглавление

Теплолюкс Premium MCS 350.

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

Сенсорные кнопки на экране и не факт что это плюс.

Управление температурой возможно по двум датчикам: пола и воздуха, как одновременно, так и по отдельности (входят в комплект поставки).

Управление производится как непосредственно с сенсорного дисплея прибора, так и с помощью приложения, установленного на смартфон или WEB-интерфейса облачного сервиса.

Дистанционное управление осуществляется по сети Wi-Fi напрямую со смартфона с установленным приложением, по локальной сети, или через интернет при помощи облачного сервиса. Можно включить в домашнюю сеть до 32-х терморегуляторов Теплолюкс Premium.

Но нельзя одновременно активировать оба этих способа дистанционного управления.

Вот что по этому поводу написано:

Используется облачный сервис ССТ (специальные системы и технологии).

WEB-интерфейс: SST-cloud. Столкнулся с тем что не всегда доступен.

Мобильное приложение: SST-cloud. В отзывах тоже есть сообщения о том что облачный сервис бывает недоступен.

Кроме двух моделей терморегуляторов (с дисплеем и кнопками и без) в облачный сервис можно подключать систему контроля и управления водой Neptun ProW+WiFi.

Скриншоты личного кабинета WEB-интерфейса.

Непонятно — есть ли в терморегуляторе возможность программировать недельное расписание. В облачном сервисе можно — но сохраняется ли оно в терморегуляторе при потере связи.

Беспроводной термостат POER PTC10/PTR10 c WiFi шлюзом.

Стоит комплект 5300р на AliExpress.

Термостат состоит из программируемого передающего устройства (PTC10), принимающего исполнительного реле (PTR10) и подключаемого в сеть 220V шлюза Poer WiFi. Между собой связь осуществляется по радиоканалу 433/868 МГц, а шлюз с роутером по WiFi.

К одному шлюзу можно подключить несколько термостатов.

Приложение Poer Smart home получило много оценок — им реально пользуются. Много низких, но это детали — где вы видели положительные оценки в GooglePlay?

Есть вход в демо-аккаунт облачного сервиса.

К слову сказать, в официальном магазине POER на AliExpress есть single-изделие — термостат POER PTC20 без радио и шлюза. Подробное описание этого термостата рекомендую читать тут «POER термостат (thermostat, терморегулятор) с управлением через интернет — честный обзор» и тут «Термостат комнатный POER — Ужасное по качеству со сплошным браком изделие с Алиэкспресс».

Статьи сразу же отбивают охоту купить облачный терморегулятор с Wi-Fi на AliExpress.

Отмечу только наличие двух каналов управления:

Сборка устройств

Сборка на монтажной плате и первая версия софта показываю что все работает. Следующий этап —
нужно спаять устройства.

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

Я снимал видео как я паял, потом ускорил это видео и выложил на YouTube. Час пайки
за одну минуту — https://www.youtube.com/watch?v=w4MWFH6uB1g

Когда я все спаял и стал проверять я понял что я забыл заказать usb провода и блоки питания. Но мне повезло,
в своем ящике со всяким компьютерным барахлом я нашел все что мне нужно. Правда, все
USB провода и все блоки питания разные.

Покупка устройств

Автор Chillichump в своем видео использует датчик AM2302 и Arduino совместимое устройство Wemos D1 Mini.

  • Датчик — https://s.click.aliexpress.com/e/_d8Cfw2F (покупал за $2.44 за штуку)
  • Компьютер на базе ESP8266 со встроенным WiFi — https://s.click.aliexpress.com/e/_dVV7rc5 (покупал за $2.35 за штуку)

Заказал и оплатил на сайте 13 августа, а 2 сентября я забрал посылку с почты (вообще пришло чуть раньше).
Буду считать что пришло за 20 дней.

Я не заказывал, но вообще для сборки датчика нужны еще компоненты:

  • Резистор на 10 кОм
  • Провод Micro USB
  • USB блок питания

И еще нужны расходники — монтажные провода, припой. Из инструментов нужен как минимум паяльник и кусачки.

OWEN.

ТРМ500-WiFi совсем не комнатный регулятор.

Зато это промышленный терморегулятор с мощным реле, крупным индикатором и прямым доступом к OwenCloud.

Стоит всего 3600р.

Зато функционал обширный, как и положено для промышленного устройства.

Приложение OwenDeviceControl.

Облачный сервис имеет WEB-интерфейс с DEMO входом.

Существует и другой вариант применения устройств промышленной автоматизации OWEN в качестве терморегулятора с Wi-Fi.

Это связка ТРМ200 и ПВ210, стоимостью 3900 + 3900=7800р.

ТРМ200 — двухканальный измеритель с универсальным входом, RS-485 и бытовым дизайном настенного исполнения.

ПВ210 — сетевой шлюз для доступа к сервису OwenCloud RS-485 Wi-Fi.

Но это уже автоматизация совсем другого уровня.

Первая версия софта

На устройстве Wemos D1 Mini есть разъем Micro USB. Через него он получает питание.

Если этот USB подключить к ноутбуку, то можно заливать код на устройство, а устройство,
в свою очередь, сможет отправлять данные на ноутбук.

Для написания кода и его заливки на устройство используется бесплатная программа.
Arduino IDE.

В Arduino IDE нужно выбрать плату «LOLIN(WEMOS) D1 R2 & mini».

А чтобы эта плата там появилась нужно в настройках указать «Additional Boards Manager URLs»:

А еще нужно добавить в Arduino IDE библиотеку для работы с датчиком «DHT sensor library».
Вот ссылка на гитхаб https://github.com/adafruit/DHT-sensor-library.

После того как в Arduino IDE добавлена плата и подключена библиотека — можно написать код который будет
читать данные с датчика и отображать его. Тут еще нет никакого взаимодействия по WiFi, данные
отправляются на компьютер по USB.

Компилируем и загружаем код на устройство, включаем Serial Monitor в Arduino IDE и видим что каждые 1.5 секунды на экране
появляется числа с температурой и влажностью.

Отправка данных по WiFi на сервер

Итак, есть спаянные устройства. Есть код который умеет читать данные с датчика и выводить его на
компьютере через USB.

Но идея заключается в том чтобы датчик был автономным. Чтобы не нужно было его подключать
к компьютеру по USB. Нужно чтобы USB провод от датчика вставляется в USB блок питания,
блок питания — в розетку. А датчик подключался к WiFi и отправлял данные на сервер.

Через некоторое время чтения разной документации и примеров с кодом я написал
программу в Arduino IDE чтобы этот датчик подключался к WiFi и отправлял данные на
сервер с помощью метода POST протокола HTTP.

B теле запроса отправляется json вида

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

Код работает, но в этом коде мне не нравится что я собираю json руками
с помощью конкатенации строк, а не используют какую-нибудь хорошо отлаженную
библиотеку.

В коде нужно заменить строки «my_wifi_name», «my_wifi_password», «http://example.com/endpoint»,
нужно указать реальные данные.

Я проверил работу этого кода в трех ситуациях:

  • Если устройство выключится а потом включится, (например, выключали электричество), то после включения данные опять пойдут.
  • Если сервер стал недоступен, а потом все починилось, то устройство продолжит отправлять данные
  • Если WiFi стал недоступен, а потом вернулся, то устройство само переподключится

Все эти 3 нештатные ситуации устройство отрабатывает нормально. Как только проблема пропадает,
то все само начинает дальше работать. Устройство не нужно перегружать или еще что-то
с ним делать.

История

У меня есть несколько YouTube каналов которые я иногда смотрю. Один из них — это
Chillichump.
Человек живет недалеко от Лондона и у себя в садике в парнике выращивает острые перцы,
а потом из них делает соусы. Канал отличный, автор явно фанатеет от всего этого,
рассказывает он интересно, видео хорошего качества.

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

В начале 2019 года он выпустил видео о том как просто собрать датчик температуры и
влажности который может отправлять данные на сервер. У него достаточно технологическая
теплица: есть датчики, камеры, система автоматического полива. Всем этим он может
управлять удаленно.

Вот его видео как собрать датчик температуры/влажности —

(«Easy web-enabled Temperature and Humidity monitoring for your greenhouse»).

Судя по видео — все очень просто. Берется несколько деталей, все они спаиваются и
получается работающая конструкция которая умеет отправлять данные на сервер по WiFi.

И у меня как раз есть задача зачем мне это нужно. На даче есть проблема — влажность. Там очень сыро.
То что там есть проблема это ясно и без датчиков, но мне бы хотелось получить числа и графики влажности,
чтобы понять насколько помогают различные решения.

Так что я решил повторить то что описано в видео, спаять датчики и собирать с них данные.

Devi Smart.

Стоит 8500р.

Термостатом нельзя пользоваться без смартфона и Wi-Fi — это необычное решение производителя.

Скорее всего нет и облачного сервиса: если так — пусть терморегулятор будет примером.

Просто — красивый терморегулятор.

Вообще ничего нет интересного в мобильном приложении Devi Smart.

Разве что пошаговая настройка при подключении терморегулятора в сеть:

Тип регулирования: «Пол» – для систем поддержания комфортной температуры поверхности пола. «Воздух + пол» — для отопления помещения при помощи нагрева пола. «Главный» – датчик воздуха + контроль темп. пола для ограничения максимальной и/или поддержания минимальной температуры. «Воздух» – для отопления помещения другим источником. (Например, электроконвектором).

Тип покрытия пола, установленного над нагревательной системой — автоматически установить рекомендованные ограничение температуры пола.

Тип помещения — автоматически установить рекомендованную температуру воздуха. Мощность нагревательной системы — позволит рассчитывать потребление энергии электрическим нагревателем.

И т. п.

Ну еще можно выделить многопользовательский режим доступа к терморегулятору при помощи «Передать дом» и «Принять дом».

Raychem SENZ WiFi.

Стоит 10500р.

Паспорт Raychem-Senz-Senz-Wifi-Manual-EN.pdf.

Многоцветный сенсорный экран.

Режимы управления: по температуре пола, по температуре воздуха, по температуре воздуха с ограничением температуры пола, без датчика.

Адаптивность: определяет наиболее подходящий момент включения обогрева для достижения заданной температуры. Устройство приспосабливается к условиям окружающей среды и особенностям конструкции пола.

Функция обнаружения открытого окна: Если температура в помещении стремительно падает, например, из-за проветривания, терморегулятор не включает обогрев пола на протяжении этого ограниченного периода времени.

Контроль энергопотребления: показывает потребление электроэнергии за последнюю неделю, месяц и год.

Как это ни странно но тоже нет ничего интересного и в приложении SENZ-WIFI. Разве что необычный черный дизайн.

Не уверен в том что на самом деле имеется облачный сервис. Если так — неужели статистика температур хранится в самом терморегуляторе?

Beok.

В качестве примера приведу еще оборудование Beok магазина Shanghai Beok Controls Co.

Есть несколько интересных моделей термостатов с Wi-Fi.

Стоимость 2300р — 2750р.

Например, есть близнец Stem Energy и Floureon HY03WE-4-Wifi.

Есть мобильное приложение Beok Home.

Из комментариев можно, например, выяснить: «Разница между включением и выключателем обогревателя (гистерезис) в 2,5 °С — это игрушка а не терморегулятор». Это я к тому что много интересного можно выяснить, читая отзывы к приложению.

Непонятно что с облачным сервисом.

Всегда можно ожидать, что под интернет-управлением продавец лукаво имеет ввиду просто Wi-Fi или Google Home:

На форумах можно найти утверждения как о том, что облачный сервис работает, так и о том, что был и перестал работать. Это понятно — вряд ли кто-то будет задавать вопросы на форуме если с работоспособностью все в порядке.

Тут этот терморегулятор подключают к MajorDoMo.

Со страницы товара есть ссылка на инструкцию, что редкость для AliExpress.

Плюс к карме этого терморегулятора то, что контроллер теплых полов Beok CCT-10, который я установил недавно, отличного качества.

Ну и еще есть сайт бренда Beok.

В ближайшую дату 11.11 цена на терморегулятор Beok BOT-313WIFI будет 1600р.

Из схемы соединений видно, что у терморегулятора два выхода: для головок актуаторов коллектора теплого пола и логического входа котла отопления.

Запуск в работу

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

Осталось только установить эти датчики:

Сервер сохраняет данные в файлы. Я взял Jupyter и написал код чтобы нарисовать графики
температуры влажности:

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

В качестве эксперимента я поднял у себя Home Assistant
и настроил его чтобы он получал данные с этих сенсоров. Это оказалось очень несложно сделать.
Вот пример настроек для файла configuration.yaml:

Предмет обзора.

Чем терморегуляторы с просто управлением по Wi-Fi отличаются от терморегуляторов с управлением по Wi-Fi через облачный сервис рассматривал в специальной вводной статье Что такое терморегуляторы с Wi-Fi.

Здесь рассмотрим только терморегуляторы с Wi-Fi и облачным сервисом в придачу. То-есть у всех их есть мобильное приложение, ссылка на которое тоже будет приведена.

Наличие облачного сервиса не у всех протестирована, о чем будет указание.

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

У некоторых облачных сервисов есть WEB-интерфейс. Это хороший знак.

В этом обзоре не буду рассматривать устройства, которые больше чем терморегуляторы и не имеют панели управления. Это термоконтроллеры и теплоинформаторы для управления отоплением по Wi-Fi через облачный сервис. Может быть стоит сделать отдельный обзор таких устройств.

Не буду (почти) рассматривать и терморегуляторы с AliExpress, потому что не понятно: что именно лукавые продавцы называют «управлением по Wi-Fi» — часто там нет облачного сервиса.

Может возникнуть вопрос почему на некоторые Wi-Fi терморегуляторы разница 500р, хоть они и выглядят одинаково.

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

Будьте внимательны, если вам надо измерять температуру пола.

Резюме

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

Но мое решение больше похоже на прототип чем на настоящий продукт. Вот несколько вещей что
хотелось бы сделать иначе:

  • Устройство — это микросхема из которой торчат провода. Нужно все это облагородить. Запихнуть
    все это в красивый корпус.
  • Для того чтобы настроить подключение к WiFi нужно подключить устройство по USB к ноутбуку,
    в код программы вставить название точки доступа и пароль, скомпилировать и залить программу на
    устройство. Хотелось бы иметь возможность настраивать устройство без необходимости подключать
    к ноутбуку со специальным софтом. Например, устройство могло бы работать так. Дополнительно
    на устройстве есть кнопка. Зажимаешь ее на 5 секунд, устройство переходит в режим настройки.
    Оно становится WiFi точкой доступа к которой можно подключиться. Имя точки доступа — это ее MAC
    адрес (написан на устройстве). Пароль — серийный номер (тоже написан на устройстве). Подключился
    к этой точке, заходишь на адрес 192.168.1.1 — там простой веб интерфейс, где выставляешь настройки.
    Сохраняешь — устройство переходит в рабочий режим, подключается к указанной точке и два раза
    в минуту отправляет данные. Возможно еще было бы неплохо иметь на устройстве светодиод, разные
    цвета и разные паттерны моргания означают разные ошибки/состояния.
  • Работа устройства зависит от доступности сервера на которое устройство отправляет данные.
    Если к этому серверу нельзя подключиться (например, нет интернета), то замеры теряются. Возможно
    если нет доступа до сервера, то имеет смысл сохранять замеры в специальный буфер, а когда
    доступ к серверу возобновляется, то отправятся все сохраненные замеры.
  • Протокол взаимодействия с сервером — HTTP и все работает без необходимости указывать логин/пароль
    или токен. Возможно что стоит использовать специальный протокол MQTT, но если продолжать
    использовать HTTP, то нужно переходить на https с авторизацией по токену. Так что тут
    очень актуальна шутка что в слове IoT буква S означает Security.

Иван Бессарабовivan@bessarabov.ru

7 октября 2019