Андрей Смирнов
Время чтения: ~9 мин.
Просмотров: 4

Wi-fi термометр для контроля и управления температурой в помещении

Отправка данных по 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 нештатные ситуации устройство отрабатывает нормально. Как только проблема пропадает,
то все само начинает дальше работать. Устройство не нужно перегружать или еще что-то
с ним делать.

Особенности

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

  • относительную влажность воздуха;
  • атмосферное давление;
  • текущее время;
  • календарную дату.

Дисплеи большинства таких устройств довольно велики, потому прочесть всю выводимую информацию не составит труда. Средний размер экрана – 0,1х0,1 м. Благодаря крупным шрифтам пользоваться Wi-Fi-термометрами смогут даже люди со слабым зрением. Экран подсвечивается практически в каждой модели, что облегчает их использование в темноте. Спектр применения таких устройств достаточно широк: они встречаются на кухнях, измеряют температуру тела, температуру воды в детской ванночке или бассейне и так далее.

Электронные беспроводные измерители отличаются потрясающим быстродействием. Как только они будут включены, можно сразу же узнать истинную температуру. Ряд модификаций оснащают радиоприемниками. Распространена и опция подключения к компьютеру, позволяющая вести электронный дневник погоды.

Виды и модели

Термометр электронный уличный с выносным датчиком с передачей данных по Wi-Fi может монтироваться на стену или перемещаться произвольно. Но в обоих случаях удаление от передатчика должно составлять не более 60 м.

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

Wi-Fi-термометры могут использоваться:

  • для дачи;
  • для дома;
  • в городской квартире;
  • в автомобиле;
  • в гараже;
  • в бане и сауне;
  • для контроля температуры аквариума;
  • для оценки температуры продуктов.

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

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

Главными частями устройства являются термический баллон и капиллярная трубка из меди. На одном из ее концов находится специальная пружина. Плотность присоединения к капилляру и пружине критически важна.

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

Популярностью пользуется модель «Страж ТН-20». Хотя она стоит примерно 10000 рублей, ее берут охотно, поскольку этот термометр измеряет еще и уровень влажности. Достигается такой функционал просто: совмещают пару датчиков. Система позволяет контролировать показания в режиме реального времени.

Стоит отметить также:

  • возможность автономной работы;
  • отменный сенсорный дисплей;
  • эффективное использование при низкой температуре;
  • возможность подсоединения к компьютеру для конфигурирования и сброса показателей.

Для отслеживания температуры в комнате уместно использовать вайфай-розетку. К примеру, Simpal W230-C. Устройство позволит управлять электроприборами. Подача команд происходит через мобильное приложение. Существуют его версии для платформ Android, iOS.

Похож по предназначению термометр SAURES R-1. В комплект поставки, кроме датчика температуры, входит и контроллер. Система сможет проконтролировать работу газового котла. Она применима не только в жилых домах, но и в теплицах, и в других помещениях. Получать данные можно как в мобильном приложении, так и в стандартном компьютерном браузере.

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

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

  • Датчик — https://ru.aliexpress.com/item/1086124515.html (покупал за $2.44 за штуку)
  • Компьютер на базе ESP8266 со встроенным WiFi — https://ru.aliexpress.com/item/32958591238.html (покупал за $2.35 за штуку)

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

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

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

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

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

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

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

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

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

Как выбрать?

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

Стоит подумать и о дополнительном функционале. Наличие режима измерения влажности окажется полезным дополнением для любых повседневных задач.

Специалисты советуют обратить внимание и на следующие нюансы:

  • массу изделия;
  • его величину;
  • форм-фактор;
  • сочетаемость со стилем интерьера;
  • удобство применения;
  • отзывы других потребителей;
  • способ электропитания;
  • частоту обмена информацией в системе.

Далее вас ждет обзор WI-FI термометра Automata.

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

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

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

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

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

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

Преимущества беспроводных дистанционных датчиков температуры

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

Вот некоторые его достоинства:

  • Радиодатчик температуры легко подключить даже там, где невозможно установить другие каналы связи и провести кабель для подключения  к электросети.
     
  • Удаленный датчик температуры может дистанционно сообщать пользователю информацию о климате в помещении, даже когда он находится далеко. Современный Wi-Fi датчик температуры использует для этих целей специальное мобильное приложение.
     
  • Высокая чувствительность сенсора и тонкая настройка параметров измерения температуры.
     
  • Wi-Fi датчики температуры, как правило, обладают высокой мобильностью. Благодаря малым габаритам их легко переносить с одного места на другое.
     
  • Разные варианты конфигурации прибора. Например, это может быть беспроводной термометр с внешним датчиком наружной температуры. Технология беспроводного Wi-Fi датчика температуры применима в самых разных вариантах.

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

Где еще используют это оборудование:

  • Беспроводной дистанционный (wifi) датчик температуры
  • Цифровой датчик температуры с сигналом
  • Электронный компактный датчик температуры

Резюме

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

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

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

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

7 октября 2019

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации