Авторизация
Регистрация

Напомнить пароль

WEB-метеостанция

Введение

Прошлой осенью, я поддался искушению и прикупил себе модуль с E-ink дисплеем LILYGO T5-4.7 для того что бы сделать на нём себе WEB-метеостанцию. Конечно, сначала я пошел по простому пути – начал искать готовые прошивки/исходники. Остановился на исходниках LilyGo-EPD-4-7-OWM-Weather-Display (ссылка).

В данной реализации меня привлекло наличие графиков, прогноз на несколько дней. В общем будем делать!
Для начала пришлось адаптировать код под PlatformIO, так как я не пользуюсь Arduino IDE. После я «выкурил» за ненадобностью из кода всё, что относится к имперской системе мер. Сделал отображение давления в миллиметрах ртутного столба, а не в гектопаскалях, мне так привычнее. Добавил направление ветра в секцию прогноза. Классно получилось. Можно наблюдать, как меняется, закручивается ветер. В общем «причесал» под себя.

Но! Но вся эта радость в один прекрасный день полетела в помойку, нет, не весь модуль, а только прошивка. Дело в том, что два или три раза в течение месяца, источник погоды openweathermap.org/, используемый в прошивке дал сбой, а именно, при температуре на улице всего -9°C, данные приходили -20°С. Конечно это не в какие ворота не лезет.

Мой выбор

Ладно, подумал я. Не беда, на openweathermap клин светом не сошелся. Будем искать. И я искал…
Критериев было всего два: рейтинг (что народ любит) и удобство использования. Конечно, народ любит openweathermap, а я его невзлюбил. Перепробовал еще парочку сервисов, в конце концов, мой выбор пал на Yandex. Как-то он роднее, в большинстве случаев очень близко к погоде за окном. Решено, будем использовать Yandex. Но и тут не всё шоколадно. Да, Yandex даёт прогноз погоды на период, очень подробный, но за деньги! Есть тестовый период – 30 дней. Не подходит. Но у Yandex также есть и бесплатный тариф. В бесплатно тарифе доступно:

• фактические погодные значения
• прогноз на два ближайших периода (ночь, утро, день или вечер)

Лимит обращений — 50 запросов в сутки. Ну что ж, два периода так два периода. Я подумал – мне хватит. Будем брать!

Реализация

Раз набор данных другой, то и интерфейс будет другим. Да, с графиками придется распрощаться. Да фиг с ними, достоверность важнее.
Поехали!
От старой прошивки я оставил:
• Отображение направления ветра
• Время захода и восхода солнца
• Строку статуса
• Реализацию пробуждения и сна


Интерфейс

Дисплей поделён на четыре зоны:
Зона статуса – узкая полоска сверху дисплея, на которой отображаются: название населённого пункта; время и дата последнего обновления данных; уровень заряда; мощность Wi-Fi сигнала

Зона фактической погоды – занимает бОльшую часть дисплея, на которой отображаются: иконка погоды; расшифровка погодной иконки; время года; температура; температура ощущения; влажность; давление; время восхода и захода солнца; фаза луны; секция направления ветра, где отображается направление, скорость и скорость порывов ветра.

Зона для прогноза погоды – зона поделена на две части (два периода). В зонах отображаются: название периода; иконка погоды; расшифровка погодной иконки; уровень осадков и вероятность; температура; температура ощущения; минимальная и максимальная температура за период; влажность; давление; секция направления ветра.



Последнее и, пожалуй, самое главное отличие моей программы от оригинала – это отображение иконок погоды.
В оригинале, все иконки рисуются кодом, то есть программно! Сначала я подумал: кодом так кодом! Можно было бы реализовать соответствие погодного описания соответствующей функции рисования иконки, но я это делать не стал, потому, что не все иконки в лоб соответствовали описаниям Yandex. И что-то еще было, я уж не вспомню.
Yandex, присылает код погодной иконки, по которому можно скачать иконку в формате SVG. Но этот способ не подходит, библиотека дисплея не позволяет отображать SVG. Она даже растр в чистом виде не отображает, хотя в библиотеке есть функция вывода растрового изображения — epd_draw_grayscale_image. Функция в качестве параметров принимает: area (описание прямоугольной области для вывода картинки) и указатель на массив данных картинки. Сама же картинка хранится в специальном заголовочном файле, в котором содержатся: константы размеров и массив картинки. Этот заголовочный файл получается при помощи утилиты на python imgconvert.py. Скармливаем этой утилите JPEG или PNG и на выходе получаем заголовочный файл. Это я всё к тому, что я придумал все погодные иконки хранить в прошивке в растре, и вызывать их по коду иконки, а не программно рисовать. Красиво? Нет! Хранить такое количество иконок в коде, а их сейчас аж 44, в заголовочных файлах – так себе затея.
Сделаем мы вот что! Преобразуем заголовочный файл с картинкой в бинарный файл, на первом этапе руками. Запишем этот файл в SPIFFS. Далее в программе считываем его в память и выводим на дисплей. Разумеется, что в качестве имени файла иконки лучше использовать код иконки, так проще искать. Красиво? Ну, почти. В один из дней, я обнаружил, что на месте иконки пусто! Дело в том, что в моем наборе не оказалось соответствующей иконки. Видимо источник, из которого я взял имена иконок был не полным. На это случай я реализовал следующий алгоритм: если на файловой системе отсутствует нужная иконка, то я скачиваю её с Yandex и сохраняю на SPIFFS в формате SVG, а вместо иконки я вывожу код, что бы видеть что есть новая иконка, требующая добавления в коллекцию. Вот так как-то…
Разумеется, делать эти картинки вручную, поштучно – то еще развлечение. Я написал две маленькие программки на Qt. Первая, используя скрипт на python, преобразовывает в пакетном режиме растровые иконки(преобразованные из SVG) в заголовочные файлы, а вторая программка, преобразовывает заголовочные файлы в бинарные. Таким образом, я очень быстро получил два набора иконок – маленькие(100x100) и большие(250x250). Бинарники получились меньше заголовочников по объёму, меньше места на SPIFFS занимают. Вот теперь красиво!

