ESP8266:Примеры/Погодная станция на базе ESP8266, оснащенная OLED-дисплеем
Данный пример больше не актуален, ввиду того, что сервис Wundeground закрыл бесплатный доступ к своему API. |
Погодная станция на базе ESP8266, оснащенная OLED-дисплеем
В этом руководстве мы расскажем, как собрать на базе ESP8266 погодную станцию, оснащенную OLED-дисплеем.
Необходимое оборудование
- ESP8266-плата WeMos D1 Mini - 1шт.;
- OLED-дисплей SSD1309 с шиной I2C - 1шт.;
- Провода перемычки "мама-мама";
Библиотека/фреймворк для погодной станции на базе ESP8266
На GitHub есть фреймворк, упрощающий создание погодной станции на базе ESP8266. Его также можно найти в IDE Arduino – просто кликните на «Скетч» > «Подключить библиотеку» > «Управлять библиотеками...» (Sketch > Include Library > Manage Libraries...).
Затем поищите по запросу «esp8266 weather station» и установите библиотеку, нажав на кнопку «Установка» (Install). Эту библиотеку также можно загрузить отсюда и установить вручную.
Вам также нужно будет установить еще две библиотеки. Сначала установите «json-streaming-parser» (ее ZIP-архив можно скачать отсюда).
После этого установите библиотеку «esp8266 oled ssd1306», проделав следующее:
- Кликните тут, чтобы скачать ZIP-архив библиотеки. Он должен скачаться в папку «Загрузки»;
- Распакуйте его. У вас должна получиться папка «esp8266-oled-ssd1306-master»;
- Переименуйте ее на «esp8266_oled_ssd1306»;
- Переместите эту папку в папку «libraries» (туда устанавливаются библиотеки IDE Arduino), которая находится внутри папки, куда установлена IDE Arduino;
- Перезапустите IDE Arduino;
Сервис Wundeground
Библиотека «esp8266 weather station» использует сервис под названием Wundeground, у которого есть API, позволяющий запросить данные о погоде в вашем регионе. Но для этого вам нужно будет создать аккаунт на сайте Wunderground.com (для этого нажмите по гиперссылке «Join» в правом верхнем углу экрана и следуйте дальнейшим инструкциям).
Создав аккаунт, перейдите в нижнюю часть страницы и кликните по ссылке «Weather API».
Кликните по вкладке Pricing и выберите бесплатный тариф. Заполните форму необходимыми данными и нажмите на кнопку Purchase Key.
Их бесплатный тариф идеально подходит для того, что мы будем делать в нашем проекте. Получив API-ключ, скопируйте его в безопасное место, т.к. уже совсем скоро он нам понадобится.
Демо-скетч для погодной станции
В комплекте с библиотекой «esp8266 weather station» идет несколько скетчей-примеров, один из которых пригодится для нашего проекта. Кликните в IDE Arduino на «Файл» > «Примеры» > «ESP8266 Weather Station» > «WeatherStationDemo» (File > Examples > ESP8266 Weather Station» > WeatherStationDemo).
Этот скетч будет показывать время, дату, прогноз погоды, наружную температуру и влажность, считанные из API Wundeground.
Мы не будем разбирать, что делается во всех фрагментах этого скетча – т.к. это выходит за пределы нашего руководства – и пройдемся лишь по самому главному.
Настройки WiFi
В скетч нужно будет вписать SSID и пароль от своей WiFi-сети, чтобы ESP8266 могла подключиться к вашему роутеру.
// WIFI
const char* WIFI_SSID = "yourssid";
const char* WIFI_PWD = "yourpassw0rd";
Настройки Wundeground
Нам также нужно будет задать настройки для Wundeground, чтобы ESP8266 могла считывать данные прямо из API сервиса. Впишите в эти строчки свой уникальный API-ключ, используемый язык, 2-буквенный код страны и название города.
// Настройки Wundeground:
const boolean IS_METRIC = true;
const String WUNDERGRROUND_API_KEY = "API_KEY";
const String WUNDERGRROUND_LANGUAGE = "DL";
const String WUNDERGROUND_COUNTRY = "CH";
const String WUNDERGROUND_CITY = "Zurich";
Настройки Thingspeak
Настройки Thingspeak можно оставить без изменений, т.к. они не используются.
// Настройки Thingspeak:
const String THINGSPEAK_CHANNEL_ID = "67284";
const String THINGSPEAK_API_READ_KEY = "L2VIW20QVNZJBLAK";
Загружаем код на ESP8266
Отредактировав скетч, загрузите его на ESP8266. Но перед этим не забудьте выбрать плату «WeMos D1 R2 & Mini» и правильный COM-порт.
Схема
Эта цепь собирается очень просто. Никакой пайки не нужно – вам понадобятся лишь провода-перемычки типа «мама-мама».
Вам нужно подключить друг к другу следующие контакты: