Новостная и погодная станция в корпусе ретро-телевизора
Одно из величайших изобретений в истории человечества — это телевидение. С помощью ТВ информация стала более доступна, даже в отдаленных уголках земного шара. Одновременно с этим, ТВ мощный рычаг воздействия на человечество от рекламы до использования в политических целях. Однако с каждым годом телевидение теряет часть своей первоначальной яркости и уступает пальму первенства — интернету.
В своей работе мастер решил совместить ретро корпус старых телевизионных приемников и современные возможности интернета.
Этот небольшой «телевизор» может отображать данные о погоде и получать национальные заголовки новостей любой страны мира.
Инструменты и материалы:
-ESP32;
-Li-Po аккумулятор;
-ЖК-дисплей 2.4″ 240×320;
-Кнопка с фиксацией;
-Тактовая кнопка;
-Резисторы;
-Штыревые разъемы;
-Модуль зарядки;
-Модуль чтения SD-карт;
-SD-карта;
-Доска;
-Дрель;
-Паяльник / припой;
-3D-принтер;
-Филамент;
-Наждачная бумага;
-Супер клей;
-Клей для дерева;
-Гравер;
-Ножовка;
Шаг первый: 3D-печать
Дизайн телевизора, мастер спроектировал с помощью TinkerCAD. Частично телевизор выполнен из древесины, частично присутствуют детали напечатанные на 3D-принтере. Напечатанные детали состоят из шести частей: передней панели, ножек, кнопок, задней панели, порта и антенны. Большинство изделий можно напечатать без опор и за относительно короткий промежуток времени. Все, что нужно сделать, это загрузить файлы STL ниже и загрузить их в слайсер (софт для обработки 3D-моделей), такой как Cura.
Печать не должна занимать слишком много времени со скоростью перемещения 50 мм / с. Мастер напечатал детали с 20% -ным заполнением и двойным множителем линии заполнения, чтобы убедиться, что он имеет хорошую прочность. Для антенны и задней части необходимы опоры под углом 10 °.
Файлы для печати можно скачать ниже.
Back.stl
BottomButton.stl
Front.stl
Port.stl
TopButton.stl
Antenna.stl
Шаг второй: детали корпус
Для изготовления корпуса мастер использует древесину дуба 6.5x90x200 мм, но можно использовать древесину любого типа и размера.
Сначала отрезает две секции размером 122х50 мм, это будет верхняя и нижняя стороны. Для боковой панели отрезает две заготовки 53х67мм. В одной из них нужно вырезать отверстие для портов зарядки / программирования. Размер отверстия 53×22 мм (53 по широкой стороне). Этот второй прямоугольник должен быть смещен на 9 мм сверху и сбоку, как показано на фото.
Шаг третий: сборка корпуса
Теперь, когда есть все детали, нам нужно склеить их вместе. Сборку производит с помощью столярного клея.
После склейки корпуса можно приклеить 3D-печатный порт на боковую сторону Более длинное отверстие должно быть ориентировано вверх.
Шаг четвертый: схема и печатная плата
Мастер разработал схему устройства и спроектировал печатную плату. Файл Gerber для изготовления печатной платы можно скачать здесь.
Также прилагается схема для монтажа платы или сборки на перфорированной плате.
Устройство чтения SD-карт, и ЖК-дисплей подключены к ESP32 через протокол SPI, который является типом соединения, позволяющим ESP32 как отправлять, так и получать данные. Микроконтроллер знает, когда переключать режимы, когда пользователь нажимает кнопку мгновенного действия. Вся система питается от литий-полимерной батареи 3,7 В, которая подключена к зарядному модулю Adafruit 500c. Хотя 3,7 В недостаточно для питания ESP32, модуль зарядки также повышает напряжение до 5 В. Цепь можно включать / выключать с помощью кнопки с фиксацией, расположенной чуть ниже кнопки мгновенного действия.
Подключение следующее:
ESP32 -> ЖК-дисплей (ILI9341)
3,3 В -> 3,3 В
GND -> GND
D15 -> CS
D4 -> RST
D2 -> DC
D23 -> MOSI
D18 -> SCK (CLK)
3,3 В -> LED (Подсветка)
ESP32 -> Устройство чтения SD-карт
3,3 В -> 3,3 В
GND -> GND
D18 -> SCK
D19 -> MISO
D23 -> MOSI
D5 -> CS
Резистор -> тактовая кнопка
Ножка 1 -> Штифт 2
Ножка 2 -> GND
ESP32 -> тактовая кнопка
3,3 В -> контакт 1
GND -> контакт 2
D21 -> контакт 2
ESP32 -> Зарядный модуль
Vin -> 5В
GND -> GND
Кнопка включения -> Зарядный модуль
Leg 1 -> EN
GND -> GND
Шаг пятый: SD-карта
Чтобы отображать значки погоды на ЖК-дисплее, сначала нужно сохранить их на SD-карте.
Система значков работает так: для каждого описания погоды есть два изображения, одно для дневного времени и одно для ночного, и каждая фотография названа в честь своего описания. Например, если на одной фотографии изображено дождевое облако, тогда файл будет называться дождь. Чтобы узнать, какой из них взять, микроконтроллер смотрит на время и решает, ночное оно или дневное. Как только он определил время, он ищет тип погоды и выбирает соответствующий рисунок JPG.
Все, что нужно сделать, это загрузить файл с именем Icons.zip с авторского Github. Когда он будет загружен, установить SD-карту в свой компьютер и распаковать файл Icons.zip в папку с SD-картой.
Шаг шестой: добавление ESP32 в Arduino IDE
Поскольку ESP32 не является реальной платой Arduino, нужно убедиться, что Arduino IDE может ее распознать. Открываем любой эскиз Arduino, затем переходим к файлу> настройки и копируем ссылку ниже в панель с надписью URL-адреса Additional Boards Manager.
https://dl.espressif.com/dl/package_esp32_index.json
Теперь IDE Arduino может распознать ESP32, но все еще нужно выбрать его в качестве платы, на которую будет загружаться код. Переходим в Инструменты> Плата > Диспетчер плат, и находим ESP32. Устанавливаем первый вариант. После завершения загрузки переходим в Инструменты> Плата> ESP32 Arduino> ESP32 Dev Module и кликаем по нему.
Шаг седьмой: настройка дисплея
Следующий шаг — установить и настроить библиотеку для ЖК-дисплея.
Открываем IDE Arduino и переходим в Инструменты> Управление библиотеками. Находим файл tft_espi и устанавливаем тот, который помечен как TFT_eSPI . Теперь открываем файл библиотеки, который находится в папке Arduino. Открываем TFT_eSPI> User_Setup.h с помощью текстового редактора, например Блокнота.
В этом текстовом файле нужно раскомментировать пару строк. Для тех кто не знает, комментарий — это слово или фраза, которые существуют в коде, но не мешают ему. Другими словами, он игнорируется кодом. В Arduino комментарий обозначается двойной косой чертой в начале строки // .
Раскомментируем строки 196-201. Удаление двойной косой черты в начале каждой строки определяет распиновку SPI, используемую ESP32 для подключения к ЖК-дисплею. Теперь нужно сделать прямо противоположное и прокомментировать строки 161–163, набрав двойную косую черту в начале каждой строки, эти строки были определенными контактами, используемыми по умолчанию для подключения к ЖК-дисплею.
Далее нажимаем cntrl + s, чтобы сохранить файл.
Шаг восьмой: ключи API
Дальше понадобится пара ключей API.
Первый нужен из OpenWeatherMap, а второй из NewsAPI . Этот процесс довольно прост для обоих веб-сайтов. Кликаем кнопку регистрации в правом верхнем углу и по окончании будет представлен уникальный ключ API.
Шаг девятый: код
Теперь можно загрузить код в ESP32. Загружаем файл ниже и открываем его. В нем нужно изменить пару строк.
Начнем со строк 33-34. Вводим свой SSID и пароль Wi-Fi соответственно. В строке 40 вводим смещение по Гринвичу в секундах. Найти смещение по Гринвичу можно по этой ссылке. По умолчанию установлено значение -4 часа или -14 400 секунд, что соответствует стандартному атлантическому времени.
В строках 48 и 53 вводим ключи API, которые получили от Open Weather Map и NewsAPI соответственно, а в строках 44-50 изменяем каждую переменную в соответствии с географическим положением. Это такие вещи, как название города, код страны, язык и система единиц измерения, т. е. метрическая или британская.
После внесения всех необходимых изменений просто подключаем ESP32 и загружаем код, щелкнув стрелку в верхнем левом углу.
Код можно скачать ниже.
RetroMiniTV.ino
Шаг десятый: сборка
Теперь можно приступить к сборке устройства.
Сначала устанавливает печатную плату, протолкнув ESP32 через отверстие сбоку. Она должна встать сама по себе, но для прочности фиксирует ее термоклеем.
Дальше приклеивает антенну и ножки. Мастер установил ножки в нижних углах, так как именно здесь они расположены на большинстве ретро-телевизоров. Чтобы получить более прочное соединение, нужно немного зачистить поверхность чем-нибудь вроде наждачной бумаги. В отличие от ножек, расположение антенны менялось от модели к модели. Мастер решил установить ее в крайнем правом углу.
Дальше приклеивает переднюю панель. Обратите внимание, что меньшая кнопка идет вверху, а более длинная — внизу.
Шаг одиннадцатый: тестирование
Теперь осталось только включить и проверить работу устройства.
Нажимаем кнопку-переключатель внизу и ждем, пока он не включится. Загрузка может занять около 10 секунд, потому что он должен подключиться к Wi-Fi. Когда он включается, будут представлены местные данные о погоде, такие как температура, описание погоды, влажность, закат / восход солнца и многое другое.
После нажатия верхней кнопки на экране отобразится классический экран SMPTE и он переключится на отображение национальных заголовков новостей. После прокрутки новостей он вернется к информации о погоде.