ESP8266:Примеры/Погодная станция на базе ESP8266, оснащенная OLED-дисплеем

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Pixel Art Mini Meow Animated.gif Данный пример больше не актуален, ввиду того, что сервис Wundeground закрыл бесплатный доступ к своему API.


Погодная станция на базе ESP8266, оснащенная OLED-дисплеем

В этом руководстве мы расскажем, как собрать на базе ESP8266 погодную станцию, оснащенную OLED-дисплеем.

Необходимое оборудование

Библиотека/фреймворк для погодной станции на базе ESP8266

На GitHub есть фреймворк, упрощающий создание погодной станции на базе ESP8266. Его также можно найти в IDE Arduino – просто кликните на «Скетч» > «Подключить библиотеку» > «Управлять библиотеками...» (Sketch > Include Library > Manage Libraries...).

Затем поищите по запросу «esp8266 weather station» и установите библиотеку, нажав на кнопку «Установка» (Install). Эту библиотеку также можно загрузить отсюда и установить вручную.

Esp8266 weather station library 1.PNG

Вам также нужно будет установить еще две библиотеки. Сначала установите «json-streaming-parser» (ее ZIP-архив можно скачать отсюда).

Esp8266 json streaming parser library 1.PNG

После этого установите библиотеку «esp8266 oled ssd1306», проделав следующее:

  1. Кликните тут, чтобы скачать ZIP-архив библиотеки. Он должен скачаться в папку «Загрузки»;
  2. Распакуйте его. У вас должна получиться папка «esp8266-oled-ssd1306-master»;
  3. Переименуйте ее на «esp8266_oled_ssd1306»;
  4. Переместите эту папку в папку «libraries» (туда устанавливаются библиотеки IDE Arduino), которая находится внутри папки, куда установлена IDE Arduino;
  5. Перезапустите IDE Arduino;

Сервис Wundeground

Библиотека «esp8266 weather station» использует сервис под названием Wundeground, у которого есть API, позволяющий запросить данные о погоде в вашем регионе. Но для этого вам нужно будет создать аккаунт на сайте Wunderground.com (для этого нажмите по гиперссылке «Join» в правом верхнем углу экрана и следуйте дальнейшим инструкциям).

Wundeground weather main page 1.PNG

Создав аккаунт, перейдите в нижнюю часть страницы и кликните по ссылке «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 могла подключиться к вашему роутеру.

1 // WIFI
2 const char* WIFI_SSID = "yourssid";
3 const char* WIFI_PWD = "yourpassw0rd";

Настройки Wundeground

Нам также нужно будет задать настройки для Wundeground, чтобы ESP8266 могла считывать данные прямо из API сервиса. Впишите в эти строчки свой уникальный API-ключ, используемый язык, 2-буквенный код страны и название города.

1 // Настройки Wundeground:
2 const boolean IS_METRIC = true;
3 const String WUNDERGRROUND_API_KEY = "API_KEY";
4 const String WUNDERGRROUND_LANGUAGE = "DL";
5 const String WUNDERGROUND_COUNTRY = "CH";
6 const String WUNDERGROUND_CITY = "Zurich";

Настройки Thingspeak

Настройки Thingspeak можно оставить без изменений, т.к. они не используются.

1 // Настройки Thingspeak:
2 const String THINGSPEAK_CHANNEL_ID = "67284";
3 const String THINGSPEAK_API_READ_KEY = "L2VIW20QVNZJBLAK";

Загружаем код на ESP8266

Отредактировав скетч, загрузите его на ESP8266. Но перед этим не забудьте выбрать плату «WeMos D1 R2 & Mini» и правильный COM-порт.

Схема

Эта цепь собирается очень просто. Никакой пайки не нужно – вам понадобятся лишь провода-перемычки типа «мама-мама».

Вам нужно подключить друг к другу следующие контакты:

Wemos mini esp8266 weather station oled 1.PNG

См.также

Внешние ссылки