Домашняя метеостанция на esp8266 / Хабр
Привет ГТ!
С появлением esp8266 пару лет назад, у меня возникла мысль создать на базе этого контроллера что-нибудь полезное, что будет нужным в доме, и чем будет удобно пользоваться всем. Возможность подключения по wi-fi, небольшие габариты, достаточное количество контактов ввода-вывода, легкость программирования сделали возможным собирать на базе этой платы множество устройств, и одно из них — система мониторинга погоды.
Изначальные требования к системе:
- Удаленный просмотр измеряемых данных
- Возможность удаленного управления устройством
- Наличие дисплея для просмотра данных «прямо сейчас»
- Простота подключения и питания (питание от обычной USB-зарядки)
- Передача данных на домашний сервер для сбора статистики, просмотра графиков и т.п.
- Возможность увеличения количества подключенных сенсоров
- Возможность использования множества метеодатчиков одновременно
КДПВ:
Для начала решил отыскать существующие системы, которые можно было бы взять в качестве прототипа. Нашлась одна, подходящая по возможностям — wifi-iot.com, но она была отвергнута из-за закрытого кода и необходимости покупки лицензии для активации полного списка возможностей. Поэтому решил создать свой велосипед.
Для реализации надо было воплотить в жизнь железячную и программную части.
На Ебее были закуплены следующие компоненты:
- NodeMCU board — 350р.
- LCD TFT Display 320х240 на базе чипа ILI9340C — 370р.
- Датчик DHT22 — 130р.
- Датчик BMP180 — 115р.
- Макетная плата 5х7 см — 30р. (при покупке 5 штук)
- Плата с micro USB разъемом — 10р.
На местном рынке был куплен корпус — Gianta G403 за 70р.
Итого — 1000р на компоненты (цены на момент публикации, по курсу — 15 вечнозеленых).
Для программной части была выбрана элементарная связка PHP+MySQL, развернутая на домашнем сервере на базе малинки. Преимущество перед облачными сервисами — при пропаже интернета система продолжает успешно работать и не накрывается медным тазом. Минус — необходимость написать серверную часть системы для хранения и обработки данных, но это было интересно сделать и самому.
Для программирования была выбрана среда Arduino IDE, с подключенным модулем для разработки на esp8266. Как это сделать — подробно описано тут — github.com/esp8266/Arduino
Поначалу было желание попробовать писать все на lua, ипользуя прошивку nodemcu, но быстро отказался от этой идеи, т.к. во время заливки скетчей постоянно вываливались ошибки о недостатке памяти и т.п.
Для обмена данными между метеостанцией и малинкой был выбран формат данных JSON.
Схемы подключения сенсоров к модулю — были использованы стандартные, библиотеки можно найти здесь:
Так же понадобилась следующая библиотека — github.com/bblanchon/ArduinoJson
Помимо вышеназванных к системе можно подключить и настроить полученные данных со следующих сенсоров:
Сейчас жду посылку с датчиком CO2 на базе MH-Z19, чтобы мониторить наличие углекислого газа в воздухе. Как только придет — соберу модуль с ним, чтобы расширить перечень измеряемых параметров погоды в доме.
Итак, после получения всех посылок, множества итераций по отладке кода и сборок на макетке, пришло время собрать готовое устройство.
Схема устройства:
В корпусе дремелем было проделано отверстие для экрана:
После этого внутри был закреплен сам экран, бутерброд из платы с модулем, и датчики. Так же не была забыта кнопка сброса 🙂
В торцевых пластинах корпуса были проделаны отверстия для вентиляции сенсоров, и для разъема питания. После подключения — информация на экране:
В прошивке модуля реализовано удаленное управление — поднят веб-сервер, используя который можно произвести начальную настройку (указать используемую wifi-сеть, указать используемые датчики, настроить модуль реального времени, посмотреть данные с подключенных сенсоров, перезагрузить модуль). Когда писал странички, уделил внимание тому, что настройки может производиться с мобильного — поэтому Привет, адаптивный дизайн! 🙂
Никаких внешних зависимостей встроенные странички не имеют, все стили и скрипты — хранятся в памяти модулей.
Для просмотра списка подключенных модулей, удобного просмотра получаемых данных, просмотра графиков — был написан небольшой сайтик, развернутый на малинке.
Что планируется реализовать еще:
- Синхронизация времени по NTP
- Накопление данных в модуле в случае потери сети
- Реализация авторизации на сервере просмотра данных
- Привязка датчиков к опреденным пользователям
- Настройка данных, отображаемых на экране датчика
- Создание outdoor-версии датчика (буду рад советам, как это лучше сделать)
- Возможность управления реле
- Возможность получения данных с датчиков открытия окон-дверей (например герконов)
- Введение поправок к получаемым данным для учета внутрикорпусного размещения сенсоров
Исходный код проекта — доступен здесь: github.com/aproschenko-dev/MeteoEsp
Буду раз любой конструктивной критике и комментариям.
Update:
Для всех библиотек к модулям, подключаемых по 1-wire шине, требуется заменить инциализацию wire-протокола с Wire.begin() на Wire.begin(0, 2), т.к. стандартные пины заняты экраном.
Метеостанция на ESP8266 — Avislab
Метеостанция собрана на базе модуля ESP8266. Работает через WiFi, имеет web-интерфейс, дисплей и возможность отправлять данные в Интернет. Реализована возможность публиковать погодные графики и информационные блоки на собственном сайте или использовать службу thingsspeak.com. Все это можно сделать своими руками всего за один вечер из общедоступных модулей.
Возможности метеостанции
- Датчик BME280 позволяет измерять температуру, атмосферное давление и относительную влажность воздуха
- Накапливает данные за последние несколько дней, показывает данные в виде графиков на web-интерфейсе
- Дисплей для просмотра текущей температуры, давления и влажности
- Метеостанция подключается к домашнему WiFi. Просмотр данных на метеостанции возможен с любого персонального компьютера, или мобильного устройства, подключенного к домашней сети WiFi
- Метеостанция может публиковать данные в сети Интернет (направлять данные на собственный сайт или thingspeak.com)
- Web интерфейс для настройки метеостанции и просмотра погодных данных. Для настройки метеостанции, ради безопасности, используется собственная WiFi точка доступа
Необходимые компоненты
Схема метеостанции
Схема для ESP-12. Питание от специальной платы: Схема для ESP-12. Питание через USB шнур от платы модуля ESP12: Схема для модернизированного ESP-01 (4 Мб Flash):Программное обеспечение
Программное обеспечение разработано для Framework NodeMCU на языке программирования LUA. Код доступен в открытом виде. Скачать можно здесь: https://github.com/avislab/NodeMCUExamples/tree/master/WeatherStation Сначала нужно загрузить в ESP модуль Framework NodeMCU с нужными модулями. Скачать его можно здесь: https://github.com/avislab/NodeMCUExamples/tree/master/WeatherStation/firmware). Закачать можно с помощью ESP8266Flasher.exe или esptool Команда для загрузки с помощью esptool:
sudo python esptool.py --port COM10 write_flash 0x0 nodemcu-meteo.bin 0x3fc000 esp_init_data_default.bin
Затем скачать и закачать в файловую систему NodeMCU все файлы из этой директории:
https://github.com/avislab/NodeMCUExamples/tree/master/WeatherStation/esp-12-files
загрузить можно с помощью ESPlorer или nodemcu-uploader. Команда для загрузки с помощью nodemcu-uploader:
sudo python nodemcu-uploader.py --port COM10 upload *
После перезагрузки метеостанция готова к работе.
Примечание: Подробнее о программном обеспечении для работы с модулями ESP читайте здесь: ESP8266 NodeMCU Прошивка. Делаем WiFi розеткуНастройка метеостанции
После включения метеостанции выполняется пауза 10 секунд, после чего на дисплее должна появиться информация с текущими погодными данными. Модуль настраивает Wi-Fi точку с именем MeteostationОписание настроек
Wi-Fi Options
SSID — домашняя сеть Wi-Fi к которой метеостанция должна подключаться для коммуникации с внешним миром. Password — пароль домашней сети Wi-Fi.Own Wi-Fi AP
SSID — собственный Wi-Fi который метеостанция создает самостоятельно для обеспечения доступа к ее настроек. Password — пароль к собственной Wi-Fi. Примечание: * Wi-Fi для настройки включается после подачи питания и выключается через 5 минут. Считается, что 5 минут достаточно для того, чтобы сделать все необходимые настройки.Cron
Mask — маска планировщика задач. Задает период сохранения данных и передачи данных в сеть Интернет. По умолчанию это выполняется каждые 15 минут. Как настраивается маска Cron можно прочитать здесь: https://en.wikipedia.org/wiki/Cron#OverviewData storage
Filename — имя файла в котором хранится информация о погоде (при необходимости файл можно загрузить с метеостанции по ссылке вида: http://IP/filename, например, http://192.168.0.100/log.txt). Max File size — максимальный размер файла при достижении которого запускается процедура уменьшения его размера (удаляются старые данные). Store last lines when file reduce — Количество записей (строк) в файле, которую процедура уменьшения размера файла оставит. Остальные, более старые записи будут удалены.Send to Web
Send to thingsspeak.com
thingsspeak.com — служба которая позволяет (бесплатно, если данных немного) хранить и анализировать данные полученные с любых устройств или сервисов. Есть возможность построения графиков и многое другое. С момента, как я его начал использовать этот сервис немного расширил свой функционал. Описывать подробно не буду. Заходите и смотрите сами. Для того, чтобы Вы смогли пользоваться услугой thingsspeak.com нужно пройти процедуру регистрации. Server name — сервер thingshspeak.com на который отправляются данные. API Key — Write API Key который выдает thingsspeak.com. Без него служба не принимает данные. Enable / Disable — включает или выключает передачу данных на сайт thingshspeak.com.Как работает метеостанция
Старт
Сразу после старта выполняется скрипт init.lua Скрипт выполняет паузу продолжительностью 10 секунд (зачем это сделано читайте здесь) после чего запускает скрипт meteo_main.lua. Этот скрипт выполняет стартовые настройки. А именно инициализацию настроек, WiFi, шины I2C, датчика BME280, дисплея SSD1306, настраивает и запускает таймер опроса датчика, настраивает планировщик для сохранения и передачи данных в Интернет, запускает web-интерфейс, запускает синхронизацию времени через Интернет.Опросы датчика, работа дисплея
По таймеру раз в 10 секунд запускается скрипт для опроса датчика BME280_read.lua и скрипт для отображения данных на дисплее display_show.luaСохранение данных, формирование Json файлов для графиков, передача данных на сайт
Согласно настроек планировщика (по умолчанию один раз в 15 минут) запускается скрипт schedule.lua. Скрипт опрашивает датчик и сохраняет данные в файл — хранилище (по умолчанию — log.txt), отправляет данные в Интернет (если включено в настройках) и запускает формирование JSON файлов, содержащих данные для графиков. Примечание: сохранение данных и отправки в Интернет происходит только после синхронизации времени по протоколу NTP.Отправка данных на сайт. Настройки для отправки данных на сайт
Если Вы хотите, чтобы информация о погоде публиковалась на Вашем сайте, нужно настроить отправку данных на сайт. Прежде всего нужно закачать на сайт скрипт, который будет принимать данные. В директории https://github.com/avislab/NodeMCUExamples/tree/master/WeatherStation/website находится файл meteo.php, который реализует необходимый функционал. Прежде чем заливать скрипт на сайт откройте его и измените переменную $key. Ключ обязательно должен быть длиной 16 символов и состоять из букв и цифр. Такой же ключ нужно будет указать в настройках метеостанции. При необходимости измените другие настройки. Теперь можно закачать скрипт на сайт. После чего в настройках метеостанции в разделе Send to Web укажите путь к скрипту, ключ и включите передачу данных на сайт (Enable). Сохраните настройки метеостанции и перезагрузите ее. Данные будут отправляться на сайт с периодичностью согласно настроек Cron. По умолчанию скрипт meteo.php сохраняет данные на сайте в файл meteo.txt.Отображение данных на сайте
Пример отображения погодных данных находятся в файлах insex.html, weather.js, date.format.js. Погодные данные могут отображаться как в виде текстового информера, так и в виде графиков.Контейнер для датчика
На период испытаний датчик был выставлен в окно в полиэтиленовом пакетике :). Затем для него был сделан контейнер из подручных материалов. В крышку пластиковой банки вклеены магниты. Они нужны для закрепления контейнера на металлическом отливе за окном. В самой банке вырезанные вентиляционные отверстия. Для защиты от осадков вся эта конструкция накрывается пластиковым цилиндром немного большего диаметра. Таким образом, датчик защищен от осадков, прямых солнечных лучей и при этом не плохо вентилируется. Ссылка для загрузки необходимых файлов: https://github.com/avislab/NodeMCUExamples/tree/master/WeatherStation Эта простая метеостанция сделана как пример к статьям посвященных ESP8266 и NodeMCU. Все программы доступны в открытом виде. Вы можете скачать и модифицировать их по своему усмотрению. В этом примере продемонстрированы возможности ESP8266 и использованы различные модули и функции Framework NodeMCU. А именно работа с датчиком и дисплеем по шине I2C, WEB интерфейс построен с использованием TCP сервера, работа с настройками основанна на использовании файловой системы NodeMCU, работа с WiFi в режиме клиента и в режиме точки доступа, работа с таймерами, планировщиком задач Cron, протоколом синхронизации времени через Интернет NTP, реализована передача данных с помощью http клиента, и через TCP подключение с использованием модуля NET. Продемонстрированы начальные приемы построения Web приложений и методы коммуникации Ваших самодельных устройств с внешним миром через Интернет. Желаю успехов. UPD: 30.11.2017. Добавлена возможность отключения дисплея. Исправлены ошибки.Смотри также:
Коментарі:Александр говорить:
22.12.2017 21:45
Wi-FI Meteostation появляется, пытаюсь подключится, Wi-FI Meteostation исчезает. Прошивал программой nodemcu flasher master. Заливал файлы через ESPlorer. Периодически выскакивает ошибка при подключении .Can`t autodetect firmware, because proper answer not received (may be unknown firmware).PANIC: unprotected error in call to Lua API (BME280_read.lua:5: attempt to perform arithmetic on a nil value).
Vavan говорить:
05.01.2018 23:43
Сделал все по инструкции, все заработало. Спасибо за труд.
Одно но — на дисплее неправильно отображаются пиктограммы температуры, давления, и влажности. Вместо них — кракозябры. Как их изменить или убрать?
andre говорить:
09.01.2018 20:29
Проверьте залиты ли файлы t.MONO, h.MONO, p.MONOПопробуйте их перезалить. Отключить вывод картинок можно убрав строки
disp:drawXBM( 8, 0, 12, 22, xbm_data_t )
disp:drawXBM( 7, 24, 15, 22, xbm_data_h )
disp:drawXBM( 0, 48, 29, 22, xbm_data_p )
в файле display_show.lua
Если хотите сделать свои картинки, в этой статье читайте как работать с картинами: http://www.avislab.com/blog/esp8266-nodemcu-u8g_ru/
Дмитрий говорить:
12.01.2018 08:04
Здравствуйте! Большое спасибо за ваш труд! Собрал, все получилось, но… без дисплея. Я купил вместе с Nodemcu v3 к ней и плату расширения с питанием от 6 до 24 вольт(написано на плате сзади) и боюсь что нибудь испортить. Насколько я понял, просто необходимо вставить Nodemcu-ESP8266 в плату расширения и далее подводить питание 6 вольт только через круглый разъем на плате? Никаких перемычек не надо? С уважением, Дмитрий.
P.S. Ссылка на фото платы расширения https://cdn1.savepice.ru/uploads/2018/1/12/08c33f2d6457b8ec073d48441d35ecec-full.jpg
Дмитрий говорить:
12.01.2018 10:00
Здравствуйте. Уже разобрался. Но встает один вопрос. У меня дисплей 128х32, а не 64. Изображение из за этого расплющено. Как можно исправить данную проблему? С уважением, Дмитрий.
Denis говорить:
14.05.2020 08:35
Могли-бы дать исходный код?
andre говорить:
16.05.2020 08:09
В статье есть ссылка НА ВСЁ! И на firmware, и на файлы для esp-12 и файлы для esp-01 и файлы для сайта.
Дмитрий говорить:
28.09.2020 12:25
Делаю по инструкции, что-то не получается. Заливаю файлы nodemcu-meteo.bin и esp_init_data_default.bin через ESP8266Flasher (Файлы беру https://github.com/avislab/NodeMCUExamples/tree/master/WeatherStation/firmware). Первый по адресу 0х0000, второй — 0x3FC000. Флешку перепаял на 4Мб. У меня ESP8266-01. Модуль прошивается нормально. Потом запускаю ESPlorer и копирую файлы из директории https://github.com/avislab/NodeMCUExamples/tree/master/WeatherStation/esp-12-files, все кроме meteo_main.lua. Свой meteo_main.lua беру из директории https://github.com/avislab/NodeMCUExamples/tree/master/WeatherStation/esp-01-files. Файлы заливаются нормально. Точка поднимается, подключаюсь к ней, но зайти 192.168.4.1 для настроек не получается. Пинг рвется. Пишет PANIC: unprotected error in call to Lua API (meteo_main.lua:14: no i2c for D0) Хотя датчик BMP280 подключен. Как настроить?
Spliter говорить:
12.11.2020 06:29
Долго бился с esp-12f, пока выяснил, что все файлы нужно ESplorer-ом заливать за один раз через кнопку Upload. До этого пробовал заливать скрипты через Save to ESP. А вот на esp01 так и не запускается. Та же ошибка, что и у Дмитрия. (meteo_main.lua:14: no i2c for D0) Кто-нибудь запускал этот проект на esp01?
Mihail говорить:
15.02.2021 06:08
проект и описание очень качественное ,все заработало сразу без единой ошибки,можете повторять,рекомендую
Владимир R4FBL Артемьев говорить:
19.09.2021 07:50
Обьясните как все это загрузить, при загрузке флешером надо выбирать оба файла, или лить их по отдельности ? Просто при подключении эксплореом, он не видит прошивки. И поэтому нет подключения !
Метеостанция на ESP8266 и двух датчиках BME280 для двух точек измерения — Arduino
Всем привет, в этой статье поговорим об уже надоевшей всем теме — «Метеостанция». Каждый пытается сделать что-то свое, вот и я не стал исключением и попытался материализовать свои эротические фантазии на контроллере ESP8266. Тема задумывалась уже давно как некое обновление для предыдущего проекта этой тематики, но из-за своей неспешности переросла в нечто самостоятельное.При всей привлекательности микроконтроллера ESP8266 с его большим объемом памяти, железной поддержкой Wi-Fi и массой разных плюшек, он не лишен недостатков. Самый основной — ограниченное количество поддерживаемых одновременных TCP соединений равное 5. Если превысить этот лимит, то контроллер потеряет связь с окружающим миром, при этом watchdog будет думать, что все в порядке, а следовательно, даже не попытается нам помочь. Будем стараться это помнить!
Стоит начать с концепции
Доступ к данным метеостанции нужно получать без установки внешних приложений и под любой операционной системой. Для этих целей подойдет практически любой современный браузер. Меня всем устраивает Chrome.
Раз уж за основу взят HTTP протокол, стоит озаботиться экономией трафика и ограничением числа TCP соединений. Хорошим тоном будет передача всего необходимого для формирования страницы контента только при первом обращении, а все последующие операции, такие как отображение показаний с датчиков или настройку контроллера, производить через API. В этом нам поможет JQuery.
А вот, чтобы ослабить болевые ощущения от передачи файлов с SPI Flash в браузер, стоит предусмотреть систему кэширования, например, Etag. Это позволит отдавать тяжелый контент единожды, а при последующих загрузках страницы просто подтверждать его актуальность на уровне Web сервера микроконтроллера и кэш браузера вступит в игру, неимоверно уменьшив время загрузки страницы! «Вы были правы в одном, Мастер: переговоры были недолгими.» © Звездные войны. Эпизод 1
Из-за того, что метеостанция с датчиками и контроллером должна располагаться на улице, жизненно необходимо предусмотреть возможность обновлять прошивку ESP через Web интерфейс.
Аналогичным образом должны обновляться файлы Web сервера расположенные на SPI Flash. Этот и предыдущий пункт вкупе позволят обновлять функционал микроконтроллера из домашней сети или из интернета, если конечно в этом возникнет острая необходимость.
Чтобы никто посторонний не могу вмешаться в работу устройства или изменить файлы Web сервера, последний должен хотя бы как-то себя защищать. Пускать в панель управления только после авторизации, блокировать доступ при попытках брутфорса пароля. В конце концов, контроллер обязан самостоятельно генерировать ключи (salt) для авторизации, дабы сделать алгоритм непредсказуемым и исключить потенциальный взлом, в случае если злодей завладеет исходниками проекта. Понятно, что кому она там нужна, эта метеостанция, если её не завязывать с умным домом, если только из-за спортивного интереса, но как говориться “Береженого Бог бережет”.
Датчики стоит расположить по уму — в метеобудке, а вот контроллер в сухом и закрытом боксе. Объединить их между собой, как мне кажется, удобнее по I2C шине — минимум проводов, максимум удобства.
Практически на всех вариантах плат ESP-xx имеется штатный светодиод, можно воспользоваться им как для индикации режимов и состояния микроконтроллера, так и для вывода какой-либо промежуточной информации.
Что касаемо режимов работы ESP8266, как ни странно, но он должен находить домашнюю Wi-Fi сеть и подключаться к ней. Если вдруг звезды не были к нам благосклонны, и домашняя беспроводная сеть приказала долго жить, контроллер обязан перейти в режим точки доступа (AP) дабы к нему можно было подключиться с какого-либо устройства и перенастроить его на другую сеть. А вот пока последнее не произошло, ESP должен периодически сканировать эфир в поисках долгожданной домашней точки доступа и, если боги были к нам милосердны, и домашняя сеть появилась в эфире, незамедлительно переключиться в режим клиента (STA) и в пылу страсти воссоединиться с ней.
Ну и естественно, как же без отправки данных на внешние ресурсы, сейчас без этого не обходится ни одна уважающая себя кофеварка, не говоря уже о метеостанции. Думаю, что основным блюдом станет протокол MQTT, это уже облегчает возможность интеграции с умным домом, стулом или той же кофеваркой. Ну а на закуску добавим поддержку «ThingSpeak» и «Народного мониторинга». При желании можно нарастить функционал, благо памяти у микроконтроллера еще много. Как я себе это представляю
Учтите, что на видео, данные с датчиков, эмитируются самим микроконтроллером, это нужно для наглядности. В жизни метеорологическая обстановка намного спокойнее слава Богу.
Перейдем к физической сборки устройства
Как по мне, так самый оптимальный вариант, это воспользоваться отладочной платой NodeMCU V3 и базой для неё. Таким образом, мы получим отличный комплект с разведенной на его борту всей необходимой обвязкой и возможностью питать устройство от 5 до 24 Вольт.
Отладочная плата на базе, и смотрится хорошо, и удобства хоть отбавляй.
Заливаем прошивку, образ SPI Flash и подключаем четырьмя проводами датчики. Справится даже ребенок.
Ссылки:
Базовая плата для NodeMCU V3 с преобразователем питания 5-24V в 5V
Отладочная плата ESP8266 от NodeMCU Естественно никто не запрещает Вам развести свою плату. Если Вы это сделаете, скиньте нам свое творение, возможно мы перейдем на него. В идеале, все должно размещаться в метеобудке.
Датчики взятые за основу
Теперь настал момент озаботиться, где описанные выше ребята будут жить. В прошлый раз мы использовали для этих целей, найденную в подножном корме, электрическую распределительную коробку. Кроме дешевизны в этом решении нет ничего положительного.
В этот раз мы воспользуемся более серьезным вариантом – «Метеорологическая будка Стивенсона». Она способна защитить датчики от прямых воздействий окружающей среды, но при этом имеет открытую структуру со стенками в виде жалюзи. Удобно, красиво и самое главное – правильно!
Будка печатается на 3D принтере по эскизам опубликованным на Thingiverse неким kowomike, спасибо добрый человек! Архив с эскизами можно будет скачать в конце поста.
Фото готовой будки
Шпилька М8 крепится через зажимной хомут к мачте уличной антенны.
Примерка. Шпилька практически не укорачивалась, чтобы не закрывать будку параболической Wi-Fi антенной.
Хотя в моем случае все это сделано не правильно т.к это солнечная сторона дома. Доступа на теневую сторону дома у меня нет, поэтому приходиться довольствоваться тем, что имеем. По прошлой метеостанции мне говорили «на солнечной стороне все эти измерения — сферический конь в вакууме, слепи %описание-многА-букАв% и закрепи на теневой стороне дома».
Я пока живу в панельном многоквартирном доме, как и не малая часть нашей страны. Доступ к теневой стороне дома (а для меня, по факту, это окна в подъезде) — прямой вызов всем гопникам района трущимся рядом, любопытным соседям с бегающими глазками и всей элите человечества скрашивающей фоном мою унылую и слишком простую, по их мнению, жизнь. Думаю, что мысль я донес.
Датчики располагаются на разных уровнях. В основании находится датчик освещенности Bh2750 и смотрит ровно вниз. Мне кажется, так он будет меньше пачкаться и покрываться пылью и при этом смотреть наружу сквозь минимальное количество препятствий для солнечного света. Вообще размещение этого датчика, это целая головная боль. Как не крути, все будет не то. Оставил так, ведь по сути важны не сами показания, а тенденция изменения. Хотя кого я пытаюсь обмануть, точность важна всегда! Предлагайте свои варианты.
Намного проще обстоят дела с датчиком атмосферного давления BMP180 и влажности SI7021, кстати, с последнего мы также будем забирать данные о температуре. Их размещаем в оставшемся свободном пространстве будки, благо его там с избытком, но не в конусе т.к пространство в нем менее проветриваемое.
Все хозяйство подключается между собой следующим образом
NodeMCU | ESP 07/12 | Датчики
——————————
D2 | GPIO 4 | SDA
D1 | GPIO 5 | SCL
3.3V | 3.3V | 3.3V
GND | GND | GND ВАЖНО: при финальном монтаже устройства на его место службы, обязательно установите перемычку между пинами GPIO 0 (D3) и питанием 3.3 Вольта. Причины её установки описаны в закрепленном сообщении с описание обновления от 12.08.2017.
Сам микроконтроллер будет спрятан в уже знаменитую распределительную коробку, закрепленную на шпильке, чуть ниже будки Стивенсона. У меня все находится на стадии неторопливой сборки с попутным поиском более удачных идей.
Плата расширения, на которой будет установлена плата NodeMCU, закреплена через ножки для крепления компьютерных материнских плат в корпусах.
Разъемы для подключения внешних датчиков и питающей линии установил на местах где была пара штатных заглушек. Закрепил все через переходную пластину, выпиленную из куска фольгированного текстолита. Естественно, предварительно пластина была протравлена, а вся медь искоренена, ибо в этом случае она нам не друг.
Также была предусмотрена проставка из полиэтиленового поролона (используется в качестве упаковочного материала при транспортировке грузов) между текстолитом и корпусом, общей толщиной 5мм, а после затяжки крепежных винтов, его толщина не превышает 1мм. Это было сделано из-за опыта эксплуатации предыдущего (временного) бокса для этой метеостанции. Без проставки влага быстро найдет путь вовнутрь, и срок службы устройства снизится.
Производим примерку.
При окончательном монтаже обязательно необходимо удалить все не плотно прилегающие части полиэтиленового поролона, то есть те части, которые располагаются снаружи и не сдавлены крепежной текстолитовой пластиной. Это необходимо сделать для препятствования накоплению влаги в доступных для неё полостях. Также пришлось увеличить число крепежных болтов для более надежного прилегания текстолита, в противном случае он может выгибаться.
Все самое сложное позади, остается только вывести на один разъем шину i2c с питание 3.3 Вольта, а на другой подвести пины питания платы расширения. Но т.к у меня валялся «хвост» отрезанный когда-то от не рабочего блока питания маршрутизатора, и я не побрезговал им воспользоваться по прямому назначению.
Далее останется все подравнять, проверить качество монтажа, возможность замены платы NodeMCU, если это будет необходимо при эксплуатации и самое главное, дважды проверить, что и куда припаяно. Мои кривые руки и невнимательность уже наказывали меня, а т.к ждать новые запчасти долго, повторять не хочется.
Общий вид получился таким
А вот как все выглядит в боевых условиях. Кстати, могу предложить идею с помещением в бокс мешочка содержащий впитывающий влагу гель, они часто встречаются в коробках с обувью. Если все герметично, то он впитает остатки влаги, а если нет, то лишним уж точно не будет.
Требования (!!!Читать обязательно!!!)
Arduino IDE с поддержкой контроллера ESP8266, версия 2.6.2 (на версиях выше работоспособность не проверялась)
Установленный модуль в Arduino IDE для загрузки файлов во Flash память микроконтроллера. Как установить описано тут.
Для работы модуля загрузки файлов во Flash может понадобится последняя версия Python https://www.python.org/downloads/
Любой модуль на базе ESP8266 c Flash 4MB (3MB выделяем под SPIFFS)
В параметрах выставляем lwIP версии 2 и максимальную производительность (lwIP v2 Higher Bandwidth)
Сам архив с последней версией проекта. Скачать можно в конце статьи или по этой ссылке.
Обязательные библиотеки (!!!Читать обязательно!!!)
ArduinoJson (v5.13.5)
PubSubClient Ссылки на библиотеки сенсоров указаны в комментариях к коду. Сами библиотеки, как и обслуживаемые ими сенсоры, не являются обязательными. Вы вольны использовать любые датчики, как физические, так и программные.
Порядок установки (!!!Читать обязательно!!!)
Изучите файлы проекта с примерами использования тех или иных сенсоров. Все файлы с примерами начинаются с префикса users_, это users_auto.h, users_bme280_x2.h и т.д. Загрузите необходимые Вам библиотеки или используйте эти файлы как пример для добавления иных датчиков.
Выставите необходимые настройки для контроллера в среде разработки Arduino IDE. Пример настроек указан на скриншоте выше. Обязательно убедитесь, что выбрано правильное распределение места для внутренней файловой системы, это значит, что 3MB должно быть выделено под файловую систему. Также проверяем, чтобы использовался lwIP v2 в режиме максимальной производительности (lwIP v2 Higher Bandwidth).
Произведите загрузку программы с помощью среды разработки (Ctrl + U).
Произведите загрузку содержимого каталога data в файловую систему. Меню/Инструменты/ESP8266 Sketch Data Upload
Перед тем как устанавливать метеостанцию на постоянное место жительства, подтянуть GPIO-0 (пин D3 на плате NodeMCU) к питанию 3.3V. Во время данной процедуры, питание на контроллере должно отсутствовать. Первый запуск (!!!Читать обязательно!!!)
Помните, что вся конфигурация микроконтроллера производится исключительно через web интерфейс. Никаких изменений значений тех или иных параметров в коде не требуется, а подобную практику будем считать плохим тоном.
И так, после запуска микроконтроллера он сразу перейдет в аварийный режим и поднимет собственную точку доступа с именем WeatherStation. Это нормальное поведение т.к подразумевается использование метеостанции в домашней беспроводной сети, ну а раз о ней пока ничего не известно, то и подключаться не к чему.
Подключитесь к данной сети с любого удобного устройства и перейдите в панель управления (для этого имеется соответствующая иконка, запутаться невозможно), контроллер будет доступен по адресу http://espws.local или http://192.168.4.1 При попытке входа в панель управления будет запрошено имя пользователя и пароль, по умолчанию admin/admin. После входа в панель управления перейдите в раздел «Основные настройки WiFi» и укажите имя и пароль Вашей домашней сети, а также, при необходимости, укажите пароль для подключения к точке доступа поднимаемой контроллером в аварийном режиме. Если все сделано правильно, то контроллер подключится к домашней сети в течении 5-и минут.
Если Ваша домашняя сеть скрыта, то после первоначальной настройки необходимо перезагрузить контроллер. Это необходимо из-за частичной поддержки работы со скрытыми сетями. После перезагрузки контроллер увидит Вашу сеть и запомнит её MAC адрес. Помните об этом если захотите сменить домашний маршрутизатор.
Хотите помочь проекту или спонсировать новый?
Yandex.Money
PayPal.me Файлы
Метеостанция на основе ESP8266
Всем привет. Тоже хочу поделиться небольшим опытом создания полезной фигни «из г и палок»©.Последнее время на муське стали массово появляться обзоры разных микроконтроллерных штучек от разных рукастых товарищей. Давно мечтал что-нибудь помикроконтроллировать, но вот реальной цели не было. В конце концов, после очередного обзора твердо решил: надо поднимать свою самооценку.
Перефразируя старый анекдот
Теория – это когда известно как, но ничего не работает
Практика – это когда все работает, но никто не знает как
ЗДЕСЬ мы объединяем теорию с практикой: ничего не работает и никто не знает почему…
Микроконтроллеры – это там, где совмещаются паяльник и программирование. Поскольку сам я имею маааленький опыт в паянии и еще меньший — в программировании, я покажу, что можно сделать с микроконтроллерами практически без паяния и без программирования!
Для начала, я сел «изучить вопрос». У меня было общее (скромно) представление о МК, поэтому стал собирать частности…
В моем детстве были популярны программистские байки.
Вот одна из множества, поясняющая, зачем что-то изучать перед тем как делать:
Жили в общежитии в соседних комнатах два аспиранта. Один из них занимался какими-то вычислениями (назовем его Математик), а второй (назовем его ИТшник) – обслуживал институтскую гордость (что-то типа БЭСМ6). Необходимое отступление – в те времена компьютер был… ну… ну как сегодня – Токамак: все знают, что он существует, но мало кто может запустить на нем свой проект.Так вот – у Математика была работа – обсчет нескольких страниц каких-то данных. У ИТшника – был доступ к вычислительной машине. Логично, что Математик, по-соседски, попросил ИТшника просчитать свои данные на машине. ИТшник – за пару ночных дежурств, ввел данные, забил алгоритм, обсчитал и распечатал результат: несколько колонок цифр на длинном рулоне бумаги. Две ночные смены сэкономили Математику несколько месяцев работы с железным Феликсом!… Через пару дней ИТшник, проходя мимо комнаты Математика, увидел, что тот сидит над знакомым рулоном распечатки и что-то дописывает к колонкам цифр. Зайдя к другу, он увидел, как тот рядом с каждой цифрой дописывает ее синус и косинус, используя Таблицы Брадиса.
После того как ИТшник обрел дар речи, он спросил – ??? (нецензурщина опущена). На что Математик пояснил – оказывается он НЕ ЗНАЛ, ЧТО ЭВМ УМЕЕТ ВЫЧИСЛЯТЬ ТРИГОНОМЕТРИЧЕСКИЕ ФУНКЦИИ…
С момента прочтения этой притчи я, перед тем как начать пользоваться чем-либо, сначала стараюсь выяснить возможности этого «чего-либо».
Пропускаю большую часть своих исследований возможностей ардуины и момент перехода поисков в плоскость esp8266. Главное, что в конце концов я оказался на странице проекта Homes Smart.
В данном проекте нам не придется программировать. И почти не придется работать паяльником: как и большинство проектов с ардуиной – все соединения можно выполнить на дюпонд-проводах). Почти, т.к. модули и датчики приходят от китайцев без припаянных гребенок – потребуется сначала их впаять. Вот так приходит от китайцев:
Но паяльником нужно будет поработать один раз – можно собрать все скопом и попросить какого ни будь рукастого ремонтника.
Некоторые возможности проекта (помимо метеостанции) постараюсь описать в конце обзора. Тут только скажу, что часть возможностей проекта – платная. «Аж» 100руб на каждый модуль esp. Но для метеостанции вполне достаточно бесплатной версии.
ЕСП-шки пришли к новому году. Датчики пришли еще раньше, по ходу дела дошли и прочие железки. Поскольку все праздники стояла «отличная» погода – морозы за -20 с ветром – я, в перерывах между праздничными возлияниями, стал реализовывать задумку.
Процесс прошивки модуля подробно описан как на странице проекта, так и в предыдущих обзорах. Не буду повторяться (итак обзор получился тяжелым), тем более, что прошить модуль можно не только UART-переходником, но и ардуиной (причем не единственным способом).
Итак – цель: собрать домашнюю метеостанцию, передающую показания на narodmon.ru
Берем модуль esp8266. Модулей этих несколько версий. Наиболее часто встречающиеся:
esp-01
Версия имеет малое количество портов (ограничение в расширении функционала) и стандартно 512к памяти (впрочем – скорее всего памяти будет 1м). Зато он дешевле других и имеет гребенку для соединения.
esp-07
У 07 антенна керамическая + есть разъем для внешней антенны. Если актуально – берем его. Памяти 1М или (скорее всего) 4М.
esp-12
От 07 отличается печатной антенной и чуть меньшей ценой.
Для просто метеостанции – подойдет любой. Я выбрал esp-12.
Модуль питается от 3,3в. Подача на него 5В может вывести его из строя. Для питания были заказаны стабилизаторы (ну или в местных магазинах поискать). Пока они не пришли – я питал модуль от 3,3 выхода ардуины.
Можно воспользоваться готовым стабилизатором, или регулируемым стабилизатором
А можно взять модуль esp-12, уже установленный на переходную плату со стабилизатором питания, интерфейсом для прошивки и гребенкой (с учетом всех наворотов, необходимых для отдельного esp12 – наверное еще и дешевле получится). В каментах подсказали другой вариант — дешевле.
Взяв паяльник в руки понял, что зрение уже не то 🙁 Гребенку к ардуине припаивал практически на ощупь. А когда взял в руки esp12 – так чуть не побежал искать мелкоскоп… Паяться к ней без оптики для меня оказалось нереально. Для решения этой проблемы (а также для того чтобы можно было пользоваться дюпонд-кабелями) – были заказаны модули-переходники
Припаять esp12 на переходник оказалось проще чем я думал – площадки переходника залужены и нужно только намазать площадки esp каким ни будь флюсом, выставить ровно и прикасаться к луженым площадкам тонким жалом. Не забыть смыть флюс. Вот что получилось у меня:
Переходник, помимо гребенки, имеет площадку для установки стабилизатора. К сожалению – площадка рассчитана на какой-то другой стаб (с другим расположением выводов), поэтому заказанные мной 1117 пришлось припаять немного колхозно. Ну и, чтобы припаянный стаб заработал, надо удалить перемычку (просто смахнуть паяльником средний резистор на лицевой стороне). Работает! Я добавил еще один пин в проходное отверстие – для вывода 3,3в на внешние потребители. Вот что получилось (3.3 выход – красный провод не в общем ряду):
На случай, если меня читают старшие товарищи, да, я знаю, что стабилизатор питания требует, чтобы рядом с его выводами стояли конденсаторы. Керамика и электролит. Просто я в хламе не нашел ничего подходящего, поэтому оставил так. Все работает, но конденсаторы я все еще ищу и припаяю обязательно.
Для того, чтобы все соединить, нам понадобится комплект проводов и, желательно, монтажная плата
Подключаем модуль согласно схеме, скачиваем прошивку (в зависимости от размера памяти на нашем модуле (как определить — есть на странице проекта) и заливаем в esp-шку любым способом. У меня прошивка не залилась с первого раза – пришлось сначала залить бланк («пустой» набор, как бы затираем старую прошивку – вся инфа есть на странице проекта), а потом прошить еще раз – успешно.
После прошивки заходим на модуль в safe-mode и настраиваем подключение к роутеру (все по инструкции со страницы проекта), выставляем логин-пароль. Все. Остальное можно настроить потом. На всякий случай выключаем safe-mode и включаем модуль – он должен подключиться к роутеру и быть доступным по адресу, который ему выдаст роутер. Если все подключается – разбираем «прошивочную» схему и начинаем собирать метеостанцию. Если у вас модуль не 01, то просто читаем со схемы на странице проекта название контактов и находим такие же на своем модуле.
Для метеостанции нужны датчики. Как минимум – датчик температуры. Прошивка может работать с классическим далласом
Для его подключения потребуется резистор. На схеме проекта — 1,5кОм. По даташиту 4,7кОм (цена – копейки, валяется у каждого радиолюбителя в хламе). У меня работает 1,5. Если полистать форум проекта — то многим приходиться подбирать резистор, в зависимости от длины и качества кабеля до датчика.
Но можно взять готовый датчик с резистором
Можно добавить датчик влажности.
Кстати, в нем встроен и датчик температуры, так что можно одним этим датчиком мерить два параметра. Только встроенный датчик температуры – очень неточный.
Ну и, если мы претендуем на звание метеостанции, добавим датчик давления.
В нем тоже встроен датчик температуры, но датчик давления не рекомендуют выкидывать на улицу – т.е. давление (и температуру) он будет измерять в комнате.
Я к этим трем датчикам добавил еще один датчик влажности – для замера влажности в комнате (для второго датчика требуется платная версия прошивки).
Итак – датчик температуры и влажности припаиваем к длинному кабелю (я использовал 4-жильный телефонный шнур – метров 7). Можно и не паять, но соединение без пайки на открытом воздухе быстро окислится. Впрочем – даже паяное соединение лучше чем либо защитить (лаком, термопистолетом, эпоксидкой итп – главное не попортить датчики). На другой конец кабеля припаиваем куски разрезанного дюпонд-кабеля. Кабель я выбросил за окно прямо через створку (летом может что-нибудь придумаю)
Еще два куска дюпонда припаиваем к тому, чем будем питать нашу конструкцию (я припаял к миниУСБ разъему, и питаю все от телефонного зарядника). После чего – паяльник можно убрать обратно на антресоли.
После подключения всех датчиков, проверяем все еще раз. Особенно убеждаемся в правильности соединения цепей питания. Включаем.
Подключаемся к нашему модулю по адресу, который выдал ему роутер (см в настройках роутера. Лучше сразу, там же в настройках dhcp, выдать модулю постоянный адрес, чтобы не искать его каждый раз после перезагрузки). Переходим по ссылке Hardware и выставляем галочки согласно подключенным датчикам. У меня так:
Нажимаем Set и затем возвращаемся на main.
Все, наша метеостанция работает. На главной странице увидим показания наших датчиков.
Но, если мы желаем отправлять данные датчиков на всеобщее обозрение, переходим в Servers. Включаем галочку на narodmon.ru.
Теперь данные с датчиков будут отправляться на сервер народного мониторинга. Предварительно регистрируемся на народмоне по инструкции (раздел Справка вверху страницы), находим свои датчики и настраиваем видимость. Все, теперь можно видеть свои данные на карте, строить графики по переданным показаниям, сравнивать свои показания с «соседними» (если такие есть) и пытаться прогнозировать погоду.
Поигравшись с таким вариантом станции, я понял, что мне не хватает локального отображения показаний. Благо, проект поддерживает ряд экранов. У меня под рукой оказался 1602 (16 символов * 02 строки)
Сразу скажу – экраном я не удовлетворен. На него помещается максимум 4 показания, и то не без ущербности. Я вывожу на него время (да – встроенные часы синхронизируются через интернет), давление, температуру за бортом и влажность. Температура и влажность в комнате – остались без контроля 🙁 Заказал себе экран 2004 – 20 символов * 04 строки, но он еще едет.
Для подключения экрана потребуется контроллер (он одинаковый для 1602 и 2004)
Контроллер также потребует пайки к экрану (ну я паяльник не убирал далеко. А если кто будет повторять – не забудьте про это). Подключил – все отлично, кроме яркости экрана. Она избыточна (особенно для темной стороны темного времени суток). На плате контроллера экрана есть перемычка – отключающая подсветку. Решил поставить туда ключ и управлять им датчиком движения.
Данный датчик также неоднократно обозревался на муське. Основное — он питается от 5в (и выше), но управляющий сигнал – 3,3в. Попавшиеся под руку MOSFETы не открывались от 3,3 :(. И я рискнул поискать что-нибудь в хламе. Попалось что-то типа КТ817 (думаю, и КТ315 подошел бы, но у него ноги не удобные для дюпонд-кабелей). На базу подал сигнал с датчика движения, а эмитер-коллектор подсоединил вместо перемычки (кого куда – методом научного тыка, хотя можно было и вызвонить где на перемычке плюс, а где минус, но это дольше 🙂
В результате получил бонус – транзистор из-за большого сопротивления перехода (или из-за неполного открытия) снизил яркость экрана до приемлемой. Теперь экран работает отлично: при сработке датчика движения показания в меру яркие и читаются легко.
Вот, в таком виде станция работает у меня с новогодних праздников. Историю показаний можно посмотреть тут.
Кстати, важный момент. Если сравнить показания в солнечный зимний день с показаниями соседних станций (например, 21 января), можно заметить, что мои показания – ниже (реальная температура в январе у нас была только отрицательная). Все потому, что «соседские» датчики просто нагреваются солнцем. Я же учел этот момент – по уму датчик надо монтировать в тень, но не всегда это возможно. Я просто сделал из фольги короткий тубус и закрепил датчики внутри:
Конструкцию к лету думаю усовершенствовать: сделать два тубуса один-в-другом с защитой от осадков и с инжекцией циркулирующего воздуха. А так же – перенести подальше от стены дома (соседи снизу открывают форточки, что заметно влияет на показания)
Так же в планах добавить LED индикатор для индикации часов – чтобы считывать показания на расстоянии.
Ну еще есть идея сделать проекцию часов на потолок, но придется искать подходящую линзу (наличные кредитки-френеля слишком длиннофокусные).
Ну и в конце, как обещал, кратко расскажу, что же еще можно подключить к этому модулю и какие задачи он может решать (полный список см на странице конструктора прошивки):
— Различные датчики температуры, влажности, давления, освещенности.
— Дисплеи, помимо описанного мной – семисегментные, ОЛЕД, ТФТ
— АЦП (например – мерить влажность почвы)
— RC приемник и передатчик 433 и 315 МГц (да-да, открывать ворота и не только)
— ИК приемник и передатчик
— ФМ-радио (не знаю как оно сюда попало, но есть)
— RTC (часы с независимым ходом. То, о чем уже полвека мечтают все владельцы микроволновок)
— Управление выключателями Livolo
— Отправка СМС
— Бегущая строка (лучше один раз увидеть)
— Работа с прерываниями
— ШИМ
— Обновление прошивки через интернет (после первой прошивки вам не надо больше подключать программатор)
— Термостат (поддержка температуры или влажности)
— Календарь и часы с синхронизацией через интернет, ну и программированием событий по времени и дням недели (в будни включаем кофеварку в 6 утра, в выходные – в 12)
— Чтение и управление состоянием портов (подключаем переключатели и/или реле – поливаем огороды итп)
— Конструктор кода (кому нужно делать что-то что не умеет прошивка)
— Логический модуль (программируем действия простой логикой без знания языков программирования)
— «кнопки» на главной странице модуля для управления портами (если надо полить огород не по расписанию)
— Берет прогноз с гисметео (в демонстрации бегущей строки данные из него)
— Может передавать данные и управляться с разных сервисов (сам не пользовался, но в описании выглядит красиво, например тут и тут
— Наверное еще что-то, о чем я забыл или понятия не имею.
Вывод. Модуль отличный! Вариантов применения – уйма. Цена – копейки (даже с умирающим рублем). Описанный проект позволяет на основе этого модуля, без знания даже основ программирования и с минимальными навыками пайки, собрать и настроить под свои нужды много интересных и/или полезных вещей. Автор проекта активно его развивает и общается в форуме проекта. Без устали отвечает на вопросы, берется за реализацию новых фишек (если они укладываются в концепцию проекта).
Минусы проекта – это продолжение его плюсов (и наоборот): платная версия «про». Закрытый код.
Рекомендую. Рекомендую как модуль esp-12, так и прошивку проекта homes-smart.ru
Еще несколько фото общего вида и датчиков которые стоят в комнате
Если кто-то смог дочитать обзор до сюда, то вот небольшой бонус
Роберт Хайнлайн «Дверь в лето»
… Еще будучи пушистым котенком, Пит выработал для себя простую философию, согласно которой Я отвечал за жилье, еду и погоду, а ОН – за все остальное. За погоду он взыскивал с меня особенно строго, а зимы в Коннектикуте хороши только на рождественских открытках. Этой зимой Пит регулярно инспектировал свою дверь, но не выходил через нее – ему не нравилось белое вещество, покрывающее землю, и он начинал приставать ко мне, требуя открыть ему большую дверь…
PS Еще раз огромное спасибо всем тем рукастым товарищам, которые пилили обзоры по микроконтроллерам и прочим проводкам-лампочкам. Именно вы заставили мою самооценку победить мою лень 🙂
Upd 29.01.16
Пришли экранчик и матричные дисплеи. Не удержался, в один присест запаял гребенки и побежал испытывать…
OLED экранчик, размером маааахонький…
И еще такое: Матричный дисплей. Соединяется в цепочку до 10шт.
Upd 30.01.16
По просьбам, замерил энергопотребление. Сначала USB-доктором, получил 0,08А по 5в. Подозрительно мало, пришлось опять рыться в хламе – нашел Ц-шку типа DT830. Замеры (все по 5В):
Вся система в целом (практически независимо от включения подсветки экрана: 0,08А (всетаки доктор не врал)
Экран и датчик движения: 0,0084А
Upd 17.02.16
Пришли семисегментные экранчики. Выглядят вот так:
Метеостанция ESP8266 Комплект 1xDHT11 1xBMP180 1xOLED Дисплей Новый прочный
Информация о товаре:
100% новый и высокое качество Изготовлен из высококачественного материала, прочный и практичный в использовании
Использует ESP8266-12E для извлечения данных из Интернета: время города, данные о погоде и прогноз на ближайшие 3 дня, прокрутка на OLED-дисплее SSD1306; Устройство может переключаться на отображение данных из любого города мира — возможно, там живут ваши родственники или друзья. ️Прибор использует датчики DHT11, BMP180, Bh2750FVI для записи температуры, влажности, атмосферного давления и световых данных. Метеостанция считывает данные изнутри здания каждые 5 секунд и загружает их в Интернет каждые 60 секунд. Вы можете видеть таблицы данных в режиме реального времени со своего телефона или компьютера ESP8266: чип CP2102 внутри, micro USB, 4 МБ флэш-памяти, полный порт ввода / вывода и беспроводная платформа IOT с поддержкой 802.11 для arduino. DHT11Sensor: Цифровой сигнальный выход с калиброванным датчиком температуры и влажности. Простой протокол связи значительно сокращает усилия по программированию BMP180: высокоточный, малый датчик давления с низким энергопотреблением 3 мкА. Благодаря отличным характеристикам, абсолютная точность наименьшего значения может достигать 0,03 гПа. 300 ~ 1100 гПа. Bh2750FVI: Цифровой датчик интенсивности света. Прямой цифровой выход, никаких сложных расчетов, никакой калибровки. OLED желто-синий дисплей: 0,96 «SSD1306 128X64 желтый и синий OLED ЖК-дисплей с I2C IIC SPI Последовательный ️Мы подготовили оборудование метеостанции, а в нижней части упаковочной коробки вставлена инструкция 50M, демонстрационный код, инструменты записи, необходимые библиотеки классов, метка ссылки на загрузку справочного документа. Или свяжитесь с нами. Список Пакетов: 1 х Esp8266-12E, 1 х DHT11.1 х BMP180.1xBh2750FVI, 1 х OLED-дисплей, 2 х макет, 20 х DuPont кабель, 1 х USB кабель Важное примечание: Комплекты только для операционных систем Windows Наклейка ссылки для документа для загрузки руководства расположена в нижней части упаковочной коробки. Или свяжитесь с нами: Немецкое время: 3:30 .m — 11:30.m. Результат: 1) Получайте периодические данные о погоде из OpenWeathermap, которые показывают сегодняшнюю погоду и прогноз погоды на ближайшие 3 дня в каждом городе мира 2) Регулярно считывать текущие данные о температуре и влажности в помещении 3) Регулярное считывание данных об атмосферном давлении и интенсивности света 4) Загружайте данные о температуре, влажности, давлении воздуха и интенсивности освещения в thingspeak.com через равные промежутки времени 5) Отображение прогноза погоды на OLED-дисплее и отображение диаграмм мониторинга окружающей среды на thingspeak.com Инструкция по каталогу руководства (на английском языке): Обзор: В этом руководстве описано, как сделать миниатюрную метеостанцию для Arduino IDE Шаг 1: Установите USB-to-serial Шаг 2: установите IDE для ESP8266 Шаг 3: запись прошивки в ESP8266 Шаг 4: подключение компонентов Шаг 5: Зарегистрируйте OpenWeathermap, что-то новое, что-то новое, Шаг 6. Импорт кода WeatherStation в IDE и так далее … Встроенное ПО AT в руководящем документе: Аи-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a_20171130.bin Библиотечное приложение к руководящему документу: esp8266-weather-station-master.zip (исходный код WeatherStation) esp8266-oled-ssd1306-master.zip json-streaming-parser-master.zip Инструменты в руководящем документе: ESP8266Флашер.exe usb-к-последовательному.rar
Содержимое пакета:
1xESP8266-12E
1хДНТ11 1xBMP180 1хБХ1750ФВИ 1xOLED дисплей 1 x USB кабель 2x Хлебная доска 20x двойной кабель
Примечание:
1. реальный цвет элемента могут несколько отличаться от фотографии показано на сайте, вызваны многими факторами, например яркость монитора и яркость света. 2. Позвольте небольшие ручные измерения отклонения для данных.
Тип товара: Метеостанции
Домашняя метеостанция на esp8266
Привет ГТ!
С появлением esp8266 пару лет назад, у меня возникла мысль создать на базе этого контроллера что-нибудь полезное, что будет нужным в доме, и чем будет удобно пользоваться всем. Возможность подключения по wi-fi, небольшие габариты, достаточное количество контактов ввода-вывода, легкость программирования сделали возможным собирать на базе этой платы множество устройств, и одно из них — система мониторинга погоды.
Изначальные требования к системе:
- Удаленный просмотр измеряемых данных
- Возможность удаленного управления устройством
- Наличие дисплея для просмотра данных «прямо сейчас»
- Простота подключения и питания (питание от обычной USB-зарядки)
- Передача данных на домашний сервер для сбора статистики, просмотра графиков и т.п.
- Возможность увеличения количества подключенных сенсоров
- Возможность использования множества метеодатчиков одновременно
КДПВ:
Для начала решил отыскать существующие системы, которые можно было бы взять в качестве прототипа. Нашлась одна, подходящая по возможностям — wifi-iot.com, но она была отвергнута из-за закрытого кода и необходимости покупки лицензии для активации полного списка возможностей. Поэтому решил создать свой велосипед.
Для реализации надо было воплотить в жизнь железячную и программную части.
На Ебее были закуплены следующие компоненты:
- NodeMCU board — 350р.
- LCD TFT Display 320х240 на базе чипа ILI9340C — 370р.
- Датчик DHT22 — 130р.
- Датчик BMP180 — 115р.
- Макетная плата 5х7 см — 30р. (при покупке 5 штук)
- Плата с micro USB разъемом — 10р.
На местном рынке был куплен корпус — Gianta G403 за 70р.
Итого — 1000р на компоненты (цены на момент публикации, по курсу — 15 вечнозеленых).
Для программной части была выбрана элементарная связка PHP+MySQL, развернутая на домашнем сервере на базе малинки. Преимущество перед облачными сервисами — при пропаже интернета система продолжает успешно работать и не накрывается медным тазом. Минус — необходимость написать серверную часть системы для хранения и обработки данных, но это было интересно сделать и самому.
Для программирования была выбрана среда Arduino IDE, с подключенным модулем для разработки на esp8266. Как это сделать — подробно описано тут — github.com/esp8266/Arduino
Поначалу было желание попробовать писать все на lua, ипользуя прошивку nodemcu, но быстро отказался от этой идеи, т.к. во время заливки скетчей постоянно вываливались ошибки о недостатке памяти и т.п.
Для обмена данными между метеостанцией и малинкой был выбран формат данных JSON.
Схемы подключения сенсоров к модулю — были использованы стандартные, библиотеки можно найти здесь:
Так же понадобилась следующая библиотека — github.com/bblanchon/ArduinoJson
Помимо вышеназванных к системе можно подклюючить и настроить полученные данных со следующих сенсоров:
Сейчас жду посылку с датчиком CO2 на базе MHT-Z19, чтобы мониторить наличие углекислого газа в воздухе. Как только придет — соберу модуль с ним, чтобы расширить перечень измеряемых параметров погоды в доме.
Итак, после получения всех посылок, множества итераций по отладке кода и сборок на макетке, пришло время собрать готовое устройство.
Схема устройства:
В корпусе дремелем было проделано отверстие для экрана:
После этого внутри был закреплен сам экран, бутерброд из платы с модулем, и датчики. Так же не была забыта кнопка сброса 🙂
В торцевых пластинах корпуса были проделаны отверстия для вентиляции сенсоров, и для разъема питания. После подключения — информация на экране:
В прошивке модуля реализовано удаленное управление — поднят веб-сервер, используя который можно произвести начальную настройку (указать используемую wifi-сеть, указать используемые датчики, настроить модуль реального времени, посмотреть данные с подключенных сенсоров, перезагрузить модуль). Когда писал странички, уделил внимание тому, что настройки может производиться с мобильного — поэтому Привет, адаптивный дизайн! 🙂
Никаких внешних зависимостей встроенные странички не имеют, все стили и скрипты — хранятся в памяти модулей.
Для просмотра списка подключенных модулей, удобного просмотра получаемых данных, просмотра графиков — был написан небольшой сайтик, развернутый на малинке.
Что планируется реализовать еще:
- Синхронизация времени по NTP
- Накопление данных в модуле в случае потери сети
- Реализация авторизации на сервере просмотра данных
- Привязка датчиков к опреденным пользователям
- Настройка данных, отображаемых на экране датчика
- Создание outdoor-версии датчика (буду рад советам, как это лучше сделать)
- Возможность управления реле
- Возможность получения данных с датчиков открытия окон-дверей (например герконов)
Исходный код проекта — доступен здесь: github.com/aproschenko-dev/MeteoEsp
Буду раз любой конструктивной критике и комментариям.
Автор: alexpp
Источник
Простой веб-сервер метеостанции на ESP8266 и BME280
С момента своего выхода в 2014 году микросхема ESP8266 привнесла коренные изменения в область Интернета вещей, предоставив профессионалам и энтузиастам чрезвычайно экономичный программируемый микроконтроллер со встроенным модулем беспроводной связи WiFi, открыв тем самым доступ к Интернету вещей для всевозможных повседневных операций и подключения к интернету самых разнообразных датчиков и сенсоров. Кроме того, благодаря модулю WiFi микросхема ESP8266 может также служить как автономный веб-сервер в локальной сети и отвечать на запросы в виде HTTP-метода GET, получаемых от интернет-браузера.
В этом проекте показано, как построить простой автономный погодный веб-сервер с помощью платы для разработчиков NodeMCU с микросхемой ESP8266 и датчика окружающей среды BME280 от компании Bosch. Получив веб-запрос, ESP8266 отправляет в ответ веб-страницу в формате HTML, содержащую температуру, влажность воздуха и атмосферное давление.
С помощью HTML-метки обновления, страница автоматически перезагружается каждые 15 секунд, чтобы получать самые свежие данные об окружающей среде.
Для этого проекта потребуется минимум аппаратуры.
Модуль BME280 — полностью интегрированное решение для измерения параметров окружающей среды от компании Bosch, объединяющее датчики для давления, влажности и температуры в крошечном LGA-корпусе с металлической крышкой размером 2.5 × 2.5 × 0.93 мм.
Благодаря своим компактным размерам, простоте использования (BME280 поддерживает интерфейсы I2C и SPI) и наличию вспомогательных библиотек с открытым исходным кодом для платформы Arduino этот датчик очень популярен среди энтузиастов, занимающихся погодой.
В этом проекте выводы линии данных (SDA) и тактового сигнала (SCL) интерфейса I2C модуля датчика BME соединены соответственно с выводами D3 и D4 платы NodeMCU.
BME280 | NodeMCU |
VIN | 3.3 В |
GND | GND |
SCL | D4 |
SDA | D3 |
Встроенное ПО микросхемы ESP8266 для этого проекта разработано с помощью среды Arduino IDE. Вам потребуется установить ядро ESP8266, чтобы в среде Arduino IDE можно было разрабатывать ПО для этой микросхемы. Инструкцию для этого можно найти на странице ядра ESP8266 на сайте GitHub, или по этой ссылке. Вам также будут необходимы следующие библиотеки от компании Adafruit для считывания данных с датчика BME280.
Adafruit unified sensor library
Adafruit BME280 library
Адрес интерфейса I²C датчика BME280 жёстко закодирован в файле Adafruit_BME280.h (поищите строку #define BME280_ADDRESS 0x77) из папки Adafruit_BME280_Library. Модули с датчиком BME компании Adafruit жёстко запрограммированы на использование адреса 0x77 для I²C.
Однако, датчик BME280 может иметь несколько другой адрес I²C (0x76), если его внешний вывод SDO замкнут на землю. Если вы используете модули датчика от другого производителя, вполне вероятно, этот адрес не будет совпадать со значением из библиотек Adafruit.
Например, у большинства модулей с датчиком BME28, доступных в рунете, адрес I²C равен 0x76. Так что, если вы не получаете отклик от датчика при использовании адреса, установленного в файле Adafruit_BME280.h, вам может понадобиться исправить его на 0x76.
Полный программный код для этого проекта с погодным веб-сервером можно скачать по следующей ссылке.
HTML-код для самой простой веб-страницы с выводом данных датчика и меткой автообновления также включён в данную прошивку.
Обратите внимание, что перед загрузкой ПО в плату NodeMCU нужно будет поменять идентификатор SSID и пароль в программе на соответствующие вашей сети WiFi.
После загрузки программы в модуль NodeMCU и его перезапуска, в окне последовательного порта (Serial Monitor) вы увидите IP-адрес, по которому её можно будет найти модуль в локальной сети.
Чтобы получить доступ к веб-серверу с ESP8266, вам будет необходимо открыть веб-браузер на любом компьютере, планшете или смартфоне, подключённом к той же сети WiFi, ввести этот IP в поле адреса и нажать кнопку Enter («Ввод»).
После получения клиентского запроса, NodeMCU предоставит веб-страницу, содержащую данные датчика BME, как показано ниже:
HTML-страница автоматически обновляется каждые 15 секунд, чтобы получать с датчика самые свежие показатели. Точка выпадения росы (Dew Point) вычисляется на основании температуры и влажности с помощью следующего приближённого представления:
Это очень приятный и удобный способ отслеживания погоды за окном, поскольку он позволяет просматривать параметры окружающей среды на вашем планшете или смартфоне, которые всегда с собой.
ESP8266 Комплект метеостанции с DHT11 Температура и влажность BMP180 Атмосферное давление Датчик освещенности Bh2750FVI 0,96-дюймовый OLED-дисплей IIC YellowBlue для Arduino IDE IoT Starter (руководство входит в комплект): Электроника
Важное примечание:
⭐Комплекты, разработанные только для ОС Windows
⭐Руководящий документ 50M: руководство, демонстрационный код, инструменты записи и необходимые библиотеки классов. Этикетка с ссылкой для скачивания вставлена в нижнюю часть упаковочной коробки. Или свяжитесь с нами на Amazon. , мы отправим ссылку на:
ET: 21:00 PM — 5:30 AM (второй день)
PST: 18:00 PM — 2:30 AM (второй день)
Результат:
1) Получить данные о погоде из OpenWeathermap с регулярными интервалами, показывающая погоду на сегодня и прогноз погоды на ближайшие 3 дня в любом городе мира
2) Чтение данных текущей температуры и влажности в помещении через равные промежутки времени
3) Регулярное считывание данных об атмосферном давлении и интенсивности света
4) Загрузите данные о температуре, влажности, атмосферном давлении и интенсивности освещения в Thingspeak.com с регулярными интервалами
5) Просматривайте прогноз погоды на OLED-дисплее и просматривайте карту мониторинга окружающей среды на сайте thingspeak.com
Каталог руководств:
Обзор : В этом руководстве описывается, как сделать миниатюрную метеостанцию с помощью Arduino IDE
Шаг 1: Установите USB -To-Serial
Шаг 2: Установите Arduino IDE для ESP8266
Шаг 3: Запись прошивки на ESP8266
Шаг 4: Подключение компонентов
Шаг 5: Зарегистрируйте OpenWeathermap, thingspeak new account
Шаг 6: Импортируйте код WeatherStation в Arduino IDE
Шаг 7: Добавить библиотеку
Шаг 8: Изменить файл WeatherStation.ino
Шаг 9: Установите плату и порт снова
Шаг 10: Запишите код на ESP8266
Шаг 11: Результат
AT-Firmware в Руководстве:
Ai-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a_20171130.bin
Библиотека вложения Руководящий документ:
esp8266-weather-station-master.zip (исходный код WeatherStation)
esp8266-oled-1306-master.zip
json-streaming-parser-master.zip
Инструменты в руководстве:
ESP8266Flasher.exe
usb-to-serial.rar
Список пакетов :
1xESP8266-12E
1xDHT11
1xBMP180
1xBh2750FVI
1xOLED Display
1xusb кабель
2xbreadboard
20xdupont cable
ESP8266 Стартовый комплект для электроники Интернета вещей — WeatherStation — PlaneSpotter
Описание
Изучите основы компьютерного программирования и наслаждайтесь наукой с этой метеостанцией 4-в-1, авиалайнером, климатическим узлом и мировыми часами!
Учитесь, развивайте и расширяйте свои научные знания
Нет ничего веселее и увлекательнее, чем строить что-то своими руками в детстве; особенно если то, что вы построили, дает вам обратную связь в реальном времени о погоде, климате и множестве других уникальных вещей.Вот почему мы создали метеостанцию ThingPulse 4-in-1 , которая позволит вам и вашему ребенку узнать о программировании и погодных науках с помощью простых и понятных инструкций, которые превратят вас обоих в настоящих ученых!
Интерактивная наука в реальном времени
Погодная станция ESP8266 отображает текущую и прогнозируемую информацию о погоде из онлайн-сервиса и отображает ожидаемые условия на OLED-дисплее 128 × 64 пикселей с красивыми значками. Программа использует карусель с боковой прокруткой для отображения даты и времени, текущих условий, прогноза на 3 дня, а также температуры и влажности датчика DHT11.Программа может быть даже расширена для отображения другой информации, такой как котировки акций в реальном времени или информация о трафике.
Объем заказа:
- ESP8266 WiFi-чип (NodeMCU V1.0)
- OLED-дисплей (128 x 64)
- Датчик DHT11
- Джемпер от женщины к женщине (40 x 10 см)
- Кабель USB
- Подробное руководство на 55 + страницах
- Пошаговая инструкция
Нажмите «Добавить в корзину», чтобы получить эту самодельную метеостанцию «все в одном», мировые часы, авиалайнер и климатический узел, и пробудите интерес вашего ребенка к науке!
Отзывы
Этот продукт также доступен на Amazon в США.Вот несколько отзывов от счастливых клиентов.
Получил, скомпилировал, загрузил и скомпилировал код, подключил к моему домашнему WI Fi — работает отлично!
Дэвид Н.
Идеальный компаньон. Очень качественно. В блоге ThingPulse также есть очень хороший учебник
M. Steadham
Отличный комплект и опора. Купил его для корректировщика самолета и для знакомства с подключением к Wi-Fi. Очень доволен продуктом. Поддержка со стороны ThingPulse была отличной.
кВт / ч
Мне очень понравился этот продукт, и я смог использовать прилагаемую ссылку, чтобы получить отличное руководство в формате PDF, которое шаг за шагом проведет вас по созданию этого устройства, и несколько вариантов. Хороший товар, отличные инструкции.
Ботмейкер
ESP8266 Комплект метеостанции IOT
Когда мы хотим вставать рано утром, чтобы понять погодные условия на улице, или когда мы хотим сделать самодельную метеостанцию. Более того, мы хотим создать продукт для умного дома на основе первоначальной модели, этот комплект метеостанции ESP8266 IOT основан на функции Wi-Fi esp8266 для обеспечения продуктов удаленной передачи данных с помощью трех датчиков для сбора информации о температуре и влажности и добиться обнаружения капель воды и тестирования интенсивности УФ-излучения.
Три датчика работают очень хорошо, первый датчик температуры и влажности Crowtail, в котором используется датчик DHT11, может одновременно измерять температуру и влажность, а затем выводить цифровой сигнал. Датчик расхода воды может определять, идет ли дождь на улице, а последний УФ-датчик может определять интенсивность УФ-излучения в текущей среде. Информация, собранная датчиком, будет обработана платой esp8266 iot и отправлена на другую плату esp8266 iot, которая подключена к Crowtail-oled.Доска iot будет отображать информацию о погоде на OLED-экране.
Этот комплект имеет несколько основных особенностей, первый из них — самый популярный чип esp8266wifi, мощный, простой в использовании. Относительно легко начать работу, а плата со схемой зарядки может облегчить внешнюю часть датчика, это часть самостоятельной работы, во-вторых, сборка оборудования очень удобна и проста, все датчики и процессоры нужно только подключить несколько тросов могут. Третий — для использования УФ-датчиков и OLED, в информации о погоде, чтобы присоединиться к УФ-мониторингу, более способствует тому, чтобы люди могли сделать лучший выбор для путешествий, а затем использовать OLED-дисплей и больше энергии.Самым важным является то, что как набор он имеет большую ценность для развития и обучения, вы можете написать свой собственный код или использовать другие датчики для получения нужной информации и отображения ее в других формах.
После получения этого комплекта вы можете следовать нашим инструкциям по программированию и сборке, а затем разместить станцию мониторинга в почтовом ящике за пределами дома или на крыше, но не ставьте слишком далеко, пожалуйста, держите в диапазоне 20 м, затем разместите Дисплейная станция рядом с вашей спальней или раздевалкой.Все будет умнее и красивее.
(Обратите внимание, что в этом комплекте нет батарей)
Характеристики
- ESP8266 комплект nodemcu
- Комплект метеостанции
- Низкое энергопотребление в режиме ожидания
- Простота сборки
- Приложение Smarthome
- Разнообразие датчиков
- Более полезно в повседневной жизни и полностью интересно
Характеристики
- Рабочее напряжение: DC 3.3В-5В
- Лучшее расстояние передачи: ≤20 м
- Вес: 128 г
- Размер корпуса: 146 мм (Д) * 86 мм (Ш) * 35 мм (В)
Список пакетов
Wiki и внешние ссылки
ESP8266 добавляет Wi-Fi к метеостанции 433 МГц
На рынке нет недостатка в дешевых метеостанциях, которые собирают данные с нескольких беспроводных датчиков, работающих в диапазоне от 433 до 900 МГц, и представляют вам небольшой красивый экран рабочего стола, но обычно на этом поток информации останавливается.Стремясь восполнить пробел и перенести все местные климатические данные в Интернет, [Джонатан Даймонд] решил перепроектировать работу своей метеостанции.
Первая фаза этого проекта включала приемник RTL-SDR, GNURadio и немного Python. [Джонатан] смог зафиксировать сигнал и собрать воедино пакеты данных, в которых сообщались такие переменные, как температура, скорость ветра и осадки. Каждый из них сам по себе представлял собой небольшую головоломку, и, в конце концов, есть еще несколько кусочков, которые он не совсем понял.Но у него по крайней мере было достаточно, чтобы перейти к следующему шагу.
Врезка в радиомодуль.Теперь он мог бы вытащить данные прямо из эфира с помощью своего RTL-SDR. Но, стремясь поднять свои навыки на новый уровень, [Джонатан] решил открыть базовую станцию и изолировать ее приемник. Поскольку он уже декодировал пакеты на стороне RF, он точно знал, что искал, с помощью своего осциллографа и логического анализатора. Как только он подключился к каналу, исходящему от радио, последним шагом было написание кода для ESP8266, который мог прослушивать линию, интерпретировать пакеты данных и передавать полученные переменные по сети.
В этом случае [Джонатан] решил направить все данные в Weather Underground с помощью API персональной метеостанции. Это не только позволило ему просматривать данные через их веб-интерфейс и приложение для смартфонов, но и без дополнительной оплаты добавило их технологию гиперлокального прогнозирования. Если вы не заинтересованы в том, чтобы делиться своей информацией с общественностью, было бы тривиальным делом изменить прошивку, чтобы данные публиковались местному брокеру MQTT или чему-то еще, что плавает в вашей пресловутой лодке.
Если вам действительно повезло, ваша собственная метеостанция, возможно, уже имеет встроенный ESP8266 и выгружает все собранные данные в последовательный порт. Но если нет, такие проекты, как этот, в которых разбирается, как реконструировать беспроводной сигнал, могут стать отличным источником вдохновения и рекомендаций, если вы решите попробовать взломать код.
ESP8266 Метеостанция
Найдите ниже: —
Arduino: 1.8.9 (Windows 7), плата: «NodeMCU 1.0 (модуль ESP-12E), 80 МГц, флэш, отключено, 4 МБ (без SPIFFS), v2 Нижняя память, отключено, нет, только эскиз, 115200» "C: \ Users \ qsde \ AppData \ Local \ Temp \ arduino_build_461485 \ sketch \ WeatherStationDemo.Для "JsonListener.h" найдено несколько библиотек. Используется: C: \ Users \ qsde \ Documents \ Arduino \ libraries \ JsonListener Не используется: C: \ Users \ qsde \ Documents \ Arduino \ libraries \ Json_Streaming_Parser Для "SSD1306Wire.h" найдено несколько библиотек. Используется: C: \ Users \ qsde \ Documents \ Arduino \ libraries \ esp8266-oled-ssd1306-master Не используется: C: \ Users \ qsde \ Documents \ Arduino \ libraries \ ESP8266_and_ESP32_Oled_Driver_for_SSD1306_display-4.0.0 Использование библиотеки ESP8266_Weather_Station в версии 1.6.0 в папке: C: \ Users \ qsde \ Documents \ Arduino \ libraries \ ESP8266_Weather_Station Использование библиотеки ESP8266WiFi версии 1.0 в папке: C: \ Users \ qsde \ AppData \ Local \ Arduino15 \ packages \ esp8266 \ hardware \ esp8266 \ 2.5.0 \ libraries \ ESP8266WiFi Использование библиотеки ESP8266HTTPClient версии 1.2 в папке: C: \ Users \ qsde \ AppData \ Local \ Arduino15 \ packages \ esp8266 \ hardware \ esp8266 \ 2.5.0 \ libraries \ ESP8266HTTPClient Использование библиотеки JsonListener в папке: C: \ Users \ qsde \ Documents \ Arduino \ libraries \ JsonListener (legacy) Использование библиотеки esp8266-oled-ssd1306-master в версии 4.0.0 в папке: C: \ Users \ qsde \ Documents \ Arduino \ libraries \ esp8266-oled-ssd1306-master Использование библиотеки Wire версии 1.0 в папке: C: \ Users \ qsde \ AppData \ Local \ Arduino15 \ packages \ esp8266 \ hardware \ esp8266 \ 2.5.0 \ libraries \ Wire Использование библиотеки Json_Streaming_Parser версии 1.0.5 в папке: C: \ Users \ qsde \ Documents \ Arduino \ libraries \ Json_Streaming_Parser статус выхода 1 Ошибка компиляции для платы NodeMCU 1.0 (модуль ESP-12E).Комплект метеостанции
Aoqdqdqd® esp8266 с датчиком освещенности 0.96 дисплей для arduino ide iot starter Продажа
Описание:
Метеостанция использует ESP8266-12E для получения данных из Интернета: время города, данные о погоде и прогноз на ближайшие 3 дня, прокрутка по SSD1306 OLED-дисплей; устройство может переключаться на отображение данных из любого города мира — возможно, там живут ваши родственники или друзья.
Устройство использует датчики DHT11, BMP180, Bh2750FVI для сбора данных о температуре, влажности, атмосферном давлении и освещенности.Метеостанция считывает данные в помещении через датчик каждые 5 секунд и загружает их в Интернет каждые 60 секунд. Вы можете видеть графики данных в реальном времени со своего телефона или компьютера. Конечно, вы можете изменить код для реализации различных функций
ESP8266: Микросхема CP2102 внутри, Micro USB, 4 МБ флэш-памяти, полный порт ввода-вывода и беспроводная связь 802.11, поддерживаемая платформой IOT.
Датчик DHT11: цифровой выходной сигнал с откалиброванным комбинированным датчиком температуры и влажности. Простой протокол связи значительно снижает затраты на программирование.
BMP180: высокоточный, компактный датчик давления со сверхмалым энергопотреблением 3 мкА.Его превосходная производительность, абсолютная точность самой низкой может достигать 0,03 гПа. Может напрямую через шину I2C, соединенную с различными микропроцессорами. Диапазон давления: 300 ~ 1100 гПа.
Bh2750FVI: Цифровой датчик интенсивности света. Прямой цифровой выход, сложные вычисления опущены, без калибровки.
OLED-желтый синий дисплей: 0,96 дюйма SSD1306 128X64 Желтый и синий OLED-дисплей с последовательным интерфейсом I2C IIC SPI
Результат:
следующие 3 дня в любом городе мира
2) Регулярное считывание данных о текущей температуре и влажности в помещении
3) Регулярное считывание данных об атмосферном давлении и интенсивности света
4) Загрузка температуры, влажности, атмосферного давления и интенсивности данных об освещении, чтобы говорить о вещах.com через равные промежутки времени
5) Просматривайте прогноз погоды на OLED-дисплее и просматривайте карту мониторинга окружающей среды на сайте thingspeak.com
Шаг руководства:
Обзор : В этом руководстве описывается, как сделать миниатюрную метеостанцию с помощью IDE
Шаг 1 : Установите USB-to-Serial
Шаг 2: Установите IDE для ESP8266
Шаг 3: Запись прошивки на ESP8266
Шаг 4: Подключение компонентов
Шаг 5: Зарегистрируйте OpenWeathermap, thingspeak new account
Шаг 6: Импортируйте WeatherStation код в IDE
Шаг 7: Добавить библиотеку
Шаг 8: Изменить файл WeatherStation.ino
Шаг 9: Установите плату и порт снова
Шаг 10: Запишите код на ESP8266
Шаг 11: Результат
В пакет включено:
1 x ESP8266-12E
1 x DHT11
1 x BMP180
1 x Bh2750FVI
1 x OLED-дисплей
1 x USB-кабель
2 x макетные платы
20 x Dupont Cable
ESP8266 Weather Widget V2.0 — Поделиться проектом
Добро пожаловать в мой новый проект Weather Widget.Ранее я публиковал статью о виджете погоды, в котором для отображения параметров погоды используется OLED-дисплей с диагональю 0,96 дюйма. Основная проблема в более ранней версии заключалась в том, что дисплей очень маленький по размеру, поэтому вам нужно подойти к нему очень близко. для чтения параметров.Поэтому я всегда думал о том, чтобы обновить его до большего цветного дисплея с красивым корпусом, напечатанным на 3D-принтере.
В этом посте я покажу вам, как сделать виджет погоды с помощью ESP8266 и 2.8 «сенсорный экран.Устройство получает локализованную информацию о погоде с https://openweathermap.org/ по WLAN и отображает ее в модуле Display.
Посетите мой веб-сайт, чтобы увидеть больше интересных проектов: https://www.opengreenenergy.com/
Виджет отображает следующее:
1. Текущее время с датой
2. Информация о погоде за текущий день, такая как температура, давление, Влажность и осадки.
3. Прогнозирование будущего на 7 дней
Кредит:
Я хотел бы поблагодарить моего друга Дэни Эйххорна, который выполнил все части программирования.Он регулярно обновляет программное обеспечение на своей странице Github, добавляя новые функции. Вы можете посетить SquixTechBlog, чтобы увидеть больше проектов на ESP8266.
Подготовьте провода:Мой план — разместить схему отображения погоды внутри корпуса, напечатанного на 3D-принтере. Но корпус, который я собираюсь использовать, очень компактен, и внутри корпуса мало места для размещения платы Wemos и соединительных проводов.
Итак, нам нужно выбрать тонкие провода для соединения между дисплеем и платой Wemos.Здесь я выбрал одножильные провода 30 AWG.
Отрежьте 14 проводов одинаковой длины кусачками.
Затем снимите изоляцию с проводов с помощью инструмента для зачистки проводов.
Припаяйте провода к дисплею: На TFT-дисплее предварительно припаяны прямые контакты заголовка для крепления к макетной плате или любому другому экрану. У вас есть два варианта
1. Отпаяйте штыри разъема от печатной платы, а затем припаяйте провода к контактным площадкам для пайки
2.Непосредственно припаять к штырям заголовка
Я предпочитаю второй, он намного проще и требует меньше усилий и навыков.
Перед пайкой нанесите небольшое количество паяльного флюса на все контакты разъема. Затем залудите контакты заголовка, нанеся небольшое количество припоя на жало паяльника. Требуется лужение, так как оно упрощает процесс пайки и обеспечивает прочное соединение между проводом и штырями разъема.
Наконец, припаяйте провода ко всем контактам разъема, как показано на рисунке выше.
Корпус, напечатанный на 3D-принтере:
Я изменил корпус в Autodesk Fusion 360, взяв ссылку на хорошую модель, доступную в Thingiverse и разработанную smily77. Размеры всех компонентов измеряются штангенциркулем, затем они учитывались при проектировании.
Корпус состоит из 3 частей:
1. Корпус
2. Задняя крышка
3. Нижняя крышка
Загрузите файлы STL с Thingiverse
Я использовал свой 3D-принтер Creality CR-10 Mini и 1.Белая нить PLA 75 мм для печати деталей.
Мои настройки:
Скорость печати: 60 мм / с
Высота слоя: 0,2 мм
Плотность заполнения: 20%
Температура экструдера: 210 ° C
Температура слоя: 60 ° C
Установите дисплей :
На этом этапе у вас есть два варианта
1. Сначала установите дисплей в корпус, затем припаяйте провода к плате Wemos
2. Сначала выполните проводку между дисплеем и платой Wemos, затем установите их в корпус позже.
Я показал оба способа на фотографиях выше. Сами изображения говорят сами за себя.
Мое личное предпочтение — второй вариант.
Схема подключения:
Схема подключения очень проста. Вы должны соединить контакты модуля дисплея TFT (ILI9341) с контактами Wemos в соответствии со схемой. Принципиальная схема показана выше. Вы также можете следовать следующему назначению контактов
TFT-дисплей -> Wemos (ESP8266)
VIN -> 3.3V
GND -> GND
CS -> D1
RESET -> RST
DC -> D2
SDI -> D7
SCK — D5
LED -> D8
SDO7 -> D6 9000 T_CLK -> D5
T_CS -> D3
T_DIN -> D7
T_DO -> D6
T_IRQ -> D4
Создайте схему:
Сначала загрузите принципиальную схему, затем распечатайте ее. Это действительно удобно при пайке, а также вы сэкономите много времени.Самое главное, любые ошибки в подключении могут повредить дисплейный модуль или плату Wemos. Во время создания этого проекта,
, у меня перегорела ИС сенсорного экрана дисплея из-за какой-то ошибки в подключении.
Подготовьте Arduino IDE для платы ESP8266:
Модуль ESP8266 не является частью Arduino-IDE, поэтому мы должны сначала установить его. Вы можете легко установить его, выполнив следующие действия:
1. Запустите Arduino IDE и откройте окно настроек.
2. Введите https://arduino.esp8266.com/stable/package_esp8266com_index.json в поле File> Preferences> Additional Boards Manager URLs в среде Arduino IDE. Вы можете добавить несколько URL-адресов, разделяя их запятыми.
3. Закройте это окно, нажав кнопку OK. Откройте диспетчер плат из меню «Инструменты»> «Плата» и выберите правильную плату ESP8266.
4. Теперь вы можете выбрать LOLIN (WEMOS) D1 R2 & mini. Установите частоту процессора на 80 МГц, размер флэш-памяти на «4 МБ (FS: 3 МБ OTA: ~ 512 КБ)» и COM-порт.
Загрузите код и библиотеки:
Вы можете загрузить код Arduino и вспомогательные библиотеки по следующим ссылкам.
Код Arduino:
https://github.com/ThingPulse/esp8266-weather-station-color
Библиотеки:
1. Mini Grafx от Daniel Eichhorn
2. ESP8266 WeatherStorn by Daniel Eichhorn
3. Парсер потоковой передачи Json от Дэниела Эйххорна
4. ThingPulse XPT2046 Touch от ThingPulse (созданный Полом Стоффрегеном), если вы ранее установили оригинальный сенсорный экран XPT2046_Touchscreen, вам необходимо удалить его!
После загрузки библиотеки распакуйте ее и установите с помощью Менеджера библиотек Arduino в
Sketch> Включить библиотеку> Управление библиотеками…
Получить ключ API OpenWeatherMap:
Данные метеостанции в реальном времени получены с веб-сайта OpenWeatherMap. Итак, вам нужно получить ключ API OpenWeatherMap.
Теперь вы можете выбрать бесплатный тариф в первом столбце. Подать заявку на бесплатный план можно бесплатно, чего более чем достаточно для наших требований. Единственным ограничением использования бесплатного плана является то, что вы ограничены 60 звонками в минуту.
Теперь нажмите «Получить ключ API», затем создайте новую учетную запись, указав свои учетные данные.
Запишите ключ API, который потребуется в нашем коде на следующем шаге.
Загрузите программное обеспечение:
После настройки Arduino IDE и установки всех библиотек мы можем перейти к загрузке кода на плату ESP8266 (Wemos D1 Mini Pro или любую другую плату)
Во-первых, вы должны разархивируйте код, загруженный на предыдущем шаге, а затем сохраните его где-нибудь на своем ПК или ноутбуке. Удалите слово master из имени папки, окончательное имя будет «esp8266-weather-station-color»
. Теперь откройте папку и щелкните «esp8266-weather-station-color».ino «
На одной из вкладок среда IDE открыла settings.h. Просмотрите файл и настройте две части параметров конфигурации. Все они задокументированы непосредственно внутри файла. Все должно быть самоочевидным. Самое главное, вы будете необходимо установить ключ API OpenWeatherMap, полученный на предыдущем шаге.
Теперь вы готовы загрузить код, просто нажмите кнопку со стрелкой для загрузки.
Установите крышки
После установки блока дисплея и печатную плату, мы можем переместить корпус в коробку, используя две крышки.Корпус спроектирован с очень малым зазором, поэтому вам не понадобится клей или винт, чтобы удерживать крышки.
Совместите крышку с прорезью в корпусе и нажмите на нее со всех сторон, готово. Меньшая крышка предназначена для базовой части, а большая — для задней части дисплея.
Тестирование
Если вы успешно загрузили код в ESP8266, вы сразу же заметите отображение на первой странице, выполнив поиск в сети WiFi для подключения.После подключения устройства к WiFi-роутеру оно обновит данные о времени и погоде из Интернета.
Теперь вы сможете видеть всю информацию о погоде вместе со всеми другими параметрами на TFT-дисплее. Вы можете переключаться между разными страницами, используя стилус или касаясь пальцем.
Примечание. Вначале вам будет предложено прикоснуться к экрану для калибровки сенсорного экрана.
Я очень доволен результатом этого маленького гаджета.Вы можете подарить этот гаджет кому-нибудь по любому поводу.