README.md

Монитор погоды на электронной бумаге

plaform board license version status date

  • Отображает текущую погоду и почасовой прогноз погоды на 48 часов с OpenWeatheMap.org.
  • Используется готовый модуль LilyGo EPD 4.7“, с контроллером ESP32 и 4.7“ E-paper дисплеем 540 х 960 точек.
  • Подключается к интернету через WiFi, период обновления данных 30 минут, время автономной работы около 90 суток.
  • Ориентирован для тех кто поводит время на открытом воздухе: прогулки, спорт, путешествия, отдых на природе.

Мотивация

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

Особенности:

  • Единая шкала времени для таблицы и графиков.
  • График почасового прогноза температуры воздуха и точки росы.
  • График почасового прогноза атмосферного давления.
  • Столбиковая диаграмма почасового уровня и вероятности осадков.
  • Сравнение средней температуры за текущие и предыдущие сутки.
  • Сравнение текущего атмосферного давления и среднего за последние 8 часов.
  • Открытый исходный код имеет большой потенциал для модернизации.

Распространяется под MIT License. Для тех кто не читал: можете распоряжаться исходным кодом на свое усмотрение, но оставляйте упоминание об авторе и первоисточнике.

C++ не мой родной язык, поэтому прошу снисхождения за код. Конструктивные замечания и предложения принимаются.

Если на основе этого проекта у вас получилось что-то свое, поделитесь пожалуйста своими идеями, пришлите ссылочку.

Экран

Экран визуально разделен на две зоны:

  • Слева: информация о текущем состоянии погоды и астрономические данные.
  • Справа: почасовой прогноз погоды на 2-е суток в виде таблицы и графиков с единой шкалой времени.

face-1

Текущая погода

  • Дата и время получения погоды
  • Пиктограмма погоды
    • Величина осадков в течении ближайшего часа
    • Текущая влажность
    • Облачность
    • Видимость
  • Температура текущая
    • Максимальная температура сегодня
    • Минимальная температура сегодня
    • Изменение средней температуры за текущие и предыдущие сутки (на сколько сегодня теплее или холоднее чем вчера)
    • Точка росы текущее значение
  • Ветер
    • Направление
    • Скорость
    • Порывы
  • Давление
    • Текущее
    • Сравнение текущего со средним значением за последние 8 часов (на сколько изменилось за 8 часов)
  • Астрономические данные
    • Время восхода и захода Солнца
    • Возраст луны
    • Процент светимости луны в предстоящую полночь (на 24:00). Стрелка и знаки ± показывает растёт или убывает луна.
    • Время восхода и захода Луны

Прогноз погоды на 48 часов

Прогноз погоды скомпонован в виде таблицы и графиков с единой шкалой времени.

Таблица прогноза

Таблица размерностью 8 колонок на 8 строк. Каждая колонка соответствует 6 часам прогноза, и того 48 часов.

Описание строк таблицы:

  • Сокращенное название дня недели и время прогноза. Время + 3 часа от начала прогноза каждой колонки.
  • Пиктограмма погоды. Из почасового прогноза выбирается преобладающая пиктограмма.
  • Пиктограмма осадков. Зонт или снежинка в случае если снега больше чем дождя. Суммарный уровень всех осадков за 6 часов и максимальная вероятность осадков в % за 6 часов.
  • Температура максимальная и минимальная за 6 часов. Если минимальная и максимальная температура совпадают, то выводится одно значение.
  • Направление ветра в виде стрелки-пиктограммы. Средняя скорость ветра за 6 часов и максимальная скорость порывов ветра.
  • Уровень облачности в %. Вычисляется среднее значение за 6 часов.
  • Видимость. Выбирается минимальное значение за 6 часов.
  • Относительная влажность в %. Вычисляется среднее значение за 6 часов.
Графики прогноза
  • График температуры окружающего воздуха и точки росы.

  • График атмосферного давления и столбиковая диаграмма уровня осадков на каждый час. Вероятность осадков кодируется яркостью столбика.

Для зимнего периода нет однозначного перевода уровня осадков из мм водного столба в уровень выпавшего снега, на это влияет многих различных факторов, но приблизительно можно считать что 1 мм осадков это примерно 1 — 1,5 см снега.

Кнопки

На плате контроллера имеется 5 кнопок. Слева на право:

  • Reset - аппаратный сброс;
  • D - не используется, её невозможно задействовать в проекте;
  • C - двойным нажатием листает страницы “Weather”, “Logo”, “Icons” (если не в режиме сна);
  • B - пока ничего не делает;
  • A - пробуждает контроллер из глубокого сна, долгий клик (~2c) инициирует запрос на получение погоды.

После аппаратного сброса Reset или пробуждения по кнопке A контроллер ожидает нажатия кнопок пользователем, если в течении 30 секунд нажатий не происходило, устройство переходит в режим глубокого сна до следующего сеанса получения и отображения данных о погоде.

Сборка проекта

Проект собирался с следующих средах с установленной поддержкой ESP32:

  • Arduino IDE
  • Visual Strudio Code & PlatformIO

Инструкция как установить поддержку ESP32 используя Arduino IDE или PlatformIO

Настройка Arduino IDE для ESP32

Библиотеки

Что нужно настроить

  • Переименовать файл Private.sample.h в Private.h

Внести в Private.h следующие изменения:

  • Задать SSID и пароль своего WiFi ;
  • Задать широту и долготу местности;
  • Рекомендуется получить собственный ключ API, зарегистрировав бесплатную учетную запись разработчик по ссылке. Ключ указанный в файле найден в интернете, он может быть аннулирован в любое время либо можно столкнуться с ограничением лимита запросов.

Можно изменить единицы измерения в файлах Lang.h и Format.c

Используемые шрифты

Проблемы

  • Кнопка A не генерирует события долгого нажатия.

Планы

  • Более точное соответствие иконок и погодных условий.
  • Подключить датчики температуры и влажности в помещении.

Лицензия

Публикуется на условии MIT license.

Благодарности

История изменений

Версия 1.2b 2023-09-22

  • Частичная компенсация ухода времени глубокого сна.
  • Исправление расчета уровня заряда аккумулятора.

Версия 1.1b 2022-09-14

  • Отображение времени восхода и захода Луны.
  • Исправлен азимут стрелки направления ветра.
  • Информация о часовом поясе получается из прогноза погоды.

Версия 1.0b 2022-08-30

Первая публичная версия

Описание

Интернет погодная станция с экраном на электронных чернилах с почасовым прогнозом погоды на 2 суток с OpenWeaterMap.org на готовом модуле LilyGo EPD 4.7“ E-paper ESP32 #arduino #ESP32 #Weather #WeatherStation #E-paper #E-ink #LilyGo

Конвейеры
0 успешных
0 с ошибкой