Погодная станция на ESP8266 и DS18B20 за 30 минут и без программирования!
Хочу поделиться с вами простым, удобным и бесплатным (для одного датчика DS18B20) способом удаленного мониторинга температуры за окном, дома или в любом другом месте. Пугаться незнакомых слов в заголовке (если такие есть) не стоит — программировать нам не придётся! Нужно только следовать по инструкции ниже и (при наличии компонентов) и «удалённый термометр» через 30 минут будет у вас в кармане 😉
Собрав простую конструкцию, описанную в этом посте Вы сможете узнать температуру на Вашей улице онлайн (и сохраненную за день, неделю, месяц, год) в любой точке Земли, где есть интернет и смартфон (компьютер, планшет…) с помощью проекта «Народный мониторинг».
Народный мониторинг — это основанный в 2011 году краудфандинговый геоинформационный проект по отображению на карте мира и контролю (на ПК, смартфонах и других гаджетах) показаний датчиков своих участников (температуры, влажности, атм.давления, скорости и направления ветра, радиации, энергопотребления и любых других величин), а также частных и городских веб-камер для публичного или приватного просмотра.
Для проекта «Погодная станция на ESP8266» нам понадобятся:
1) Плата NodeMCU V3 (ESP8266) — удобна тем, что подключается с помощью micro USB кабеля и ей не нужны никакие UART конвертер — в ней он сразу встроен на основе китайского чипа CH340;
2) Датчик температуры DS18B20 (есть влагонепроницаемые, наиболее подходящие для улицы, но к нему нужно будет приобрести резистор на 4,7 кОм);
3) Провода для соединения датчика с платой;
4) Кабель USB — micro USB для прошивки модуля;
Все это, кроме USB — кабеля, я купил на Aliexpress (NodeMCU V3 ~3$ и DS18B20 ~1$).
Первый этап.
Регистрируемся на сайте wifi-iot.com, где мы создадим прошивку в несколько кликов. После регистрации входим на сайт в свой профиль, следуем по пути «ESP» — «ESP8266».
Выбираем новый профиль и вводим для него имя.
В «Сенсоры» ставим галочку «1-wire DS18B20» в «Сервисы» ставим галочку «narodmon.ru» — это бесплатный функционал.
Если Вы планируете добавить датчики температуры и другие, хотите «откалибровать» (скорректировать показания) датчик под свой эталон, обновить прошивку через интернет и использовать все возможности сайта, то после приобретите в личном кабинете лицензионный ключ, который стоит 110 рублей на один модуль ESP8266. Затем поставьте в «Сенсорах» на «Коррекция датчиков» (+ галочку нажав на шестеренку на DS18B20), в «Системных» на «Обновление ОТА».
Если нет, то пропускаем написанное курсивом и пользуемся бесплатным фуекционалом.
Далее, в самом низу нажимаем «Сохранить изменения», затем «Скомпилировать».
Я скачиваю одним файлом (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, в эфире появится точка с именем «WiFi-ioT», к которой нужно подключится использую смартфон или ПК.
Если не появилась — переводим плату в режим «safe mode», замкнув между собой RX и TX и перезапустив модуль или нажать 3 раза подряд (с интервалом нажатия около секунды) кнопку RESET (RST) на ESP8266.
Подключаемся к модулю одним из способов:
1. Используя Captive Portal смартфон выведет уведомление о подключении, при нажатии на которое происходит автоматическое открытие главной страницы модуля.
2. После успешного коннекта заходим вручную по адресу 192.168.4.1 используя веб браузер и попадаем в web-интерфейс.
На вкладке «Main» необходимо вбить в поля «WiFi options»данные своей точки доступа (WiFi сети). Для подключения к роутеру выбираем режим «Statione mode». После нажатия «Set» ниже появится IP адрес, на который можно заходить внутри своей беспроводной сети. Вы можете указать свой и сделать его статическим, выбрав «Static IP» затем нажав «Set».
На этом прошивка и запуск модуля завершены.
Четвертый этап.
Подключаем датчик DS18B20 к модулю, как на фото («ground-ground» — «серый» провод (-), «vcc — 3v» — «красный» провод (+), «data -D4» — «желтый» провод — на вашей модели датчика выводы ground, vcc, data могут быть другие):
Если у вас «чистый» (не модульный, как у меня на фото) датчик или влагонепроницаемый, то его вы можете подключить используя резистор 4,7 кОм по схеме ниже:
Выход «Data» датчика температуры у нас подключается к «D4» — это GPIO-2 . Заходим в web-интерфейс модуля во вкладку «Hardware».
— Ставим галочку «EnableDS18B20»;
— Указываем GPIO к которому подключен наш датчик;
— «Interval sensors read» — время опроса датчика указываем любое в секундах;
— Жмём «Set» и «Main» — переходим в главное меню.
Переходим во вкладку «1-wire». Нажимаем Clear & Scan list.
После того, как датчик найден, жмем «Main» — переходим в главное меню и наблюдаем температуру датчика.
На скриншоте вы видите красным цветом указано, что модуль в режиме «Safe mode». Что бы из него выйти кратковременно нажимаем кнопку RESET (RST).
Если хотите скорректировать показания датчика температуры по своему эталону (при наличии) — активируйте свою лицензию купленную на сайте wifi-iot.com нажав «Get Pro mode»и вводите правки со знаком + или — во вкладке «Correction». 10 — это 1 градус.
Пятый этап. (завершающий)
Переходим во вкладку «Servers». Ставим галочку рядом с «Enable Narodmon.ru send». Указываем «Period» 5 минут (НЕ МЕНЕЕ!!!, если указать меньше — ваш модуль «забанят» на «Народном мониторинге»). Копируем ваш ID в блокнот, нажимаем «SET» и «SEND NOW». После появления надписи «Server Reply:OK» ваши показания были успешно переданы на «Народный мониторинг».
Переходим на сайт «Народного мониторинга» narodmon.ru. Регистрируемся, если ещё не зарегистрированы. Входим в свой «Профиль» — «Мои Датчики» — «Добавить».
Вводим ID СВОЕГО модуля сохраненный в блокнот на предыдущем этапе.
Ф С Ё ! Теперь можно разместить датчик температуры за окном, указать его на карте в настройках доступа сделать публичным и произвести прочие настройки на сайте для вашего удобства.
График колебаний температуры будет сохраняться в течении года, что очень удобно. Теперь из любой точки Мира вы можете зайти на сайт narodmon.ru, открыть карту и посмотреть температуру ОНЛАЙН (Динамику за день, неделю, месяц, год).
Здесь можно посмотреть пример одного из моих погодных датчиков: https://narodmon.ru/6128
Все что написано в этом посте так же подробно и пошагово описал и показал на своём Ютуб-канале в этом видео:
Спасибо за внимание!
Компоненты и модули для Умного Дома.
- Ссылки на модули ESP8266 & ESP32
- Ссылки на Датчики и Сенсоры для Умного Дома
- Ссылки на Дисплеи TFT, TM, LCD, OLED, LED
- Ссылки на Реле, Драйверы и Контроллеры
- Ссылки на Радиомодули 433, WiFi, LoRA, GSM, GPS…
- Ссылки на Контроллеры Arduino
- Ссылки на Платы расширений, Модули, Шилды
- Ссылки на Макетные платы и Программаторы
- Ссылки на Кабели, Провода, Переходники
- Ссылки на Источники питания
Здравствуйте. А подключение нескольких (например шесть датчиков 18в20) производится каким образом? Параллельно или каждый на отдельный вход?