Фишка

Собственно фишек три. Все они в совокупности приближают нашу поделку к «продукту». В своей прошивке я сделал WEB-интерфейс для настройки станции, FTP-сервер для частичного изменения содержимого SPIFFS и библиотека Elegant-OTA для обновления прошивки по воздуху.

В WEB-интерфейсе есть следующие настройки:
AP SSID – имя вашей Wi-Fi сети.
AP PASS – пароль Wi-Fi сети.
City – название населенного пункта. Можно писать всё что угодно, в запросе погоды не участвует.
Latitude – широта населённого пункта. Участвует в запросе погоды.
Longitude – долгота населённого пункта. Участвует в запросе погоды.
Time zone – временная зона.
Update interval – интервал обновления в часах.
API key – API ключ. Если ключ не введён, то станция будет всегда запускаться в режиме настройки. Ключ необходимо получить в кабинете разработчика учетной записи Yandex. Подробно про сервис API Yandex-погода можно почитать тут: yandex.ru/dev/weather/.
Test data – отладочная опция, требуется для отладки или изменения интерфейса, экономия запросов. При установленной опции, в качестве данных выводятся последние полученные данные.
Кнопка «Confirm» – отправка данных контроллеру.
Кнопка «Firmware» – обновление прошивки.



Тут, в общем, то почти всё очевидно. Пустые поля игнорируются. Если нам надо поправить всего один параметр, то нет нужды снова все прописывать.

FTP-сервер нужен для частичного изменения содержимого SPIFFS или для скачивания новой иконки. FTP-сервер активен в режиме настройки. В качестве FTP-клиента я использую Total Commander.
Настройка FTP в Total Commander:



Прошивка и первый запуск

Первично необходимо прошить модуль с компьютера, а уж потом можно будет по Wi-Fi.
Шаги прошивки:
1. Скачиваем проект: github.com/discover1977/YWInformer.git
2. Открываем проект в PlatformIO
3. Строим проект
4. Строим образ SPIFFS
5. Прошиваем SPIFFS
6. Прошиваем основную программу
После успешной прошивки модуля, станция загрузится в режиме настройки, на станции включена точка доступа. На дисплее будут отображены параметры подключения и Qr-коды для подключения к точке доступа и ссылка страницу настройки.



Qr-коды сделаны для настройки с мобильных устройств. Для активации режима настройки необходимо нажать и удержать самую правую кнопку на модуле. Станция перезагрузиться, и войдёт в режим настройки.


Вот так как-то…

Котейка



Добавить в избранное
+140 +211
свернутьразвернуть
Комментарии (121)
RSS
+
avatar
+12
  • BOBKAQ
  • 16 марта 2022, 22:38
Котейка прикольный!
+
avatar
+6
Симпатично получилось! За рукастость всегда плюс)
Мне бы такую в Череповец))
+
avatar
+3
Ух ты! Земляки!
+
avatar
0
на двоих соберём?
+
avatar
0
Могу подсобить. :-)
+
avatar
+3
Очень цивильно. Производить надо в больших масштабах.
+
avatar
+2
Круто! Только одна претензия не к вам, а вообще, на тему что ни делай все метеостанция выходит. У самого лежит гдето епд от книги и управлять ими тот еще квест и пляска с напряжениями, хотя есть готовые епд контроллеры. Или как у вас дисплеи уже с вшитым контроллером и управление по протоколу.
Лично я пришел к выводу, что eink хорош только в книге, еще немного времени и подешевеют олед матрицы. Или от мобильных телефонов сделают переходник.
Куда информативнее будет выводить на олед, а показывать только в момент, когда юзер смотрит, для этого можно пир датчик экономичный или инфракрасный лазерный дальномер. Вот вы сколько раз в день используете информацию с него и сколько секунд за раз? Интересно сколько потреблял бы oled если бы вывести данные одним цветом максимально подобрав экономичные шрифты, но такие же разбрчивые на секунед 5-6?
В конце-концов хочу сказать, что интерфейс у вас получился лучше, все эти графики понты, а у вас реально полезная информация. За это плюс, ну и за труды.
+
avatar
+2
Согласен, ничего кроме метеостанции на ум не пришло. Смотрю два раз в будние дни, утром и вечером, на выходных чаще.
+
avatar
+3
  • tklim
  • 16 марта 2022, 23:43
