Термометр с подключением к интернету через wifi
Эта штука не только показывает температуру и влажность на своём экране, но и позволяет контролировать эти параметры, а также их изменение из любой точки мира.
Термогигрометр стоит около 1000 рублей . Его можно поставить на стол или повесить на стену, питается он от трёх батареек AA.
Показания достаточно точные (расхождение влажности 3% это практически идеальный результат).
Производитель утверждает, что на одном комплекте батареек устройство может работать до двух лет. Учитывая "прожорливость" Wi-Fi это звучит удивительно, но всё просто: энергия экономится хитрым образом. Wi-Fi-соединение не держится постоянно, а включается только для передачи данных, причём это может происходить довольно редко. Раз в час термогигрометр проверяет, есть ли существенные изменения температуры и влажности и только если они есть, передаёт обновлённые данные. Если устройство стоит в помещении с постоянной температурой и влажностью, оно вообще не будет включать Wi-Fi и передавать данные, пока температура и влажность не изменятся.
Термогигрометр работает на самой популярной китайской платформе Tuya (Smartlife), статистические данные хранятся в облаке.
В приложении отображаются последние переданные значения температуры и влажности, кроме того можно посмотреть изменения параметров за день, месяц, год. На каждой точке графиков видно, в какое время передавались данные. Можно посмотреть уровень заряда батареек.
Есть возможность создавать сценарии с использованием данных прибора, но важно понимать, что это не подходит для быстротекущих процессов (например, можно включить отопление, если температура опустилась ниже 10 градусов, и отключить, если стало больше 20, но нельзя включать-выключать отопление для точного поддержания температуры).
У этого устройства множество отзывов на Aliexpress и половина из них негативные - люди просто не понимают, как оно работает. Некоторые пишут, что батарейки садятся за три недели (так и будет, если настроить Wi-FI, а потом выключить роутер - устройство будет непрерывно искать сеть). Многие пишут, что после первой передачи данных устройство отключается от Wi-Fi и не понимают, что так и должно быть. Многие пишут, что данные не передаются продолжительное время и не понимают, что так и должно быть, если температура и влажность почти не меняются. Кто-то пишет, что устройство не пригодно для автоматизации, а оно вполне пригодно, если понимать принципы его работы.
Особенно приглянулись:
ESP-01 — удобен для прототипирования (есть разъем под макетку), но выведен всего 1 GPIO;
ESP-03 — много выводов, плюс керамическая антенна;
ESP-07 — то же самое что и ESP-03 + экран и разъем под внешнюю антенну.
DS18B20
Как вариант, можно купить уже с проводом и в герметичном корпусе.
Питание 3.3В
Необходим источник питания как минимум на 200мА.
USB-UART
Для прошивки и отладки. Я использовал преобразователь на основе CP2102
Подключение
Подключаем питание на ESP8266. На ногу CH_PD так же подаем плюс.
Внимание! У кого модули не ESP-01, необходимо подать GPIO15 — GND; GPIO2 -3.3V. У ESP-01 это уже сделано. RX и TX подключаем к USB-UART преобразователю для прошивки и отладки кода:
Подключаем DS18B20 к ESP8266. Если смотреть на маркировку: левая — земля, средняя — сигнал (GPIO12 на ESP-03), если у вас ESP-01, подключайте к GPIO0, правая — питание(3.3V). Между питанием и сигнальной линией желательно подключить резистор 4.7 кОм (у меня работает и с 10 кОм):
Прошивка NodeMCU
NodeMCU — это прошивка, позволяющая запускать Lua скрипты на ESP8266. Качаем последний NodeMCU Flasher и запускаем его.
Подключаем GPIO0 на землю. Выбираем нужный COM порт и скорость 74880 или 115200 (как я понимаю, у некоторых версий ESP8266 бутлоадер работает на 74880). Нажимаем Flash и передергиваем питание на ESP8266. Если прошивка не запускается, проверяем корректность подключения RX,TX, запустив PuTTY на скорости 74880. В момент подачи питания в консоль должна валится строка вроде "ets Jan 8 2013,rst cause:1, boot mode:(1,0)". После корректной прошивки отключаем GPIO0 от земли:
Заливка Lua скриптов и запуск
Скачиваем и запускаем LuaLoader. Выбираем COM-порт и скорость 9600, если нет соединения — пробуем передернуть питание у модуля ESP8266. Проверяем соединение, нажав на кнопку ChipID. В консоль должен вывестись идентификатор чипа.
Заливаем нужные файлы (кнопка UploadFile):
Планы
Это первый опыт работы с ESP8266. В планах попробовать следующее:
1. Найти альтернативу thingspeak. Графики хочется двигать и масштабировать. Может, кто-то знает аналоги?
2. Датчик влажности (возможно, DHT22). Вроде уже есть в стандартных библиотеках.
3. Датчик CO2 на основе датчика K-30.
4. Управляемый рассвет без дополнительного контроллера, управление с ESP8266. Вдохновила публикация «Искусственный рассвет».
Эту простейшую самоделку сможет повторить каждый, кто в состоянии соединить три провода. С помощью этой штуки можно дистанционно контролировать температуру, например, на даче.
Ещё понадобится резистор 4.7К, провода, любая зарядка от телефона с разъёмом MicroUSB. В качестве корпуса удобно использовать электрическую распаечную коробку.
Скорее всего можно использовать и совсем малюсенький контроллер Wemos D1 Mini, но я не пробовал.
В базовом варианте достаточно припаять датчик температуры к контроллеру (красный провод к 3V, чёрный к GND, жёлтый к D4), между жёлтым и красным проводам датчика ставится резистор (на фото датчик припаян к D1, не обращайте внимания).
Это необязательно, но можно подключить экран. Термометр поддерживает четыре вида экранов (цветной TFT 240x320 точек, OLED 128x64 точки, ЖК двух- или четрырёхстрочный, семисегментный светодиодный). На мой взгляд лучше всего поставить самый дешёвый четырёхсимвольный индикатор. У индикатора четыре контакта, подключаем их к контроллеру (VCC к 3V, GND к G, DIO к TX, CLK к RX).
Я пробовал подключать к термометру OLED-экран, но цифры на нём малюсенькие и выводится много лишней информации, включая неотключаемый адрес сайта разработчика прошивки.
Этот термометр можно подключить к Народному мониторингу и сделать его публичным, если его датчик будет расположен на улице. Если же термометр расположен в помещении (например, на той же даче), сервис позволяет использовать его, как непубличный. Вот так отображаются данные с двух таких термометров на сайте (замечу, что бесплатно можно подключить к сервису лишь один термометр).
А так в приложении (разумеется, датчики можно переименовать).
Как вы уже наверное догадались, для того, чтобы превратить контроллер в облачный термометр в него нужно загрузить прошивку и настроить её. Но сделать это гораздо проще, чем многие из вас подумали. :)
Когда заливка прошивки завершится, отключите контроллер и подключите его снова (можно к компьютеру, можно к любой зарядке). Нажмите три раза кнопку 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».
Отключаем контроллер от питания и включаем снова. Теперь он подключится к домашнему Wi-Fi. Можно зайти в его веб-интерфейс из браузера по адресу, который можно посмотреть в веб-интерфейсе домашнего роутера или с помощью повторного подключения к временной точке доступа контроллера: ещё раз три раза нажимаем на контроллере RST, снова подключаемся к нему телефоном, заходим в «Main» и видим внизу адрес. В данном случае 192.168.1.212.
На Народном мониторинге заходим в «Профиль — Мои датчики».
Нажимаем «Добавить» и вводим ID нашего термометра (его мы сохранили на этапе 4).
На самом деле всё очень просто и эту самоделку действительно можно сделать и настроить за десять минут. Что касается цен, то конечно не может не впечатлять то, насколько это всё дёшево.
Все питается от пяти вольт, то-есть от любой USB зарядки. При соответствующей настройке WiFi роутера градусник доступен в браузере как из домашней сети, так и из Интернет.
Потребуется сама платка NodeMCU
Датчик температуры DS18B20
Резистор 4.7 кОм
Крафт
1.4K постов 12.1K подписчика
Правила сообщества
Могли бы быть здесь, но пока не написаны (
Когда проще создать такую приблуду, чем подойти к окну.Что за шрифт отображает температуру?
Зачем тут резистор на 4.5ком?
Можно к этой плате припаять простенький дисплей для показа температуры?
Понять не могу, почему люди собирают конечное устройство на отладочной плате? Это же дорого что писец. Обычно достаточно отладить плату, собрать standalone схему на чипе и не париться :)
А можешь мне такой же сделать?)
@kitsel обновите пожалуйста ссылку на скетч
Ссылка со скетчем больше не работает, будь другом, подскажи где ещё можно взять этот скетч?
@kitsel музыку подскажешь из видео)? Забыл название
Простите за оффтоп. Случилось следующее горе: по незнанию питал 4.7 вольтами 3в вход. В итоге перестал работать. Но светодиодом светит и прошивается. Что могло сгореть?
@kitsel Есть пару вопросов: Какая прошивка должна быть у ESP?
Монитор портов что то не отвечает, поэтому не понятно, что не работает и почему. После загрузки скетча светодиод синий молчит..
@alexgyver помоги пожалуйста восстановить скетч по инструкции ТС. А то оригинальный автор этой темы куда то пропал :(
Все комплектующие по инструкции купил, а доделать не могу из-за метрвой ссылки на скетч
так он же вроде страницу сам апдейтит. это разве норм?
а есть такое тока сборе подключ? повесил подключился и смотришь?
Как вовремя, сам на днях искал что либо подобное!)
толком то еще не разбирался в этом, руки не доходят пока, но как восстановлю отопление,займусь слежением за температурой дома, поскольку не часто бываю там( но хочу знать, в каком состоянии.
Вопрос следующий, как осуществить автономное питание и информирование без использования компа и прочего?
Вываливается с ошибкой при компиляции
Написал типа умного дома, который работает через сервак.
@kitsel, ссылку в камментак надо нам.
Увеличение количества пинов NodeMCU с помощью сдвигового регистра
Так как у NodeMCU не так и много пинов для подключения периферии, часто возникает нехватка pin. Поэтому такую замечательную отладочную плату откладываем на полку и ищем другие железки для реализации проекта.
Но в некоторых случаях можно расширить количество пинов с помощью сдвигового регистра и реализовать проект на NodeMCU.
Все исходные материалы к уроку можно найти на сайте>>
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
Термометр-котик
Давно тешил себя мыслью найти термометр, данные с которого будут доступны в веб-панели.
Вопрос стал еще более актуальным после удачной покупки дешевого Б/у кондиционера и желанием прикрутить к нему самопальный климат-контроль (управление любыми устройствами дома через интернет давно налажено)
Проблема заключалась в том, что цена на готовые устройства неприятно кусается, а те, что в обиходе (вроде решений от Xiaomi) не позволяют "просто так" забрать данные каким-либо открытым протоколом
Вдохновившись этой статьей понял, что пора начинать работать с Arduino.
Прошивка из статьи у меня работать почему-то не захотела, решил попробовать написать что-то своё.
Купил всё что надо на одном известном красненьком китайском сайте и достал с полки паяльник.
Спаял, работает! Однако, остро встал вопрос того, куда бы всё это дело спрятать. Распаечная коробка - громоздко и некрасиво, засунуть в спичечный коробок или пачку из под сигарет можно, но тоже как-то неэстетично. И вот, прогуливаясь по магазину фиксированных цен я увидел его. Котик-ночник из ПВХ, за 150 рублей. Не так компактно, зато красиво.
Вот так выглядит криво пропаенная плата
Да, можно было купить NodeMCU с уже готовыми "рогами" и припаяться к ним, но они торчат и мешают, а мне всё это дел надо уложить в корпус котика
Отрезаем котику ненужные детали в виде светодиодного модуля ночника с батарейками и днища
Аккуратно впихиваем плату и датчик внутрь
Выводим коту на голову антенну для связи с пришельцами (на самом деле это корпус датчика)
Делаем отверстие для ввода кабеля питания, соединяем всё между собой, приделываем днище на место, заливаем щели клеем и вуаля! Термометр-котик весьма сомнительного вида готов!
Теперь данные о температуре можно легко посмотреть через импровизированную веб-страничку
В моем случае - еще и сбор данных в Zabbix (система мониторинга) с отрисовкой графиков
На всё про всё потрачено часов 10 (из них 8 на разработку и 2 на сборку-отладку)
Добавлю ссылку на github - там есть исходные коды для платы (есть еще вариация с датчиком DHT11/22, который менее точен, но поддерживает еще и влажность), шаблоны для заббикса и еще немного полезной фигни.
Апгрейд погодной станции на ESP8266 + WiFi-IoT - выводим на дисплей "домашнего" модуля данные датчиков с "уличного" модуля
Кому лень читать "мнОого букОв" - в самом низу поста есть его видеоверсия ;-)
Первый этап.
hostname:ESP00903A69;bmet:-13.0;bmeh:48.8;bmep:773.62;dsw1:-14.43;bh:1260;
где нумерация начинается от hostname:ESP00903A69 - первая метрика;
bmet:-13.0 – температура с датчика BME280 – вторая метрика;
bmeh:48.8 – влажность с датчика BME280 – третья метрика;
bmep:773.62 – давление с датчика BME280 – четвертая метрика;
dsw1:-14.43 – температура с датчика DS18B20 – пятая метрика;
bh:1260 – датчик освещённости – шестая метрика;
Второй этап.
Для удалённого доступа вне локальной сети Вам нужно будет указать статический адрес вашего маршрутизатора, на котором при необходимости переназначить и пробросить порт, который указываем здесь.Далее указываем метрики нужных нам датчиков с "Уличного" модуля. (см. Первый этап)
Нажимаем "Set" и "Main" - переходим на главный экран, где через время опроса второго модуля равного 60 секунд появятся параметры "Уличного" модуля.
Теперь Вы их можете вывести их на дисплей ТМ1637 перейдя во вкладку "7SEGM", если собирали "Домашний" модуль по моему предыдущему посту:
Или через "Конструктор строк", используя топик _VSyx_ где "у" и "х" это параметры виртуального сенсора, если вы собрали "Домашний" модуль на базе дисплея LCD1602 по моему этому посту (видео).
Для этого переходим во вкладку "Designer_lines" и указываем нужный текс и параметр виртуального сенсора. Пример:
Читайте также: