Облачный термометр за 10 минут и 300 рублей
Эту простейшую самоделку сможет повторить каждый, кто в состоянии соединить три провода. С помощью этой штуки можно дистанционно контролировать температуру, например, на даче.
Для работы термометра необходим Wi-Fi.
Температуру можно смотреть на сайте и в мобильном приложении сервиса Народный мониторинг narodmon.ru. Там же есть графики температуры за год и можно устанавливать пределы температуры, при выходе за которые сервис будет предупреждать push-сообщениями, СМС и письмами на почту.
Для сборки термометра понадобится микроконтроллер NodeMCU-CH340 за $2.65 и цифровой датчик температуры DS18B20 за $1.41. При желании можно добавить ещё цифровой индикатор TM1637 за $0.77. Ещё понадобится резистор 4.7К, провода, любая зарядка от телефона с разъёмом MicroUSB. В качестве корпуса удобно использовать электрическую распаечную коробку.
Скорее всего можно использовать и совсем малюсенький контроллер Wemos D1 Mini, но я не пробовал.
В базовом варианте достаточно припаять датчик температуры к контроллеру (красный провод к 3V, чёрный к GND, жёлтый к D4), между жёлтым и красным проводам датчика ставится резистор (на фото датчик припаян к D1, не обращайте внимания).
Это необязательно, но можно подключить экран. Термометр поддерживает четыре вида экранов (цветной TFT 240×320 точек, OLED 128×64 точки, ЖК двух- или четрырёхстрочный, семисегментный светодиодный). На мой взгляд лучше всего поставить самый дешёвый четырёхсимвольный индикатор. У индикатора четыре контакта, подключаем их к контроллеру (VCC к 3V, GND к G, DIO к TX, CLK к RX).
Я пробовал подключать к термометру OLED-экран, но цифры на нём малюсенькие и выводится много лишней информации, включая неотключаемый адрес сайта разработчика прошивки.
Этот термометр можно подключить к Народному мониторингу и сделать его публичным, если его датчик будет расположен на улице. Если же термометр расположен в помещении (например, на той же даче), сервис позволяет использовать его, как непубличный. Вот так отображаются данные с двух таких термометров на сайте (замечу, что бесплатно можно подключить к сервису лишь один термометр).
А так в приложении (разумеется, датчики можно переименовать).
Приложение присылает push-сообщения, если термометр перестаёт передавать показания, или начинает их передавать после большого перерыва.
Как вы уже наверное догадались, для того, чтобы превратить контроллер в облачный термометр в него нужно загрузить прошивку и настроить её. Но сделать это гораздо проще, чем многие из вас подумали. 🙂
Прошивку можно создать с помощью сервиса wifi-iot.com, а загрузить с помощью NodeMCU Flasher, но я упрощу вам задачу: вот в этом архиве два файла — флешер и готовая прошивка. Просто подключаете контроллер к компьютеру, запускаете флешер, выбираете файл led.bin (Config-шестерёнка), указываете виртуальный COM-порт, к которому подключился контроллер, и нажимаете «Flash».
Когда заливка прошивки завершится, отключите контроллер и подключите его снова (можно к компьютеру, можно к любой зарядке). Нажмите три раза кнопку Reset с паузой не менее полсекунды. Контроллер создаст временную точку доступа Wi-Fi под названием WiFi-IoT без пароля. Подключитесь к этой точке смартфоном, и нажмите «подключение к сети». Откроется веб-страница настройки термометра.
Можно всё настроить сразу, можно настроить только подключение к Wi-Fi и продолжить настройку на компьютере. Покажу, как настроить всё сразу на телефоне:
1. Нажимаем «Hardware», ставим галку «Enable DS18B20» и меняем его GPIO на «2». Нажимаем «Set». Нажимаем «Main».
2. Заходим в «1-Wire», там «Clear & Scan List». Должен появиться адрес датчика. Снова «Main».
3. Если подключили экран, заходим в «7SEGM», ставим галку «Enable», вводим в поле «GPIO Clk» 3, в «GPIO Data» 1. Нажимаем верхний «Set». Пункт «1» меняем на DS18B20 1, нажимаем нижний «Set». Жмём «Main».
4. Заходим в «Servers», ставим там галку «Enable Narodmon.ru», нажимаем «set». Записываем ID термометра. Нажимаем «Main».
5. Видим в главном меню, что появилась температура.
6. Нажимаем «Main». В поле «AP name» вводим имя домашней точки доступа Wi-Fi (поддерживается только Wi-Fi 2.4 Ghz), в поле «AP Pass» вводим пароль от Wi-Fi. Жмём третью кнопку Set, которая сразу под введённым паролем.
Отключаем контроллер от питания и включаем снова. Теперь он подключится к домашнему Wi-Fi. Можно зайти в его веб-интерфейс из браузера по адресу, который можно посмотреть в веб-интерфейсе домашнего роутера или с помощью повторного подключения к временной точке доступа контроллера: ещё раз три раза нажимаем на контроллере RST, снова подключаемся к нему телефоном, заходим в «Main» и видим внизу адрес. В данном случае 192.168.1.212.
Регистрируемся на Народном мониторинге: https://narodmon.ru/?invite=ammo1 (ссылка реферальная, но даёт мне не деньги, а возможность подключить больше датчиков и дольше хранить данные).
Термометр посылает данные каждые 5 минут, поэтому если 5 минут ещё не прошло с момента настройки, надо немного подождать или вручную зайти в веб-интерфейс датчика и отправить данные в разделе «Servers».
На Народном мониторинге заходим в «Профиль — Мои датчики».
Нажимаем «Добавить» и вводим ID нашего термометра (его мы сохранили на этапе 4).
Если моё объяснение показалось вам сложным, вот тут есть очень подробная пошаговая инструкция.
На самом деле всё очень просто и эту самоделку действительно можно сделать и настроить за десять минут. Что касается цен, то конечно не может не впечатлять то, насколько это всё дёшево.
© 2020, Алексей Надёжин