Все несложно если паять смд умеете.
Программная часть чуть сложнее.
/экран от 9,7" киндла
+
avatar
0
  • VlaoMao
  • 17 марта 2022, 17:17
Тоже начинал с такой, экран разбитый пришел((
+
avatar
0
  • tklim
  • 19 марта 2022, 22:44
Мой китайцы хорошо запаковали.
но сам по себе экран «ориджинал» так себе. Мое фото вполне реально отображает «контрастность».
А так, для своей задачи — показывать погоду возле входной двери — вполне ок
+
avatar
0
Метеостанция это простое, что уже есть в паблике.
Я брала такой лилиго чтобы запилить вывод google календаря со встречами, вывод тасков из Jira, todo list и т.д. Но до этого проекта пока так руки так и не дошли, на столе до сих пор стоит метеостанция :)
+
avatar
0
Есть проекты на hackaday, и там толтко календарь, туду лист или метеодисплей. Это ограничение диктуется медленным обновлением экрана и для большего заполнения нужно пиксели перемагничивать. Лучшее решение это дисплеи пиксели на основе масла (вроде мирасол) или технология трансфлетивного от шарпа. Но все это дорого, мало, и просто популярно тем чтобы заняться сексом, а на сколько это решает проблему это для гиков вторично.
Во вторых разрешение и диагональ у еинк и одноцветность убивают все идеи на корню.
Есть более технологичные решения и в метеостанции и в календаре. От переносного до стационарного.
+
avatar
0
еинк уже давно есть и 3-цветные и 8-цветные, и размеры до 12 дюймов, так что для проектов еще не все потеряно :)
+
avatar
+2
Цена их сопостовима с проектором на стену лазерным или китай планшет с олед панелью + тонкий аккум на все 12 дюймов, если нужна портативность, к тому же можно сделать беспроводную зарядку. И самый сок, в том что не нужно ковырять это в ide, а завести с помощью более высокого уровня яп, или сделать вывод html с сервера
+
avatar
0
  • Akzi
  • 11 декабря 2022, 20:29
+ МАТРИЦЫ ОТ НОУТОВ НЕ ЗАБЫВАЙТЕ. с готовыми корпусами, мультитачами и размерами 12-15,6+ дюйма 4к и 60Гц, а в некоторых так все 160+. цена как раз укладывается в цену цветной книжки. oled тоже видел. но если обычные матрицы от 5к+ то те под 30к стоили. у всех eDP/hdmi/… контроллер
+
avatar
+21
  • ASPtr
  • 17 марта 2022, 03:00
Печатная плата — есть, вылизанная прошивка — есть, корпус — нет!!! Эх, как мне это знакомо ((
Хотя для своей метеостанции, сподобился таки сделать. Всё таки элемент интерьера.

+
avatar
+2
Супер!
+
avatar
0
Печатная плата — есть, вылизанная прошивка — есть, корпус — нет!!! Эх, как мне это знакомо ((
Это да, извечная проблема. Но сейчас придумали 3д принтеры — все по легче :)
+
avatar
+1
  • Voveton
  • 17 марта 2022, 05:55
Обратите внимание на сервис foreca.ru(com, org, me) Служба получает данные от региональных метеостанций. Довольно точный прогноз дается, с интервалом обновления ~ 1.5 час.
З.ы. сейчаст посмотрел ради интереса, информация имеется в Вашем регионе с метеостанций Белозерска, Устюжна, Череповца. ))))
+
avatar
0
  • shmikt
  • 17 марта 2022, 07:41
С narodmon не завязано?
+
avatar
0
Нет
+
avatar
0
и не нужно пусть завидуют))
+
avatar
+3
  • okela
  • 17 марта 2022, 08:42
А более подробную инструкцию где курить??
+
avatar
+1
  • xkspy
  • 17 марта 2022, 09:27
