ESP, IoT Погодный виджет на esp8266

Погодный виджет на esp8266
Погодный виджет на esp8266 и светодиодной матрице

Описание
Виджет для отслеживания погоды
  • Основан на 32 битном микроконтроллере esp8266
  • Отладочная плата wemos d1 mini
  • Выводится на матрицу из адресных светодиодов
  • Берёт погоду с сервера и выводит соответствующий эффект
  • Не может подключиться – выводит радугу
  • Логи в Serial порт
Компоненты
  • Wemos d1 mini – купить в AliExpress, Giant4
  • Адресная светодиодная матрица – купить в AliExpress, Giant4
  • Адресная светодиодная лента – купить в AliExpress, Giant4
  • Макетная плата – купить в AliExpress
  • Блок Питания 5 вольт (3 ампера) – купить в AliExpress, Giant4
  • Штекер – купить в AliExpress – купить в AliExpress, Giant4
  • Провода папа-папа – купить в AliExpress
Схема

scheme.jpg

Прошивка
Прошивка написана в JetBrains CLion с плагином platformio, но вы можете использовать MS VS code
И нет, я не пират, использую Github Student Developer Pack

Скачать
  • Репозиторий прошивки на github: ссылка
  • Скачать актуальную версию прошивки: ссылка
Настройки в прошивке

Файл main.cpp
1648904619230.png


  • LED_PIN - пин, к которому подключена матрица. Писать номер GPIO пина из pinout на wemos d1 mini
  • WIDTH - ширина матрицы​
  • HEIGHT - высота матрицы​
  • VOLTS - вольты (5 вольт)​
  • MILLIAMPS - максимальный выдаваемый ток блока питания​
  • EFFECTS_PERIOD - мс, период обслуживания функций эффектов​
  • REQUESR_PERIOD - мс, период запроса погоды​
  • DEBUG - отладка в Serial порт​
Файл wifi.h

1648905004829.jpeg
  • APPID - API токен с openweathermap.org, регистрируетесь и в личном кабинете находите API TOKEN​
  • CITY - город (английский!)​
  • UNITS и LANG - не на что не влияют, я добавил для более простого развития проекта​
  • MAX_BAD_REQUESTS - кол-во неудачных запросов, после которых будет включен эффект радуги​
  • WIFI_SSID - имя сети wifi​
  • WIFI_PASS - пароль сети wifi​

Загрузка прошивки
Для загрузки вы можете использовать:
  • JetBrains CLion
  • Microsoft Visual Studio Code
  • Atom
Для любой IDE вам понадобится плагин platformio, я советую использовать VS code, т.к. там это сделать легче всего.
  • Скачиваем и устанавливаем VS code с официального сайта.
  • Скачиваем архив с проектом.
  • Идём в магазин плагинов и устанавливаем плагин platformio.
  • Открываем папку проекта в VS code и в файле platformio.ini на месте upload_port = “COMn” ставим свой порт, в который подключена плата
  • Нажимаем кнопку загрузить
  • Всё
Работа проекта
ESP запрашивает у сервера погоду и в зависимости от неё выводит на матрицу соответствующий эффект.
Например если получили погоду снег: то выводим падающие белые частицы
Если облака: то плывущие облака на синем фоне.
1648907191027.png
 
Изменено:

Комментарии

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
Немного описание как это все работает. Лента меняет цвет в зависимости от текущей погоды по данным сайта ?
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
Если сделать даже простенький вывод не в сериал, а на развернутый на той же esp web сервер , то вполне можно отвязаться от ПК.
 
25 Фев 2021
7
2
@Старик Похабыч,
Ну придётся делать буфер в который писать, и веб мордочка каждые несколько секунд запрашивала у есп, а есть ли у нас что то новенькое. И я делал сервер на esp, доступ к памяти (SPIFFS) там не очень удобный...

Да и вообще, логи не особо-то нужны. То есть совсем не нужны.
 
Изменено: