ESP, IoT MatrixClock OS — часы на матрице с WiFi

arsuhinars

✩✩✩✩✩✩✩
11 Июл 2021
4
4
Всем привет! Собрал самодельные часы на матричных модулях под управлением ESP8266. У часов есть несколько режимов: режим отображения времени, показ фоновых эффектов, мини-игры. В режиме отображения времени можно выбрать эффект или использовать сплошной цвет, который будет использоваться как фон. Можно включить автоматическую смену режима часов и эффектов, так они будут периодически сменять друг друга. В режиме мини-игр можно играть в одну из доступных игр. Управление игрой происходит через веб-интерфейс. Также каждая игра имеет свой демо режим, в котором она будет играть сама. Демо режимы доступны в виде эффекта. Всего имеется 14 фоновых эффектов, автоматическая синхронизация времени по NTP и две мини игры (змейка и раннер). Идея моего проекта основывается на проекте GyverMatrixBT, но основное отличие заключается в том, что управление матрицей происходит через веб-интерфейс. Код проекта я писал полностью сам с нуля. Единственное что я позаимствовал, так это код эффекта огня. При разработке веб-интерфейса я использовал CSS-фреймворк Spectre.CSS.

При сборке устройства я использовал следующие компоненты:
  • NodeMcu V3
  • Две матрицы 8x8 на светодиодах WS2812
  • Фоторезистор
  • Две кнопки
  • Различные расходники (провода, резисторы)
Код проекта вы сможете найти на GitHub: https://github.com/arsuhinars/MatrixClock
Настройки скетча вы сможете найти в файле config.h

Ниже фотографии собранного устройства:


Скриншоты веб-интерфейса:
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
размер цифр можно увеличить, раз матрица большая вышла + добавить рассеиватель, да и вывод температуры не помешал бы
 

arsuhinars

✩✩✩✩✩✩✩
11 Июл 2021
4
4
размер цифр можно увеличить, раз матрица большая вышла + добавить рассеиватель, да и вывод температуры не помешал бы
Я постарался сделать размер цифр таким, чтобы они смогли полностью умещаться на экран. С рассеивателем идея была как сделать, только вот корпус я и так слишком долго собирал, поэтому решил и так сойдет. После сборки понял, что выглядит не очень. Ну а насчет вывода температуры, можно добавить поддержку через API какой нибудь Яндекс Погоды.
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
Проблема размера решается заменой шрифта с 5 на 8, можно готовый поискать либо сделать.
В качестве рассеивателя можно использовать матовое оргстекло.
Погода со всяких сервисов, зачастую не совпадает с реальной, лучше использовать (бес)проводной датчик температуры за окном
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,799
579
44
В качестве рассеивателя можно использовать матовое оргстекло.
Берем старый разбитый дисплей соответствующего размера, вытаскиваем рассеиватели и играемся с ними для получения интересного результата.
Но самое простое - использовать тонированную пленку на стекло.
 

edgar777

✩✩✩✩✩✩✩
27 Окт 2021
3
1
Доброго времени суток пожалуйста помогите мне,
Веб-интерфейс открывается но всё время пишет подключение и идёт загрузка. загружается а потом снова пишет не удалось подключиться. И снова появляется кнопка переподключить. Чем может быть проблема прошу помогите спасибо большое
 
Изменено:

DAK

★★★✩✩✩✩
8 Окт 2020
517
137
Какой МК? Можно пару картинок с ошибкой. Ваш конфиг файл на всякий случай. И как вы зашивали прошифку? Вы не забыли залить файлы из каталога data?
 

edgar777

✩✩✩✩✩✩✩
27 Окт 2021
3
1
Компиляция скетч всё идёт хорошо загружается. Папка дата тоже загрузил. Как видите на фото страница открывается . Но всегда так напишет подключение не удалось переподключиться. Я залил скетч на есп8266
 

Вложения

DAK

★★★✩✩✩✩
8 Окт 2020
517
137
А в serial ничего не пишет? Может контроллер уходит в ребут. Порыл проект, не нашел такой ошибки. Может просто плохо рыл. Надо включать serial и ловить место в котором происходит сбой. Жаль, что автор не отвечает ни тут ни на гитхабе. Придётся Вам своими силами мучать данный проект.

UPD
А содержание фала MatrixClock.ino можете сюда кинуть. Я как понимаю Вы отваливаетесь от сети, скрин у вас не с браузера, а с интерфеса подключения к вафли, я прав?
 
Изменено:

arsuhinars

✩✩✩✩✩✩✩
11 Июл 2021
4
4
@edgar777, эх, если еще не поздно. Внес изменения в репозиторий. В целях отладки я захардкодил IP адрес моего устройства в скрипте веб-интерфейса, а раскомментить забыл. В файлике main.js сделайте как на скрине1665147821387.png
 

edgar777

✩✩✩✩✩✩✩
27 Окт 2021
3
1
Всё заработал, только один проблема пожалуйста скажите как можно поворачивать картинку. Например у меня светодиоды собраны из ленты. Точка подключения левый нижний. Не могу найти строго чтобы менять. Пожалуйста помогите. Заранее очень спасибо вам

Много мучилась ничего не получается ...у меня Матрица собран из ленты
Высота 11 ширина 16. Сейчас управляется работает в интерфейс, но никак не могу найти настройка на скетч чтоб изменить положение картинка. У меня левый нежный. Матрица собирал и паял вверх-вниз вверх-вниз.
 

arsuhinars

✩✩✩✩✩✩✩
11 Июл 2021
4
4
Если у тебя другое разрешение, то его можно поменять в config.h в параметрах WIDTH и HEIGHT. Однако, если у тебя другой тип подключения светодиодов, то придется переписывать функцию получения координат (getPixelNumber в display.cpp). Советую лучше присмотреться к проекту GyverPanelWiFi. У него реализована возможность в конфиге менять тип подключения ленты.
 

Dmitry664

✩✩✩✩✩✩✩
15 Окт 2022
2
0
@arsuhinars,Проект очень крутой, хочу собрать такой же только на светодиодной матрице 8x32 и отображением погоды
 

Валерий_Б

✩✩✩✩✩✩✩
15 Сен 2018
3
0
Привет всем. А можно картинку что с чем и на какие пины соединяется. Я может не увидел покажите (пальцем) где можно это увидеть. Спасибо.