тоже бы хотелось бы увидеть (узнать), как для чайников )))
+
avatar
+1
плюсую,
уже с первого шага не совсем стандартно понятно где и как эту PlatformIO брать и как устанавливать.
С установкой на Ардуино IDE проблем не возникло совсем.
А автору — большой респект за труды, молодец, заморочился и почти с 0 все запилил!
+
avatar
0
Как устанавливать и настраивать PlatformIO — это уже другая статья, их в интернете навалом.
+
avatar
0
по приведенному описанию ни один человек не сможет повторить то о чем написано за исключением небольшой группки, которая и сама может запрограмить подобное
вопрос — для чего тогда все эти буквы в посте сверху
самолюбие тешить?
признание?
или…
+
avatar
+2
  • redcap
  • 17 марта 2022, 22:31
по приведенному описанию ни один человек не сможет повторить то о чем написано за исключением небольшой группки,
И не нужно. Поставил приложение на смартфон и всего делов :)
+
avatar
0
  • rustamt
  • 17 марта 2022, 21:30
ставить полную IDE и что-то настраивать там в общем-то и не нужно, для сборки прошивки достаточно иметь установленый питон и pip, дальше поставить модуль и запустить сборку типа такого:
pip install --user platformio
~/.local/bin/platformio run

под винду соответственно путь к platformio чуть другой(где-то внутри ~/AppData/Roaming/Python/), но суть та же. оно то, конечно, для тех кто в теме и так все понятно, но для остальных можно было бы добавить инструкцию по быстрой сборке в README файле. хотя наверняка и к этому бы кто-то придрался, типа непонятно как питон скачать ;)
+
avatar
0
  • Kabron
  • 17 марта 2022, 08:44
А я еще добавил кажущуюся температуру
+
avatar
0
  • okela
  • 17 марта 2022, 08:58
так там же есть, ощущается
+
avatar
+1
  • Kabron
  • 17 марта 2022, 17:40
Сорян спутал с оригиналом
+
avatar
+2
  • Bako
  • 17 марта 2022, 09:20
Удивился за «претензию» к Яндексу из-за платности. Это как раз нормально для этой конторы. Я бы больше опасался точности их погоды. Фиг знает, где они её берут, может тоже по бесплатной подписке, но ситуации когда у них солнце в час дня, а ты в лесу в футболке под проливным дождём пошёл собирать грибы поверив прогнозу — довольно частое явление.
+
avatar
0
Да, наверное звучит как претензия, но на самом деле констатация факта.
+
avatar
+1
Прочитал название гнас пункта — ТОШНИЛОВО :)))

Если без шуток, отличный проект. За 30 баксов до МИРА было отлично :((((
+
avatar
0
Стесняюсь спросить: где вы Тошнилово прочитали?
+
avatar
0
В левом верхнем углу на первой картинке :)))
+
avatar
0
А где можно ознакомиться со схемой?
+
avatar
+2
www.lilygo.cn/claprod_view.aspx?TypeId=62&Id=1386&FId=t28:62:28
Схемы нет, есть готовый модуль.
+
avatar
+13
Вариант моей станции) Висит так лет 5 уже с открытым приложением погоды)
Снизу крючок из икеи, позади магнитом к стене
+
avatar
0
  • and361
  • 17 марта 2022, 16:07
Агонь! валяется у меня роскошный 6" рабочий фаблет сони t2 ultra на андроиде еще 5м, все никак не решу куда приспособить, в car-pc бы но никак — не включается этот фаблет при подаче его в порт usb, ну не умеет.
Есть мысль из него плейер-часы-метеостанцию на кухню слабать.
+
avatar
+8
  • loole
  • 17 марта 2022, 21:42
Даже четвертый Андроид для такой ерунды не приговор.
Тратить время на постройку с нуля- особый вид изврхобби…
+
avatar
+3
Вот мой вариант часов перед рабочим столом

Андроид 4.0.4
+
avatar
0
О, прикольно. Что за софт используется?
+
avatar
+1
Tablet clock
Версию надо подобрать под андроид только.
+
avatar
0
Принял, спасибо!
+
avatar
0
  • sav1812
  • 24 марта 2022, 09:43
Дисплей не выгорает?
+
avatar
+1
старые планшеты ведь LCD матрицы, они особо не выгорают, только подсветка тускнеет
+
avatar
0
  • sav1812
  • 25 марта 2022, 02:37
Как показывает опыт — выгорают… Если эксплуатировать в режиме статичного изображения, как это и бывает в метеостанциях — наверняка останется видимый после выключения след.
+
avatar
+4
Реализация отличная! Но как по мне — интерфейс перегружен не слишком нужной инфой. Для меня эталонным стал Gismeteo. Метеостанция по аналогии с комментом выше из старого смартфона Nexus 5. Очень удобно собираться утром — видишь температуру и осадки на день.
+
avatar
0
Гениальная идея, у меня как раз валяется старый ненужный аппарат :)))))
+
avatar
0
  • Genn0k
  • 21 марта 2022, 14:04
