Кому лень читать «мнОого букОв» — в самом низу поста есть его видеоверсия 😉
В одной из своих предыдущих статей я рассмотрел простой, удобный и бесплатный способ удаленного мониторинга температуры дома или на улице на базе модуля ESP8266, датчика температуры DS18B20 конструктора прошивок WiFi-IoT и сервиса «Народный мониторинг». В следующей статье рассказал как подключить дополнительный датчик температуры, давления и влажности — BME280 и показал, как выводить данные с датчиков на дисплей LСD1602….
Простая домашняя метеостанция с дисплеем TM1637
Сегодня соберём более компактную погодную станцию на тех же элементах, но в качестве дисплея будем использовать маленький светодиодный TM1637, на который будут поочерёдно выводиться три любых показания с датчиков. Например время, температура на улице и температура в квартире. Так же подключим станцию к «Народному мониторингу» для возможности смотреть погоду удалённо.
Для этого проекта нам понадобятся следующие комплектующие (я покупал их на AliExpress):
1) Плата NodeMCU V3 (ESP8266) — удобна тем, что подключается с помощью micro USB кабеля и ей не нужны никакие UART конвертеры — в ней он сразу встроен на основе китайского чипа CH340;
2) Дисплей TM1637;
3) Датчик температуры DS18B20 (герметичный для размещения на улице);
4) Датчик температуры, давления и влажности BME280 (будет показывать параметры в помещении). Если вам не интересно атмосферное давление, но интересна влажность в помещении, то лучше с этим справится датчик температуры и влажности SHT21, ну а если влажность тоже не интересна, а нужна только температура, то можно обойтись двумя (можно подключить до 10) датчиками DS18B20.
5) Провода Dupont для соединения датчика с платой;
6) Кабель USB — micro USB для прошивки модуля;
7) Любой подходящий по размерам корпус на ваш вкус и цвет, можно в принципе и обойтись и без него сделав «навесной монтаж»;
Себестоимость комплектующих в районе 8-10$ (ESP8266~3.86$, TM1637~0.89$, DS18B20~1.25-1.75$, BME280~2.80$ или SHT31~3.89$)
Первый этап.
Регистрируемся на сайте wifi-iot.com, где мы создадим прошивку в несколько кликов. После регистрации входим на сайт в свой профиль, следуем по пути «ESP» — «ESP8266».
Выбираем новый профиль и вводим для него имя.
— «Сенсоры» ставим галочку «1-wire DS18B20»;
— «Сервисы» ставим галочку «narodmon.ru»;
— «Системные» ставим галочку «Время и NTP»;
— «Дисплеи» ставим галочку «TM1637»;
Этот набор имеет бесплатный функционал.
Если Вы планируете добавить датчики температуры и другие, хотите «откалибровать» (скорректировать показания) датчиков под свой эталон, обновить прошивку через интернет и использовать все возможности сайта, то приобретите в личном кабинете лицензионный ключ, который стоит 110 рублей на один модуль ESP8266.
Затем поставьте дополнительные галочки:
— в «Сенсорах» на датчике BME280 и/или SHT21/SI7021, в зависимости от того, какой будете использовать и «Коррекция датчиков» (+ галочку на DS18B20, нажав на шестеренку)
— в «Системных» на «Обновление ОТА» и «Настройки по умолчанию», где нажимаем шестерёнку и вводим «Имя» и «Пароль» своей Wi-Fi точки доступа, здесь же можете указать динамический или статический IP адрес модуля + IP шлюз. Шлюз обычно имеет адрес 192.168.1.1 или 192.168.0.1 – гуглите инструкцию к своему роутеру/маршрутизатору и смотрите в его настройках. Обратите внимание, что цифры до третьей точки IP адреса и шлюза должны быть одинаковы, и только последнюю у IP адреса вы присваиваете самостоятельно.
Либо вы можете пойти другим путём используя Captive Portal для подключения к модулю и уже в нём настроить подключение к сети Wi-Fi. Этот способ подробно описан в моём первом посте на эту тематику.
Далее, в самом низу нажимаем «Сохранить изменения», затем «Скомпилировать».
Я скачиваю одним файлом (0х00000). Запоминаем путь, куда скачали файл.
Примечание: в некоторых случаях рекомендовано создать в корне диска (С:) папку с названием английскими символами, например «ESP8266» и поместить скачанный файл туда, вместе с программатором, который скачаем следующим этапом.
Второй этап.
Подключаем через USB-кабель плату NodeMCU к компьютеру.
Правой клавишей нажимаем на значок «Компьютер» — «Управление» — «Диспетчер устройств». Там в разделе «Порты COM и LPT» (раскрываем список нажатием на треугольник слева) у вас должно появиться устройство «USB-SERIAL CH340», как на фото (если не появилось — нужно скачать и вручную установить драйвер для CH340). Запоминаем номер порта — в моём случае — (COM4).
Скачиваем с ГитХаба программатор NodeMCU Flasher по этой ссылке.
Распаковываем архив в папку, созданную на диске (С:) (см. Первый этап)
В зависимости от разрядности вашей системы (посмотреть можно нажав правой клавишей мыши «Компьютер» — «Свойства»)
в папке Win32/Release (32-разрядная ОС) или Win64/Release (64-разрядная ОС) находим и запускаем файл ESP8266Flasher.exe
После запуска на вкладке «Advansed» сверяем параметры со скриншотом:
Во вкладке «Config» выбираем, нажав на шестерёнку нашу ранее сохраненную прошивку на диске (С:) и ставим крестик (если не стоит) слева.
Перед первой прошивкой рекомендуется залить в модуль blank по адресу 0х00000, особенно, если в модуле до этого использовалась какая-либо другая прошивка. Подробнее в документации на wifi-iot.com. Я прошиваю сразу, без «чистки бланком», пока проблем не было.
Во вкладке «Operation» выбираем COM Port, который мы запомнили выше в «Диспетчере устройств» и нажимаем кнопку «Flash(F)». По завершении прошивки появится галочка в зеленом кружочке в левом нижнем углу, как на скриншоте:
После прошивки и подключения питания к плате NodeMCU нажимаем однократно кнопку «RST» (ресет) на плате модуля.
Третий этап.
Подключаем датчики и дисплей согласно схеме.
Вы можете использовать другие GPIO для подключения, но тогда вам нужно зафиксировать их для себя, чтобы указать в настройках. На фото выше приведена «распиновка» на этот случай.
Четвёртый этап.
Подключаем питание к плате NodeMCU и заходим в web-интерфейс модуля, для этого вбиваем указанный в прошивке IP адрес модуля.
— Первым делом нажав «Get Pro mode». Активируйте свою лицензию, купленную на сайте wifi-iot.com
— Жмём «Set» и «Main» — переходим в главное меню;
— Переходим во вкладку «Main»;
— Здесь в окошке «GMT zone» устанавливаем свой часовой пояс;
— Возвращаемся в главное меню «Main»;
— Переходим во вкладку «Hardware»;
— Ставим галочку «EnableDS18B20»;
— Указываем GPIO к которому подключен наш датчик температуры, у меня 14;
— Ставим галочку «Enable BME280» или «SHT21» (в зависимости от того, какой датчик установлен);
— «Interval sensors read» — время опроса датчика указываем любое в секундах, я ставлю 9 секунд с учётом дальнейшей настройки дисплея;
— Жмём «Set»;
— Ниже указываем I2C GPIO датчика BME280 или SHT21, у меня GPIO SDA (4) GPIO SCL (5)
— Жмём «Set» и «Main» — переходим в главное меню.
— Переходим во вкладку «1-wire». Нажимаем «Clear & Scan list».
— После того, как датчик найден, жмем «Main» — переходим в главное меню и наблюдаем показания датчиков;
— Если хотите скорректировать показания датчика температуры по своему эталону (при наличии) во вкладке «Correction». вводите правки со знаком +/ –, где 10 — это 1 градус.
Самый простой и доступный эталон температуры– это температура человеческого тела )))
— Далее переходим во вкладку настройки дисплея «7SEGM»;
— Ставим галочку «Enable TM1637»;
— Устанавливаем яркость дисплея от 0 до 7;
— Жмём «Set»
— Ниже выбираем параметры, которые будут циклично отображаться на дисплее. У меня это время, температура датчика на улице и температура датчика дома. Комфортное время цикла для меня 4-3-2 секунды.
— Жмём «Set» и «Main» — переходим в главное меню. На дисплее TM1637 у вас должны появиться указанные параметры с заданной цикличностью.
Если вы желаете удалённо через интернет мониторить параметры датчиков, то переходим во вкладку «Servers». Ставим галочку рядом с «Enable Narodmon.ru send». Указываем «Period» 5 минут (НЕ МЕНЕЕ!!!, если указать меньше — ваш модуль «забанят» на «Народном мониторинге»).
Копируем ваш ID в блокнот, нажимаем «SET» и «SEND NOW». После появления надписи «Server Reply:OK» ваши показания были успешно переданы на «Народный мониторинг».
Настройки на сайте «Народный мониторинг» я описывал в своём первом посте на эту тематику: Простая погодная станция на ESP8266 + DS18B20 (термометр). Конструктор WiFi-IoT и отправка данных на Народный мониторинг.
— Жмём «Main» — переходим в главное меню.
Если это ваш пилотный проект, и Вы захотите изменить прошивку добавив какие-либо датчики или сервисы, то сможете это сделать легко, обновив прошивку через интернет. Для этого вносите изменения своей прошивки на сайте wifi-iot.com нажимаем «Сохранить изменения», затем «Скомпилировать». Далее в веб интерфейсе модуля переходим во вкладку «Firmware_update» и здесь жмём «Fast OTA !»
На этом, но настройке модуля погодной станции у меня в принципе всё, остальное это дело вашей фантазии и желания экспериментировать…. 😉
Из особенностей, в заключении хочу добавить, что данная схемотехника позволяет питать станцию, как непосредственно от USB кабеля, подключенного к модулю, так и через кабель для подключения датчика температуры DS18B20, т.к. здесь у нас общая «земля» и «пин 5 вольт» соединён на плате на прямую с USB.
В схемотехнике так же указан резистор 4,7 кОм, без него датчик температуры тоже работает, но рекомендовано его всё же поставить, т.к. его назначение – повысить управляющий сигнал для однопроводной шины, без него питание идёт по паразитной составляющей и датчик может работать некорректно или вовсе выйти из строя. По даташиту датчик температуры DS18B20 работает в диапазоне напряжений от 3 до 5.5 вольт, выбранное мной питание 5 вольт позволяет применять достаточно длинный провод до датчика на улице, не переживая за падение напряжения до критически низкой отметки…
Видеоверсия:
Компоненты и модули для Умного Дома.
- Ссылки на модули ESP8266 & ESP32
- Ссылки на Датчики и Сенсоры для Умного Дома
- Ссылки на Дисплеи TFT, TM, LCD, OLED, LED
- Ссылки на Реле, Драйверы и Контроллеры
- Ссылки на Радиомодули 433, WiFi, LoRA, GSM, GPS…
- Ссылки на Контроллеры Arduino
- Ссылки на Платы расширений, Модули, Шилды
- Ссылки на Макетные платы и Программаторы
- Ссылки на Кабели, Провода, Переходники
- Ссылки на Источники питания