Интернет-метеостанция на базе LilyGO T-Display S3 и OpenWeatherMap
Наткнулся однажды на одну интересную статью про метеостанцию на базе готового модуля
LilyGO T-Display S3. Это оказался одним из тех случаев, когда ловишь себя на мысли - а ведь это ровно та хрень, которая мне нужна!
Устройство из серии "В падлу встать и в окно посмотреть" - прям как цитата Гены Рыжова из фильма Петра Точилина 2006 года "Хоттабыч".
Не потому что лень это вселенское зло, а потому что человечество уже придумало способы узнавать погоду, не вставая с дивана. Да и смартфон тоже не панацея - пока разблокируешь, пока уведомления смахнешь, пока приложение погоды подумает и обновится. А чекнуть погоду все равно хочется здесь и сейчас.
Оригинальный проект оказался простым, аккуратным и вполне живым: берет данные с OpenWeather, подключается к Wi-Fi, показывает все на маленьком, но вполне читаемом экране.
В основе лежит проект: https://github.com/VolosR/tDisplayS3WeatherStation
Автор оригинальной прошивки VolosR
Я внес небольшие изменения в оригинал - поменял отображение гектопаскалей на миллиметры ртутного столба, немного поменял цвет шрифта часов, а так же сделал возможность менять ориентацию экрана нажатием кнопки, если устройство захочется перевернуть (в зависимости от того, с какой стороны вы будете подключать кабель питания). Память на ориентацию дисплея имеется.
Ниже инструкция, как это все собрать и прошить. Можно пойти по пути оригинала, можно прошить мой кастом - выбирай, что больше нравится.
Ссылка на мой кастом: https://disk.yandex.ru/d/O7YIKCXI5yJWFw
Прошивка осуществляется через Arduino IDE.
Что понадобится
модуль LilyGO T-Display S3 (можно заказать на Ozon, или на AliExpress)
Arduino IDE на вашем компе
кабель USB-C (желательно не длиннее метра, иначе могут быть отвалы при прошивке)
интернет (для погоды и времени)
Подготовка Arduino IDE
1. Добавляем поддержку ESP32
Открой "Файл - Параметры". В поле Additional boards manager URLs добавь:
Сохрани.
2. Устанавливаем esp32 (важно!)
Зайди в "Инструменты - Плата - Менеджер плат".
Найди esp32 by Espressif Systems и установи версию 2.0.5 (другие версии могут ломать работу дисплея).
Затем в "Инструменты - Плата - esp32" выбери ESP32-S3-BOX.
В разделе "Инструменты - Partition Scheme" выбираем 8M with spiffs.
3. Библиотеки (ставить строго эти версии, так как на других были проблемы)
Через "Скетч - Подключить библиотеку - Управление библиотеками"
Установи:
TFT_eSPI - 2.5.0
WiFiManager - 2.0.17
ArduinoJson - 7.1.0
ESP32Time - 2.0.6
4. Файлы прошивки
Открой скетч WeatherTDisplayS3.ino
Рядом с ним (в папке проекта) должны лежать шрифты:
NotoSansBold15.h
tinyFont.h
smallFont.h
midleFont.h
bigFont.h
font18.h
Если они рядом со скетчем - Arduino IDE должен их подхватить автоматически. Если не подхватил - загружай вручную через "Скетч - Добавить файл".
Получаем API-ключ OpenWeatherMap
Без этого погоды не будет.
Зайди на: https://openweathermap.org/
Зарегистрируйся
После входа открой "Профиль - My API keys"
Создай ключ, задав любое имя и нажми Generate
Скопируй ключ
Вставь его в код:
String myAPI = "ВАШ_API_КЛЮЧ";
Ключ может активироваться до 10-15 минут - это нормально.
Настройка прошивки под себя
В начале кода есть блок:
int zone = 3;
String town = "Moscow";
String myAPI = "ВАШ_API_КЛЮЧ";
String units = "metric";
Что поменять:
zone - твоя таймзона
town —- город (латиницей, как в OpenWeather)
myAPI - твой API-ключ
units - оставь metric
Прошивка платы
Подключи T-Display S3 по USB-C
Выбери в Arduino IDE COM-порт твоего S3
Нажми Upload
Начнется компиляция и в случае успеха пойдет прошивка.
После прошивки
Если устройство запустилось, на экране должно появиться сообщение "Connecting to Wi-Fi" и устройство должно поднять точку доступа WeatherStationSetup, пароль такой же как название точки.
Подключаемся к ней и вводим данные вашего Wi-Fi, сохраняем и перезагружаем устройство.
На будущее, если захочется поменять настройки Wi-Fi подключения, нужно, чтобы устройство просто не смогло подключиться к предыдущей точке доступа. В таком случае, спустя несколько секунд, оно снова поднимет свою точку для настройки.
Кнопки и экран
Нижняя кнопка (если держать устройство USB разъемом справа) переворачивает экран.
После перезагрузки экран остаётся в выбранном положении.
Если что-то пошло не так
чёрный экран - почти всегда не та версия esp32 или TFT_eSPI
погода не обновляется - проверь API-ключ и город
не прошивается - переведи устройство в режим BOOT
Всегда можно написать автору прошивки на его странице проекта в гитхабе: https://github.com/VolosR/tDisplayS3WeatherStation/issues
У меня по этим шагам устройство прошилось без проблем на двух разных компах, более того, я так же прошил несколько таких станций своим друзьям.
Тег "Моё" я сознательно не ставлю, так как автором проекта не являюсь. Это не моя идея и не мой продукт. Я лишь постарался простым и понятным языком описать процесс создания устройства, чтобы с ним было легче разобраться. Да, в прошивку были внесены небольшие кастомные правки, но это скорее личные улучшения под свои задачи, а не повод выдавать проект за собственную разработку))
Надеюсь, что и у вас все получится. Удачи!






























