я тоже пошел по этому пути. поставил на самсунг который уже и не открывает почти ни чего. Параллельно запустил «Маяк» с интернет радио. Висит на работе, рассказывает новости, поёт, пикает по часам, а надо погоду посмотреть — тыкнул пальцем.
+
avatar
0
Добрый вечер, какой использовали вариант 18650 9102 Chip или PH 2.0 9102 Chip?
+
avatar
0
18650
+
avatar
0
Добрый день, Иван.
Дисплей пришел, Platform IO я установил, но дальше не получается. Проект беру — выполняю build? а так выполняется с ошибками.
Не знаю как все это скомпилировать и загрузить. Прошу помощи. Спасибо
+
avatar
+4
Финальный вариант веселый. Кто-то день не может вспомнить, некоторые месяц. А тут проснулся и сразу видишь: сегодня зима! :)
+
avatar
0
Архи важная информация, может быть полезной после новогодних каникул.
Яндекс счел важным сообщить время года, я вывел на дисплей :-)
+
avatar
0
для бункера норм
+
avatar
0
Идея интересная. Парни, а вообще в природе существует что-то типа конструктора, чтоб можно было самому собрать какую информацию, и как отображать на экране модуля? Может кинете ссылкой, где почитать про это?
+
avatar
0
Вот прямо с языка снял, вчера думал об этом.
Вопрос в источнике данных. У всех по разному, нет единого стандарта.
+
avatar
0
Надо унифицировать данные, потом можно думать о конструкторе.
+
avatar
0
1. Можно ли отобразить скорость ветра на неделю?
2. Возможна ли аналогичная реализация на основе, например, б/у электронной книги?
3. Как бы еще прикрутить gps модуль с Али, что бы он локацию автоматом брал?
4. Что с реализацией подсветки?
+
avatar
+1
1. Я использую Яндекс, бесплатно есть только текущая погода и на пол суток вперёд, два периода.
2. Возможно. В интернете есть примеры.
3. Тоже можно, думал об этом. Решил, что не нужно. Надо всего раз забить координаты.
4. Нет у этого модуля подсветки.
+
avatar
0
GPS необходим, т.к. планирую использовать на яхте.
+
avatar
0
Посмотрите еще accuweather.com там есть данные по качеству воздуха.
+
avatar
0
  • sav1812
  • 25 марта 2022, 02:38
скорость ветра на неделю
А это вообще возможно, хотя бы в теории??
+
avatar
+1
Сервисов предостаточно, тот же windfinder, wunderground, gismeteo, windy. Самый удобный windguru, но он заблокировал наши ip.

Дополнительная информация

+
avatar
0
  • sav1812
  • 25 марта 2022, 05:00
Да я не про сервисы — про принципиальную возможность предсказания скорости ветра на такой период. :)
+
avatar
0
Для этого надо понимать природу возникновения ветра.
+
avatar
0
  • sav1812
  • 25 марта 2022, 17:09
Мало этого.
Очень многое надо не только понимать, но и знать текущее состояние, взаимное влияние и характер изменений всего этого. Вот я и интересуюсь, насколько это реально в наше время.
+
avatar
+1
Сажу проще: я занимаюсь парусным спортом и недельный прогноз помогает в походах. Редко когда подводит. Если будет дуть больше 8 узлов, заранее сработают часы «Storm Alarm». Все остальное, как с температурой воздуха — относительно.
+
avatar
0
  • sav1812
  • 26 марта 2022, 02:06
Ну, помогает — и хорошо. :)
Хотя долгосрочные прогнозы в существенной степени относятся — для меня, во всяком случае — к вопросам веры… :))

Ну а ответ на вопрос о принципиальной возможности предсказаний ветра искать мне, видимо, стоит где-то в другом месте. :)
+
avatar
0
Добрый день, друзья!
Я повторил проект и не соглашусь что проект реализовать сложно и не понятно. Пришлось долго ждать дисплей их Китая, но когда он пришел дальше все закрутилось быстрее. Посмотрев как установить среду в сети я все сделал без проблем. Но проект не компилировался. Обратился к Ивану (автору) и без долгих ожиданий получил получил информацию по решению проблемы. Далее проблем с регистрацией на Яндекс погода не возникла. Все быстро и просто. В настоящее время погонял работу метеостанции уже неделю. Прогноз дает точно. Для сравнения имею проект метеостанции Ушакова Андрея и просто метеостаниция Ea2. Есть с чем сравнить. Проект рекомендую к повторению! Автору большой респект!
+
avatar
0
Алекс, как можно с Вами связаться, выяснить детали по этим пунктам
3. Строим проект
4. Строим образ SPIFFS
5. Прошиваем SPIFFS
Как это делать то? В инете по подобным запросам ничего не удалось найти.
Автору предпринимал попытку написать, что бы он немного поподробней расписал эти процессы — как это делать, но он счел что все такие же как и он и не стал опускаться до разъяснений.
заранее спсб
+
avatar
+1
Добрый день,
Скачал PlatformIO, это есть в интернете. качаешь последнюю версию. см рис 1 потом скачиваешь проект и загружаешь его см рис2. Далее компилируешь и загружаешь в плату см рис 3 это и есть образ загрузка по красным.
+
avatar
+1
+
avatar
+1
+
avatar
0
Очень помогли фотки!
Спасибо большое!!!
Все получилось, со скрипом и ньюансами, но получилось!
+
avatar
0
Иван хорошо идет на контакт. Помогал.
Пиши — поможет
+
avatar
+1
Для тех кто будет устанавливать. Может появиться ошибка:
LilyGo-EPD47-master\src\rmt_pulse.c:9:24: fatal error: hal/rmt_ll.h: No such file or directory

