API для получения прогноза погоды на базе ESP8266 для любительских погодных станций

Данное API представляет собой набор простых AT команд для получения прогноза погоды с https://openweathermap.org/, текущей даты-времени с https://www.nist.gov/, а также отправки данных с погодных датчиков на проект “Народный мониторинг” https://narodmon.ru/.

Основное назначение API - использование в любительских микропроцессорных конструкциях погодных станций посредством UART диалога на скорости 38400 бит в секунду.

Для тестирования работы нам потребуется:
  1. Mодуль на базе ESP8266-E12 (у меня это LoLin NodeMcu v.3).
  2. Регистрация на ресурсe https://openweathermap.org/ для получения прогноза погоды.
  3. Регистрация на https://narodmon.ru/ для записи показаний датчиков.
Скачайте файл прошивки погодного API для модуля ESP8266-E12. Используя программу NodeMcu firmware programmer (находится в архиве) залейте программу в модуль. Для подключения к ПК модуля LoLin NodeMcu v.3 вам может пригодиться драйвер виртуального COM порта.



Для проверки результата прошивки подключите плату к ПК, настройте программу терминала на скорость передачи данных 38400 бит в секунду, подключитесь к отладочной плате и дайте команду “VERSION=?”. В ответ вы должны получить версию прошивки. У меня это “20200511”.


Зарегистрируйтесь на https://openweathermap.org/. После регистрации вам выдадут API KEY для получения прогноза погоды. Данный ключ позволяет получать прогноз погоды на ближайшее время до 60 раз в минуту, что вполне достаточно для любительских устройств.



Рекомендую сразу же подсмотреть правильное написание своего города и страны: зайдите на главную страницу ресурса и попробуйте посмотреть прогноз погоды для своего города:



Для передачи данных на “Народный мониторинг” вам потребуется регистрация на сайте https://narodmon.ru/, а также информация о MAC адресе устройства связи (см. нижне, как это сделать).

Список поддерживаемых команд и пример диалога для получения прогноза погоды с https://openweathermap.org/ и отправки данных на https://narodmon.ru/

// Версия прошивки
VERSION=?
VERSION=20200511

// MAC адрес устройства связи
MAC=?
MAC=000000000000

// Подключиться к сети с именем

SSID=MY_WIFI_NET
SSID=OK

// Подключиться к сети с паролем
PSWD=MY_PASSWORD_FOR_WIFI_NET
PSWD=OK

// Город для получения прогноза погоды
CITY=BREST
CITY=OK

// Страна для получения прогноза погоды
COUNTRY=BY
COUNTRY=OK

// API KEY ресурса https://openweathermap.org/
APIKEY=1ae4d8b2e6b7873eca21
APIKEY=OK

// Режим отображения данных (0 - краткий, 1 - полный)
IMODE=1
IMODE=OK

// Получить прогноз погоды на ближайшие 3 часа
FORECAST=1
FORECAST1=03^Clouds^+23.50^747.75^2020-05-11 15:00:00^scattered clouds^

// Задержка в секундах при выводе результата некоторых команд
DELAY=2
DELAY=OK

// Получить прогноз погоды на ближайшие 3 и 6 часов
FORECAST=1-2
FORECAST1=03^Clouds^+23.50^747.75^2020-05-11 15:00:00^scattered clouds^
FORECAST2=10^Rain^+18.90^746.25^2020-05-11 18:00:00^light rain^

// Получить прогноз погоды на ближайшие 3, 6, 9, 12 часов
FORECAST=1-4
FORECAST1=03^Clouds^+23.50^747.75^2020-05-11 15:00:00^scattered clouds^
FORECAST2=10^Rain^+18.90^746.25^2020-05-11 18:00:00^light rain^
FORECAST3=10^Rain^+15.90^745.50^2020-05-11 21:00:00^light rain^
FORECAST4=10^Rain^+12.90^744.75^2020-05-12 00:00:00^light rain^

// Получить текущую погоду
WEATHER=?
WEATHER=04^Clouds^+25.00^750.00^^broken clouds^

// Отправить данные на ресурс https://narodmon.ru/
NARODMON=+10.00^+15.60^760.50^
NARODMON=OK

// Временная зона
TIMEZONE=3
TIMEZONE=OK

// Получение текущего времени с https://www.nist.gov/

TIME=?
TIME=11:44:39

// Получение текущей даты времени с https://www.nist.gov/
DATETIME=?
DATETIME=Mon May 11 11:46:20 2020