Найти в Дзене
Электроника, ESP32, Arduino

Яндек.Погода настенное табло управляемое жестами

Оглавление

У меня устройство висит в коридоре у входной двери и его главное предназначение махнув рядом с ним рукой узнать:

  • как сегодня одеваться?
  • тащить ли с собой зонтик?
  • какая погода предполагается завтра?

В верхней части экрана на 1-й странице отображаются:

Яндекс Погода
Яндекс Погода
  • дата, время, день недели;
  • температура воздуха на улице;
  • время восхода и заката солнца;
  • температура воздуха и влажность в помещении (под закатом);

Нижняя часть экрана разбита на 4 части и отображает прогноз погоды на текущий день. УТРО/ДЕНЬ/ВЕЧЕР/НОЧЬ. Чтобы одеться по погоде этих данных необходимо и достаточно.

ЛИЧНО Я:

  • данные по закату солнца я использую из тех соображений, что живу в таком месте где он необычайно красив и стараюсь его не пропускать.
  • Если температура в помещении ниже чем температура на улице - это повод закрыть окна и включить кондиционер.

В самоделку каждый вкладывает тот функционал который нужен именно ему, и если что-то не нужно именно Вам это еще не значит что это 100% больше ни кому не нужно. Код открыт - можете вытаскивать любые нужные именно Вам данные.

-3

Махнув рукой слева на право можно перейти на вторую страницу. Прогноз погоды на сегодня уезжает в верхнюю часть экрана, в нижней части экрана отображается прогноз погоды на завтра. (можно получить общее представление похолодает завтра или потеплеет)

-4

Градации такие же: УТРО/ДЕНЬ/ВЕЧЕР/НОЧЬ. Бесплатный тариф от от Яндекс не отдает данные по прогнозу более чем на 1 день вперед, а поскольку ночь начинается после 00:00 в последнем квадратике я просто нарисовал логотип Яндекса.

По факту на этот дисплей выводится информация с этой веб-страницы

https://yandex.ru/pogoda/ru?lat=57.62656021&lon=39.89381409&utm_source=serp
https://yandex.ru/pogoda/ru?lat=57.62656021&lon=39.89381409&utm_source=serp

Махнув рукой справа на лево возврат на первую страницу. Если еще раз махнуть рукой в том-же направлении подсветка дисплея отключатся, а само устройство переводится в спящий режим.

Электрическая принципиальная схема

Прогноз погоды на ESP32
Прогноз погоды на ESP32

Проект выполнен на базе ESP32 WROOM DevKit v1. Дисплей монохромный 4.7" 240*128 на контроллере T6963C. Подсветкой дисплея управляет транзистор Q1. Потенциометр номиналом 10к предназначен для установки контрастности. К шине I2C подключены модуль распознавания жестов PAJ7620U2 и датчик температуры/влажности SHT3X. Схема и печатная плата были разработаны в бесплатной программе EasyEDA.

Печатная плата и корпус

-7

Плата односторонняя - была "шлепнута" утюгом.

-8
-9

Для экономии места ESP32 впаяна без PBS гнезд.

-10

Корпус выполнен из фанеры методом лазерной резки (в мастерской на заказ)

-11

И покрашен из баллончика белой акриловой краской.

-12

Датчик температуры вынесен за пределы корпуса (через PBS разъем)

-13

Для изготовления корпуса потребуются только эскизы верхней и нижней панелей:

-14
-15

Саму коробочку любая мастерская с удовольствием спроектирует и изготовит самостоятельно (допуск на конкретный лазер все равно рядовому юзеру неизвестен)

Если вы находитесь в Ярославле - рекомендую этих толковых ребят

VK | VK

Питание и энергопотребление

Ночью на дисплей никто не смотрит, поэтому на ночь устройство можно увести в спящий режим. Данные разных режимах при входном напряжения 5V:

  • подсветка выключена - 80mA ~ 0.4Вт;
  • подсветка включена - 120mA ~ 0.6Вт;
  • подсветка включена + Wi-Fi - 130mA ~ 0.6Вт;
  • подсветка включена + Wi-Fi(обмен данными) 170mA ~ 0.85Вт;
  • сон ESP32 и дисплей работают только датчики и обвес ESP32 - 32mA ~ 0.16Вт.

Устройство запитано телефонным кабелем 2*0.5 от 2А блока питания для смартфона.

-16

Периоды и источники обновления данных

После первого включения выдается страница диагностики:

-17

Дальше обновление данных происходит автоматически:

  • синхронизация времени с сервера NTP - один раз в сутки;
  • обновление температуры на улице - один раз в 5 минут;
  • запрос прогноза погоды с личного кабинета Яндекс - один раз в 2 часа;
  • датчик комнатной температуры (мигание точками) - один раз в секунду;

Интервалы отмеряются часами которые встроены в ESP32. Часы продолжают ходить и в спящем режиме - т.е. разбудив устройство утром, будут автоматически получены свежие данные о погоде.

Настройка прошивки

-18

В прошивке необходимо указать

Данные для подключения к сети Wi-Fi

Данные для подключения к личному кабинету Яндекс погода (для получения прогноза). Что это такое читаем тут.

Температура на улице запрашивается по инструкции от автора "Project A.L.T." - у него есть свой канал на Дзен

В ней можно прочитать как найти ID для GET запроса

https://yandex.com/time/sync.json?geo=16

Запрос работает без регистрации и СМС.

Насчет настройки получения времени с NTP серверов есть замечательная статья от автора K12 :: О ESP32 и не только

Код и все библиотеки для проекта качайте по этой ссылке

API_WEAHER_YA_V8_DZEN.zip

Оглавление канала доступно тут:

Всем удачи.