Просто удалите отсылку на «rmt_ll.h» и все соберется без проблем.)
+
avatar
0
  • shish750
  • 17 августа 2022, 17:14
Здравствуйте, можете подсказать как загрузить.
+
avatar
0
  • evf40rus
  • 23 августа 2022, 22:45
Здравствуйте. Не подскажете как получить API ключ на Яндексе, бесплатно только для информеров на собственном сайте? Спасибо.
+
avatar
0
Оно, выбрать API погоды.
Выбрать тариф Погода на сайте.
Тестовый работать не будет — другой набор данных.
+
avatar
0
  • sav1812
  • 24 августа 2022, 10:51
Ну, тогда успехов вопрошавшему в реализации всего этого на сайте. :)
+
avatar
0
  • evf40rus
  • 24 августа 2022, 10:52
Спасибо. Официальный ответ поддержки Яндекса что ключ можно использовать только для организаций. В личное использование пока ключи не предусмотрены. Поэтому и возник вопрос. Сейчас пробую разобраться с PlatformIO. Насколько я понимаю нужно создать новый проект, выбрать плату, определить framework = arduino, и потом подгрузить файлы проекта, потом компилировать и загружать в устройство.
+
avatar
0
  • shish750
  • 24 августа 2022, 23:56
если получится — не могли бы рассказать как Вы это сделали )
+
avatar
+1
  • evf40rus
  • 25 августа 2022, 08:11
Спасибо автору за проект, все получилось. Пишите на почту, постараюсь Вам рассказать последовательность действий. Единственно пока не совсем понял как добавлять библиотеки в проект.
+
avatar
0
  • Serg_RAM
  • 25 августа 2022, 13:05
YWInformer
Лепил всё как понял, после загрузки в терминале ОШИБКА:

[I][main.cpp:1073] getWeather():
connection failed, error[403]:

Как вылечить?
+
avatar
0
  • evf40rus
  • 25 августа 2022, 17:44
Мне трудно чего-нибудь подсказывать, т.к. я только два дня осваиваю PlatformIO. Я делал так. Создал новый проект, выбрал плату esp32dev и framework = arduino. Сохранил проект. Затем перенес файлы из архива в каталог проекта. Открыл его и проверил все 3 файла из папки SRC и файл index.html из папки DATA на проблемы. Внизу в окне редактора показывает сколько проблем в файле и с чем они связаны. У меня в основном были связаны с библиотеками. Это ArduinoJosn и Epd_driver. Через PlatformIO добавил недостающие библиотеки. Правда с библиотеками не до конца понял как устанавливать. Проблемы исчезли. После этого компиляция и загрузка прошли без проблем.
+
avatar
0
  • Serg_RAM
  • 25 августа 2022, 22:02
Спасибо. У меня загрузка без проблем. После компиляции не хочет соединяться с роутером.

[I][main.cpp:1073] getWeather():
connection failed, error[403]:

Ошибка 403
+
avatar
0
  • evf40rus
  • 26 августа 2022, 10:50
Так до настройки он с роутером не соединяется. Он сам как роутер выступает, организует свою сеть. То есть нужно отключится от своего роутера и в списке сетей появится WEATHER_STATION. Вот к этой сети нужно подключится. При запросе пароля если ничего не меняли, то ввести 0123456789. Я тут правда свой пароль устанавливал. Ну и адрес 192.168.4.1 менять не нужно. Когда подключитесь к этой сети. тогда через браузер нужно подключатся чтобы ввести настройки В которых указывается ваша сеть и пароль доступа к ней.
+
avatar
+1
  • Serg_RAM
  • 27 августа 2022, 06:15
Ошибка была в API, не тот тарифный план. Отсюда и 403 ошибка в запросе погоды.
+
avatar
+1
  • shish750
  • 27 августа 2022, 12:23
Да, аналогично было. Хотя изначально верно выбираешь тариф, а Яндекс почему-то дает «тестовый»
+
avatar
0
  • Serg_RAM
  • 27 августа 2022, 12:04
