MatrixClock — делаем WiFi часы за $10 на AOKIN MAX7219

  • Цена: $10
  • Хотите часы с синхронизацией по SNTP и много чего еще? Тогда прошу под cut с огромным количеством картинок.

    За $10 вы получите:

    — продуманный web интерфейс на Bootstrap + jQuery

    — автоматическая синхронизация с NTP серверами или в ручную со временем из браузера

    — автоматически переход с летнего на зимнее и обратно

    — три шрифта на выбор

    — показ прогноза погоды с OpenWeatherMap (в течении 5 секунд, каждые 10 секунд)

    — управление яркостью дисплея по восходу/заходу солнца (с 8 до 20 если нет учетки OpenWeatherMap)

    — обновление прошивки и образа файловой системы через web интерфейс

    — поддержка DFPlayer Mini с управлением по UART (если будильник, кукушка и плеер не нужен можно не подключать)

    — индивидуальная громкость для будильника, кукушки и плеера

    — сигнализация каждого часа (кукушка), на выбор 10 треков с настройкой интервала (чтоб не кукарекал ночью)

    — ежедневный будильник, на выбор 10 треков с плавным нарастанием громкости

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

    Для сборки понадобятся:

    1. Пять драйверов MAX7219 с матричными дисплеями 8х8. К сожалению купить сразу пять по адекватной цене нельзя. Поэтому берем 4-in-1 MAX7219 за $4.48. Докупаем один MAX7219 Dot Matrix module по $1.61. При покупке обязательно уточняйте цвет свечения светодиодов. Еще одна головная боль — поддельные MAX7219. Мой одиночный модуль светит чуть-чуть темнее чем купленные ранее 4-in-1. Перестановка матриц не помогла. Тот драйвер, что светил тускло так и остался светить тускло.

    Модули желательно слегка доработать. Китайцы упорно ставят неправильный номинал токоограничивающего резистора. На светодиоды матрицы — при максимальной яркости, шарашит адский ток. Меняем все R1 с 10K на 59K для красных светодиодов 2.5V/10mA или 25K для 2.5V/20mA. Для остальных цветов и токов прошу смотреть таблицу в MAX7219 datasheet.

    Для тех кому размер пикселя 3мм мал, может отдельно купить матрицы со светодиодами 3.75мм (на 30% больше поле) или 5мм (на 300% больше поле), но только common cathode (другие типы MAX7219 не поддерживает).

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    2. Один модуль на ESP8266. Например WeMos Mini D1 за $1.83.

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    3. В качестве будильника, кукушки и плеера выступает SD card mp3 модуль — DFPlayer Mini с управление по UART. На алишечки стали появляться совсем кривые платы с непонятной прошивкой и системой команд. Часы поддерживают только модули на чипах YX5200, YX5300, JL AAxxxx и GD3200B. Будьте внимательны при покупке!!! Можно сэкономить $1.20 и не брать, основной функционал часов будет работать и без плеера.

    Модуль желательно немного обработать напильником. Китайцы зачем-то ставят перемычку не туда. Из-за этого во время инициализации чипа из динамика валит шум и треск. У усилителя DM8002 есть standby режим, а у DFPlayer Mini есть пин busy. Нужно просто перепаять резистор/перемычку справа (STBY->GND) налево (STBY->BUSY).

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    На плату с GD3200B перемычки не завезли. Тут нужно поднять с земли pin 1 (standby) усилителя NS8002 и бросить от него провод к пин 3 (busy) плеера GD3200B. Также можно попытаться уменьшить треск добавлением резисторов 1 кОм последовательно с контактами TX/RX DFPlayer и ESP8266.

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    Сборка и прошивка:

    Качаем мой проект с GitHub и соединяем весть зоопарк по схеме:

    — MAX7219 соединяем так GPIO13/D7 к DIN/MOSI, GPIO14/D5 к CLK/SCLK, GPIO15/D8 к CS (можно поменять через вебморду), Vcc к +4.0v..+5.0v и Gnd к Gnd.

    — DFPlayer Mini: GPIO5/D1 к RX, GPIO4/D2 к TX, Vcc к +3.2v..+5.0v, Gnd к Gnd, 2W/4ohm динамик к SPK1 и SPK2. Пишем файлы и папки mp3_sd_root на заранее отформатированную в FAT16 или FAT32 SD карту размером до 36GB.

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    Прошиваем WeMos Mini D1 с помощью Flash Download Tools. Предварительно выставив:

    — SPI speed 80MHz

    — SPI Mode QIO

    — Flash Size 32Mbit

    — поставить галку DoNotChgBin

    — адрес для fw_latest.bin 0x00000

    — адрес для fs_latest.bin 0x200000

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    Настройка:

    Если вы все сделали правильно, то по после прошивки и нажатия reset у вас должна появится новая точка доступа MatrixClock. Подключитесь к ней введя пароль 12345678. После удачного подключения введите в браузере 192.168.4.1 и в появившемся окне User name: admin и Password: 12345678.

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    В целях безопасности меняем пароль точки доступа Settings -> Access Point Config и входа в систему Settings -> Server Config. Не забываем нажимать Save.

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    Дальше идем в Settings -> Station Config и вписываем имя и пароль вашего роутера. Для тех кому лень жмем кнопку Scan. ESP8266 найдет все точки доступа и рассортирует их по уровню сигнала. Если точек с одинаковым именем несколько, то ориентируемся по полю BSSID c MAC адресом роутера.

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    Было замечено, что ESP8266 неадекватно медленно отдает страницы при уровне сигнала меньше -60dBm. Советую подобрать уровень мощности передатчика в поле Power под себя. Помним — чем выше мощность, тем больше потребление. Еще ходят слухи, что ESP8266 создает помехи другим при мощностях выше +18.0dBm. Текущий уровень сигнала можно посмотреть во вкладке Settings -> ESP8266 Modem Info, а качество сигнала в % на странице Settings -> ESP8266 Info

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    Жмем Save & Reboot. Если матрицы не мигают 5 раз и не показывают время, перейдите на страницу Settings -> Matrix Driver Config и переставьте вывод CS в соответствии со схемой, затем нажмите Save & Reboot. Убедитесь, что GPIO13 / D7 подключен к DIN / MOSI, а GPIO14 / D5 — к CLK / SCLK.

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    После удачного подключения MatrixClock к вашему роутеру — Wi-Fi точка доступа Matrix Clock исчезнет. Теперь чтобы попасть в вебморду, на машине с Windows 10, в браузере набираем http://matrixclock.local/. На Android и Win7 используйте IP-адрес часов вместо mDNS. Его можно найти в логах UART на скорости 115200 бит/с или в админке вашего роутера. Переходим в Settings -> NTP Config и устанавливаем часовой пояс, затем нажмите Save & Reboot. Если подключения к интернету не планируется жмем sync Device Time with Browser Time и часы возьмут время из браузера. Точность хода у софтового генератора ESP8266 не очень, так что жать кнопку придется раз в неделю.

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    Получаем бесплатный ключ API от OpenWeatherMap и копируем его в соответствующее поле на странице Settings -> Weather Config, меняем другие поля под себя. Жмем Save & Reboot. Теперь часы начнут обновлять текущую погоду каждые 2.5 минуты и показывает значок погоды и температуру в течение 5 секунд каждые 10 секунд. Если по какой-то причине у вас пропадет интернет, то вместо погоды будет выводиться иконка ошибки и надпись WiFi как бы намекая вам что верить часам пока не стоит. Не хотите погоды? Просто вводим axxxxbxxcxxxxxxxxxdxxxxxxxexfxxx в поле API Key или оставляем его пустым.

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    Чтобы кукушка заработала нужно включить DFPlayer Mini модуль на странице Settings -> MP3 Player Config и настроить громкость MP3 Player-а. Если плеер заикается, ведет себя не адекватноу вас плохой БП или плохой контакт с SD карточкой. Замените блок питания на что нибудь по мощнее. Не лишним будет конденсатор на 1000мкФ..2000мкФ параллельно DFPlayer Mini.

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    После этого идем в Settings -> Alarm Config и настраиваем сигнализацию каждого часа (кукушку) с будильником. Чтобы будильник гарантированно отыграл хотя бы минуту ему дан повышенный приоритет. Например сигнализация каждого часа не сработает в 22-00 если будильник стоит на 22-00 или 22-01.

    MatrixClock - делаем WiFi часы за  на AOKIN MAX7219

    Жмем Save & Reboot. Каждый раз при сохранении срабатывает Hourly Chime как бы намекая, что модуль в порядке. Все, минимальная настройка часов завершена.

    Внимание: Для ускорения работы сервера, в проекте используются очень агрессивны настройки кеширования HTML и JavaScript. Браузер только первый раз читает эти файлы с MatrixClock и сохраняет себе в кеш. Про последующие обновление fs_latest.bin он ничего не знает и вместо новых HTML и JavaScript, с вероятностью 100%, будет тянуть старые из кеша. Обязательно чистите кеш после обновления файловой системы.

    UDP: Где исходники? Их не будет. Есть только скомпилированные бинарники. Лицензия arduino (именно в ней написан проект) позволяет не открывать исходный код. То что я сам у себя своровал библиотеку DFPlayer принято к сведению и виновные будут наказаны.

Оцените статью
Добавить комментарий