Крутая WiFi панель / гирлянда на esp8266 своими руками
Этот проект устарел.
Новый проект "WiFi панель или гирлянда на ESP8266 / ESP32 с Web-интерфейсом"
почти полностью повторяет функционал этого проекта, за исключением следующих позиций:
- В новом проекте в настоящее время в комплекте нет Android-приложения для управления и настройки.
- Android-приложение из версии 1.13 несовместимо с прошивкой в новом проекте
- Управление и настройка параметров нового проекта выполняется через Web интерфейс.
- Управление сторонним приложением или интеграция в Умный дом всё ещё возможна:
Управление по каналам UDP и MQTT поддерживается как и раньше, за исключением некоторых изменений в API
Переход на Web-интерфейс упрощает процесс внедрения новых возможностей, которые будут дополняться по мере развития проекта
Если вы активно используете управление устройством через MQTT - оставайтесь на этой версии.
В противном случае - переходите на новый проект.
Поддержка этого проекта будет закрыта.
Описание проекта
Этот проект основан на проекте "Крутая WiFi лампа на esp8266 своими руками"
с расширением возможностей работы на неквадратных широких матрицах с размерами от 23x11.
Основное назначение проекта - настенные экраны больших размеров или гирлянды на широкие балконы.
Также подходит с некоторыми ограничениями для матриц с размерами 16x16.
Ограничение связаны с невозможностью отображения часов крупным шрифтом 5x7 для которого требуется матрица не менее 23 пикселей по ширине.
Для матриц менее 23 колонок шириной в часах может использоваться только шрифт 3x5 для которого достаточно 15 колонок.
Железо
- Проект собран на базе микроконтроллера ESP8266 в лице платы NodeMCU или Wemos D1 mini (неважно, какую из этих плат использовать)
- Реализована поддержка микроконтроллера ESP32, имеющего больший размер оперативной памяти и быстродействие, что позволяет управлять матрицами с большим количеством светодиодов
- Матрица может быть реализована на адресной ленте или отдельных светодиодах WS8212b, спаянных в нити гирлянды проводами
- Также для компактных панелей может использоваться соединение нескольких гибких адресных матриц 16×16, состоящих из 256 диодов с плотностью 100 штук на метр, что позволяет
легко получить панели размерами 32х16, 48x16, 64x16 и так далее (до 128 по ширине и/или высоте).
- Система управляется со смартфона по Wi-Fi в локальной сети или из любой точки мира через MQTT, а также “оффлайн” с кнопки на корпусе (сенсорная кнопка на TTP223 или
любая физическая кнопка с нормально разомкнутыми контактами)
- В случае реализации проекта в виде большой настенной матрицы поддерживается функционал будильника-рассвет и индикация текущего времени на индикаторе TM1637,
что позволяет в ночное время полностью выключать саму матрицу, оставляя возможность отображения текущего времени на этом индикаторе
- Поддерживается загрузка файлов анимации формата *.out программы Glediator с SD-карты.
Фишки
- Более 40 крутых эффектов с поддержкой отображения часов или текста бегущей строки поверх эффектов
- 4 интерактивные игры: Лабиринт, Змейка, Тетрис, Арканоид (в программе-компаньоне "WiFiPlayer")
- Отправка картинки со смартфона на матрицу (в программе-компаньоне "WiFiPlayer")
- Рисование на матрице (в программе-компаньоне "WiFiPlayer")
- Сохранение нарисованных изображения на SD-карте или во внутренней памяти микроконтроллера
- Загрузка сохраненных изображений на матрицу и в программу "WiFiPlayer" для редактирования
- Редактирование и создание картинок пользователя пригодных для загрузки на матрицу в утилите "JinxFramer".
- Регулировка яркости эффектов относительно яркости часов или текста бегущей строки, отображаемых поверх эффектов
- Возможность задания до 36 разных текстовых строк, задание порядка их "воспроизведения" a также параметров отображения.
Тексты задаются из программы на смартфоне без необходимости перепрошивки контроллера.
Как настроить.
Обсуждение текстов.
- Поддержка текста бегущей строки с отображением оставшегося до события времени, например: "До Нового года осталось 5 дней 12 часов"
и после наступления события - вывод специального текста, например: "С Новым 2022 годом!!!"
- Текст бегущей строки может отображаться различными цветами внутри одной строки
- Поддержка в бегущей строке шрифтов трех размеров: малый (5x8 точек), средний (8х13 точек), большой (10х16 точек) - настраивается в скетче при компиляции проекта
- Поддержка символов украинского и литовского языка (в этом случае - размер шрифта 5x11. 8x17, 10x20 точек)
- Настройка скорости и вариаций отображения для каждого эффекта со смартфона
- Поддержка эффектов анимации, подготовленных в программе “Jinx!”, сохраненных на SD карту
- Редактирование роликов анимации с SD-карты в утилите "JinxFramer".
- Создание кадров для эффекта "Анимация" в утилите "JinxFramer" для последующего экспорта кода, пригодного для включения в скетч проекта.
- Работа системы как в локальной сети, так и в режиме “точки доступа”
- Система получает точное время из Интернета
- Управление кнопкой: смена режима, настройка яркости, вкл/выкл, отображение текущего IP адреса устройства
- Режим будильник-рассвет: менеджер будильников на неделю в приложении
- Отображение текущего времени на индикаторе TM1637
- Отображение текущего времени на матрице поверх эффектов
- Отображение текстовых сообщений на матрице поверх эффектов
- Настройка сервера синхронизации времени из программы на смартфоне
- Установка текущего времени со смартфона вручную, если не удалось подключиться к серверу времени NTP
- Два режима работы индикатора времени TM1637 - светится постоянно или выключается вместе с панелью
- Пока время не получено с сервера NTP - на индикаторе TM1637 отображается --:-- вне зависимости от настройки
"Выключать индикатор при выключении панели"
- Поддержка звука будильника / звука рассвета звуковой платой MP3 DFPlayer
- Настройки сетевого подключения (SSID и пароль, статический IP) задаются в программе и сохраняются в EEPROM
- Если не удается подключиться к сети (неверный пароль или имя сети) - автоматически создается точка подключения
с именем PanelAP, пароль 12341234, IP 192.168.4.1. Подключившись к точке доступа из приложения
можно настроить параметры сети. Если после задания параметров сети WiFi соединение установлено -
в приложении на смартфоне виден IP адрес подключения к сети WiFi.
- Отображение текущего IP адреса устройства на индикаторе TM1637 или на матрице в режиме бегущей строки
- Быстрое включение популярных режимов из приложения
- Четыре программируемых по времени режима, позволяющие, например, настроить автоматическое выключение панели в ночное время
и автоматическое включение панели вечером в назначенное время
- Два специальных режима времени - "Рассвет" и "Закат". Время рассвета и заката на текущий день берется с сервера погоды при получении текущих погодных условия и температуры
- Получение текущей температуры воздуха и погоды с сервера Яндекс.Погода или OpenWeatherMap. Полученные данные могут отображаться в бегущей строке или в режиме отображения времени вместе с часами
Код региона (города) указывается в настройках в программе на смартфоне. Настройка погоды - тут
- Возможность управления из любой точки планеты через подключение к MQTT-серверу из приложения на смартфоне или с использованием ассистентов умного дома (Яндекс Алиса, Google Ассистент и т.д.)
Настройка подключения к MQTT-серверу здесь
Описание API управления устройством здесь
- Поддержка составных матриц, собранных из стандартных матриц 8x8, 16x16, 8x32 в одну матрицу большого размера.
- Настройка размеров матрицы (ширины и высоты), а также способ ее подключения - угол, направление из угла задаются в приложении-компаньоне
WiFiPanelSetup без необходимости перепрошивки микроконтроллера.
- Синхронизация эффектов между устройствами. Может быть создано до 10 групп устройств, количество устройств в группе - не ограничено.
- Беспроводная трансляция эффектов на матрицу устройств из специализированных программ типа Jinx!, Wixen Lights, xLights и подобных по протоколу sACN Streaming ACN E1.31 DMX
- Новое! Возможность работы со сборными матрицами, собранными из сегментов любых размеров, с любым способом подключения (угол, направление из угла, зигзаг/параллельная).
Эффекты:
- Заливка панели белым или другим выбранным цветом
- Снегопад
- Блуждающий кубик
- Пейнтбол
- Радуга (горизонтальная, вертикальная, диагональная, вращающаяся)
- Огонь
- The Matrix
- Шарики
- Конфетти
- Звездопад
- Шумовые эффекты с разными цветовыми палитрами
- Плавная смена цвета заливки панели
- Светлячки
- Водоворот
- Мерцание
- Северное сияние
- Циклон
- Тени (меняющийся теневой рисунок на матрице)
- Демо-версия игры Тетрис - автоигра без возможности управления
- Демо-версия игры Лабиринт - автоигра без возможности управления
- Демо-версия игры Змейка - автоигра без возможности управления
- Демо-версия игры Арканоид - автоигра без возможности управления
- Демо-версия игры Эволюция (симулятор жизни) - автоигра без возможности управления
- Движущийся синус
- Палитра (лоскутное одеяло)
- Имитация графического индикатора спектра, движущегося "в такт музыке".
- Вышиванка
- Дождь
- Камин
- Стрелки
- Погода (слайдшоу или отображение текущих погодных условия)
- Отображение анимированных картинок
- Фоновые узоры (нотки, сердечки, снежинки, зигзаги и т.п.)
- Анимация с SD карты
- Звезды - вспышки крестообразных "звезд" по всему полю матрицы
- Штора - имитация светодиодной шторы на окне
Игры:
Доступны в приложении-компаньоне "WiFiPlayer"
- Лабиринт
- Змейка
- Тетрис
- Арканоид
Кнопка управления режимами, последовательность переключения:
Будильник сработал, идет рассвет или мелодия пробуждения
- Любое нажатие кнопки отключает будильник
Долгое удержание кнопки
- При включенной панели - плавное изменение яркости
- При выключенной панели - включение яркой белой панели освещения (только для сборки типа "Лампа" - DEVICE_TYPE == 0)
Однократное нажатие кнопки
- Включение / выключение панели. При включении возобновляется режим на котором панель была выключена.
Двухкратное нажатие кнопки
- Ручной переход к следующему режиму
Трехкратное нажатие кнопки
- Включение демо-режима с автоматической сменой режимов по циклу
Четырехкратное нажатие кнопки
- Включение яркой белой панели освещения из любого режима, даже если панель была "выключена" /для сборки типа "Лампа"/
Отображение IP адреса панели на матрице и на индикаторе TM1637, если подключение к локальной WiFi сети установлено /для сборки типа "Панель"/
Пятикратное нажатие кнопки
- На индикаторе TM1637 и на матрице отображается IP адрес панели, если подключение к локальной WiFi сети установлено /для сборки типа "Лампа"/
Папки
ВНИМАНИЕ! Если это твой первый опыт работы с Arduino, читай инструкцию
- Android - файлы с приложениями, примерами для Android и MIT App Inventor
- firmware - прошивки
- libraries - библиотеки проекта.
- pics - примеры картинок для загрузки / отображении на матрице
- schemes - схемы подключения компонентов
- sounds - звуковые файлы будильника для размещения на SD-карте
- tools - полезные утилиты, Jinx! и другие
- wiki - файлы раздела wiki-страниц GitHub
Схема
Варианты схем с различным набором компонент, для микроконтроллеров ESP8266 - NodeMCU, Wemos d1 mini, ESP32 представлены здесь.
Вариант релизации от Дмитрия (7918514) - схемы, фотографии сборки и готового изделия, печатные платы - все материалы доступны по ссылке в папке "Монстр".
Материалы и компоненты
Ссылки оставлены на магазины
Полный список компонентов есть в статье https://alexgyver.ru/matrix_guide/
Вам скорее всего пригодится
Как скачать и прошить
- Первые шаги с Arduino - ультра подробная статья по началу работы с Arduino, ознакомиться первым делом!
- Скачать архив с проектом
На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP
- Установить библиотеки в
C:\Program Files (x86)\Arduino\libraries\
(Windows x64)
C:\Program Files\Arduino\libraries\
(Windows x86)
- Подключить внешнее питание 5 Вольт
- Подключить Arduino к компьютеру
- Запустить файл прошивки (который имеет расширение .ino)
- Настроить IDE (COM порт, модель Arduino, как в статье выше)
- Настроить что нужно по проекту
- Нажать загрузить
- Скачать и установить на смартфон GyverPanelWiFi
- Пользоваться
Подробная инструкция тут
Важно
Если проект не собирается (ошибки компиляции) или собирается, но работает неправильно (например вся матрица светится белым и ничего не происходит) - проверьте версии библиотек. Данный проект рассчитан на работу с версиями библиотек поддержки плат ESP версии 2.7.4 и библиотеки FastLED версии 3.4.0 или более новой - 3.5.0;
Не используйте библиотеку поддержки плат ESP8266 (ядро) версии 3.x.х и ESP32 версии 2.x.x - с ними проект работать не будет ввиду несовместимости с библиотекой FаstLED указанных версий
Если в качестве микроконтроллера вы используете Wemos D1 - в менеджере плат для компиляции все равно выбирайте "NodeMCU v1.0 (ESP-12E)", в противном случае, если выберете плату Wemos D1 (xxxx), - будет работать нестабильно, настройки не будут сохраняться в EEPROM, параметры подключения к локальной сети будут сбрасываться каждый раз при перезагрузке, плата вместо подключения к локальной сети будет каждый раз создавать точку доступа.
Полезная информация