Пока не понял погоду автоматически запрашивает или вручную?
+
avatar
0
Раз в час.
+
avatar
0
  • Serg_RAM
  • 27 августа 2022, 19:01
Установил запрос через 30 минут. Работало нормально, а потом заткнулось. Лимит 50 запросов в итоге 48 получится. Давление не точно показывает. Ошибка 10 единиц.
+
avatar
0
  • Serg_RAM
  • 28 августа 2022, 09:17
Отключил информер от ПК.
Работает стабильно. Обновление погоды каждые 30 минут.
Давление показывает точно, как на сайте погоды.
+
avatar
0
  • shish750
  • 31 августа 2022, 00:14
Извините, а какой параметр меняли, чтобы обновлялось раз в 30 мин?
+
avatar
0
  • shish750
  • 31 августа 2022, 01:02
А ещё подскажите, пожалуйста, направление ветра нормально пишется?
А то я обратил внимание, что отображается точно противоположное значение от стрелочки (стрелочка смотрит на N, а написано S)??
+
avatar
0
Написано «S» — южный ветер, то есть дует с юга, стрелочка показывает куда дует, то есть на север при южном ветре
+
avatar
0
  • warpm
  • 29 сентября 2022, 11:14
Помогите! при компиляции выдает ошибку esp_lcd_panel_io.h не найден, где поискать?
+
avatar
0
  • warpm
  • 10 октября 2022, 16:41
Кто нибудь пытался построить версию с гитхаба?
при компеляции ругаеться на i2s_data_bus.c что там не найден esp_lcd_panel_io.h…
помогите пожалуйста
+
avatar
0
  • poison_d
  • 02 декабря 2022, 11:13
Я тоже столкнулся с такой проблемой, это связано с зависимостями библиотеке LilyGo-EPD47, в конце августа вышло обновления на версию 0.3.0 где требуется более новая версия espressif32 чем применяется у автора, если ее сменить то потом перестает работать либа peterus/ESP-FTP-Server-Lib, короче все взаимосвязано

Я проблему решил ручной установкой более старой библиотеки LilyGo-EPD47 v0.1.0 в проект:
И так:
1. скачиваем LilyGo-EPD47-0.1.0 github.com/Xinyuan-LilyGO/LilyGo-EPD47/archive/refs/tags/v0.1.0.zip
2. распаковываем в проект, в папку lib (папку нужно создать)
3. исправляем platformio.ini
[platformio]
lib_dir = lib/LilyGo-EPD47-0.1.0/src/…

[env:esp32doit-devkit-v1]
platform = espressif32@3.5.0
board = esp32dev
framework = arduino
monitor_speed = 115200
build_flags =
-DBOARD_HAS_PSRAM
-mfix-esp32-psram-cache-issue
-DCORE_DEBUG_LEVEL=3
lib_deps =
bblanchon/ArduinoJson@^6.19.0
ayushsharma82/ElegantOTA@^2.2.8
peterus/ESP-FTP-Server-Lib@^0.9.7-a
board_build.f_flash = 80000000L
board_build.partitions = default_16MB.csv

4. собираем далее проект по описанию автора

P.S. это работает только для старых версий LILYGO T5-4.7 (без Plus), в версии Plus уже используются ESP32-S3 для которых нужна последней версии библиотек espressif32 и LilyGo-EPD47
+
avatar
+1
  • Juff
  • 09 декабря 2022, 23:16
Сделал все по Вашей инструкции, проект собрался, залил его в LILYGO. Однако после настройки параметров девайс так и остается на настроечном экране и не показывает погоду (несмотря на то, что он подключен к роутеру по WiFi) :(

Подскажите, пожалуйста, встречался ли кто с подобной проблемой, и как можно это поправить?
+
avatar
+1
  • Juff
  • 10 декабря 2022, 16:41
Проблема решилась после замены API-ключа от Яндекса
+
avatar
0
  • romku
  • 27 декабря 2022, 12:18
Спасибо. Эта ошибка ушла, но куча других. 2 дня пытаюсь bild сделать. Уже не понимаю, в чем проблема.
+
avatar
0
Скиньте лог. Посмотрим.
+
avatar
+1
  • romku
  • 28 декабря 2022, 15:13
Иван, спасибо огромное за помощь и что поделился таким трудом.

Все таки проблема была в ключе яндекса.

+
avatar
0
  • warpm
  • 17 марта 2023, 14:58
Откомпилировалось вроде… Ну ладно, но есть 22 проблемы
При компиляции выдает кучу желтых строчек по типу
src/web_server.cpp: In function 'void hw_param()':
src/web_server.cpp:163:24: warning: variable 'jo' set but not used [-Wunused-but-set-variable]
JsonObject jo = jsonDoc.as(); // Получаем JSON-объект
^
Archiving .pio\build\esp32doit-devkit-v1\lib0f8\libUpdate.a
src/main.cpp: In function 'void setup()':
src/main.cpp:146:44: warning: 'typename ArduinoJson6190_F1::enable_if<ArduinoJson6190_F1::is_same<T, char*>::value, const char*>::type ArduinoJson6190_F1::MemberProxy<TParent, TStringRef>::as() const [with T = char*; TObject = ArduinoJson6190_F1::ObjectRef; TStringRef = const char*; typename ArduinoJson6190_F1::enable_if<ArduinoJson6190_F1::is_same<T, char*>::value, const char*>::type = const char*]' is deprecated: Replace as<char*>() with as<const char*>() [-Wdeprecated-declarations]
param.city = jo[«city»].as<char *>();
^
In file included from .pio/libdeps/esp32doit-devkit-v1/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:9:0,
from .pio/libdeps/esp32doit-devkit-v1/ArduinoJson/src/ArduinoJson/Document/BasicJsonDocument.hpp:7,
from .pio/libdeps/esp32doit-devkit-v1/ArduinoJson/src/ArduinoJson/Document/DynamicJsonDocument.hpp:7,
from .pio/libdeps/esp32doit-devkit-v1/ArduinoJson/src/ArduinoJson.hpp:28,
from .pio/libdeps/esp32doit-devkit-v1/ArduinoJson/src/ArduinoJson.h:9,
from src/main.cpp:2:
.pio/libdeps/esp32doit-devkit-v1/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp:79:7: note: declared here

с ними надо что то делать?
+
avatar
0
  • warpm
  • 22 марта 2023, 12:19
Вопрос решился, не актуально
+
avatar
0
  • warpm
  • 18 апреля 2023, 09:36
Вопрос, а напряжение корректно отображается?
А то у меня напряжение 3,5 а заряд 0% )
+
avatar
0
  • Akzi
  • 07 января 2023, 00:23
это адаптировано для lilygo 4.7 plus s3 версии? на esp32-s3, с microsd, кнопок меньше.
+
avatar
0
  • vsaxis
  • 17 января 2024, 11:16
Методом тыка подобрал такой конфиг —
[env:lilygo-t-display-s3]
platform = espressif32@6.5.0
board = lilygo-t-display-s3
framework = arduino
monitor_speed = 115200
build_flags = 
	-DBOARD_HAS_PSRAM
	-mfix-esp32-psram-cache-issue
	-DCORE_DEBUG_LEVEL=3
lib_deps = 
	lib/LilyGo-EPD47-esp32s3\src
	ayushsharma82/ElegantOTA@2.2.9
	peterus/ESP-FTP-Server-Lib@0.14.1
	bblanchon/ArduinoJson@6.19.4
board_build.f_flash = 80000000L
board_build.partitions = default_16MB.csv

[platformio]
lib_dir = lib/LilyGo-EPD47-esp32s3\src
Либа отсюда — github.com/Xinyuan-LilyGO/LilyGo-EPD47/tree/esp32s3

Warning много, но собирается и работает.
+
avatar
0
  • flyup
  • 28 июня 2023, 11:06
По ошибке сюда запостил.
+
avatar
0
  • warpm
  • 06 декабря 2023, 10:50
Здравствуйте!
Перестал обновляться информер, на сайте пишет, что обращения идут, а информации нет…
У меня такое или еще у кого?
+
avatar
0
  • Kabron
  • 22 октября 2024, 09:49
Не соединяется
08:00:04:699 -> [I][main.cpp:133] setup(): SPIFFS begin
08:00:04:819 -> [I][main.cpp:161] setup(): city: Moscow
[I][main.cpp:162] setup(): lat: 55.669998
[I][main.cpp:163] setup(): lon: 37.570000
[I][main.cpp:164] setup(): test_data: 0
[I][main.cpp:165] setup(): api_key: 245d0a6b-d333-4ed6-8989-63f0
[I][main.cpp:166] setup(): update_interval: 1
[I][main.cpp:167] setup(): time_zone: 3
[I][main.cpp:168] setup(): ap_ssid: YOTA_
[I][main.cpp:169] setup(): ap_pass: Kabron_
[I][main.cpp:170] setup(): param deserializeJson() success
08:00:07:056 -> [I][main.cpp:860] start_WiFi(): WiFi connected at: 192.168.227.174
08:00:07:268 -> [I][main.cpp:1079] getWeather():
connection failed, error[403]:

08:00:07:403 -> [I][main.cpp:1079] getWeather():
connection failed, error[403]:

[I][main.cpp:303] begin_sleep(): Awake for: 3 -secs
[I][main.cpp:304] begin_sleep(): Entering 3623 (secs) of sleep time
[I][main.cpp:305] begin_sleep(): Starting deep-sleep period…
09:00:11:639 -> ets Jul 29 2019 12:21:46
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.