Хотите часы с синхронизацией по 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 не поддерживает).
2. Один модуль на ESP8266. Например
WeMos Mini D1 за $1.83.
3. В качестве будильника, кукушки и плеера выступает SD card mp3 модуль —
DFPlayer Mini с управление по UART. На алишечки стали появляться
совсем кривые платы с непонятной прошивкой и системой команд. Часы поддерживают только модули на чипах YX5200, YX5300, JL AAxxxx и GD3200B.
Будьте внимательны при покупке!!! Можно сэкономить $1.20 и не брать, основной функционал часов будет работать и без плеера.
Модуль желательно немного обработать напильником. Китайцы зачем-то ставят перемычку не туда. Из-за этого во время инициализации чипа из динамика валит шум и треск. У усилителя DM8002 есть standby режим, а у DFPlayer Mini есть пин busy. Нужно просто перепаять резистор/перемычку справа (STBY->GND) налево (STBY->BUSY).
На плату с GD3200B перемычки не завезли. Тут нужно поднять с земли pin 1 (standby) усилителя NS8002 и бросить от него провод к пин 3 (busy) плеера GD3200B. Также можно попытаться уменьшить треск добавлением резисторов 1 кОм последовательно с контактами TX/RX DFPlayer и ESP8266.
Сборка и прошивка:
Качаем мой проект с
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.
Прошиваем WeMos Mini D1 с помощью
Flash Download Tools. Предварительно выставив:
— SPI speed
80MHz
— SPI Mode
QIO
— Flash Size
32Mbit
— поставить галку
DoNotChgBin
— адрес для fw_latest.bin
0x00000
— адрес для fs_latest.bin
0x200000
Настройка:
Если вы все сделали правильно, то по после прошивки и нажатия reset у вас должна появится новая точка доступа MatrixClock. Подключитесь к ней введя пароль
12345678. После удачного подключения введите в браузере
192.168.4.1 и в появившемся окне User name:
admin и Password:
12345678.
В целях безопасности меняем пароль точки доступа
Settings -> Access Point Config и входа в систему
Settings -> Server Config. Не забываем нажимать Save.
Дальше идем в
Settings -> Station Config и вписываем имя и пароль вашего роутера. Для тех кому лень жмем кнопку Scan. ESP8266 найдет все точки доступа и рассортирует их по уровню сигнала. Если точек с одинаковым именем несколько, то ориентируемся по полю BSSID c MAC адресом роутера.
Было замечено, что ESP8266 неадекватно медленно отдает страницы при уровне сигнала меньше -60dBm. Советую подобрать уровень мощности передатчика в поле
Power под себя. Помним — чем выше мощность, тем больше потребление. Еще ходят слухи, что ESP8266 создает помехи другим при мощностях выше +18.0dBm. Текущий уровень сигнала можно посмотреть во вкладке
Settings -> ESP8266 Modem Info, а качество сигнала в % на странице
Settings -> ESP8266 Info
Жмем
Save & Reboot. Если матрицы не мигают 5 раз и не показывают время, перейдите на страницу
Settings -> Matrix Driver Config и переставьте вывод CS в соответствии со схемой, затем нажмите
Save & Reboot. Убедитесь, что GPIO13 / D7 подключен к DIN / MOSI, а GPIO14 / D5 — к CLK / SCLK.
После удачного подключения 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 не очень, так что жать кнопку придется раз в неделю.
Получаем бесплатный ключ API от
OpenWeatherMap и копируем его в соответствующее поле на странице
Settings -> Weather Config, меняем другие поля под себя. Жмем
Save & Reboot. Теперь часы начнут обновлять текущую погоду каждые 2.5 минуты и показывает значок погоды и температуру в течение 5 секунд каждые 10 секунд. Если по какой-то причине у вас пропадет интернет, то вместо погоды будет выводиться иконка ошибки и надпись WiFi как бы намекая вам что верить часам пока не стоит. Не хотите погоды? Просто вводим axxxxbxxcxxxxxxxxxdxxxxxxxexfxxx в поле API Key или оставляем его пустым.
Чтобы кукушка заработала нужно включить DFPlayer Mini модуль на странице
Settings -> MP3 Player Config и настроить громкость MP3 Player-а. Если плеер
заикается,
ведет себя
не адекватно —
у вас плохой БП или плохой контакт с SD карточкой. Замените блок питания на что нибудь по мощнее. Не лишним будет конденсатор на 1000мкФ..2000мкФ параллельно DFPlayer Mini.
После этого идем в
Settings -> Alarm Config и настраиваем сигнализацию каждого часа (кукушку) с будильником. Чтобы будильник гарантированно отыграл хотя бы минуту ему дан повышенный приоритет. Например сигнализация каждого часа не сработает в 22-00 если будильник стоит на 22-00 или 22-01.
Жмем
Save & Reboot. Каждый раз при сохранении срабатывает Hourly Chime как бы намекая, что модуль в порядке. Все, минимальная настройка часов завершена.
Внимание: Для ускорения работы сервера, в проекте используются очень агрессивны настройки кеширования HTML и JavaScript. Браузер только первый раз читает эти файлы с MatrixClock и сохраняет себе в кеш. Про последующие обновление
fs_latest.bin он ничего не знает и вместо новых HTML и JavaScript, с вероятностью 100%, будет тянуть старые из кеша. Обязательно чистите кеш после обновления файловой системы.
UDP: Где исходники? Их не будет. Есть только
скомпилированные бинарники. Лицензия arduino (именно в ней написан проект) позволяет не открывать исходный код. То что я сам у себя своровал библиотеку
DFPlayer принято к сведению и виновные будут наказаны.
Только вот смысл в этом какой?
Человек написал основную прошивку сам — помоему и так понятно.
А что до компонентов, то знаете, так можно дойти до того, что она вообще дядькой Ноем, а то и просто колебаниями космоса написана.
как-то так ;-)
без пленки вот так выглядит
это у меня товарищ корпуса спроектировал/напечатал
Как только кто-то выложит в открытый доступ похожий по функциональности и более менее вылизанный проект без детских болячек и глюков. Такой который похож готовое mass market решение, то я сразу открою свой. Мне не жалко. Трясет, когда за твой opensource кто-то начинает брать бабло.
Ну и к вам встречный вопрос, а где ваши исходники посмотреть?
А вот порог вхождения в самоделку для остальных вы повышаете…
-Не кормите свою жадность и зависть смешными оправданиями… Это плохие чувства воспитанные современным обществом… Будьте сильным, проявите волю и разум.
Будьте честным с собой, если вы не опубликуете исходники сейчас, вы не опубликуете их никогда…
Ну а дальше каждый может написать себе часы сам и даже лучше.
плюс новости
<img
исходники тут ссылка
Вы часто используете C-string, а потом бац и по среди кода C++ string (ну тот который в ардуино) почему? Имхо уж если взялись за C-string то надо давить до конца на нем.
И не понятна вот эта конструкция String st = String();. Вот такое String st; вижу всегда, а вот как у вас String st = String(); впервые? Зачем так?
не понято зачем alex_75 вообще взялся за такой способ. он раньше по тексту программы спокойно обходился C-string, который для микропроцессоров меньше фрагментирует память и дт и тп. создается впечатление, что код надерган из разных проектов.
String st = "" — так тоже можно
сложности в основном возникают в «чистоте» выделяемого объема памяти. Из меня прогер так себе, поэтому раньше в строках мусор проскакивал. В крайних версиях софта стринги остались может быть тока в вебе, в остальном коде везде char* (указатель на массив из символов).
Вообще в крайних версиях концепт кода очень сильно поменялся в сторону объектов. Когда дорасту (может и никогда) в основном скетче останется с десяток строк и только основные процедуры, все остальное уедет в классы. и вообще надо на ртос переходить
у программистов это завется — C-string (от языка программирования С и слова строка по английски). в С++ работа со строками поменялась и стала больше походить на то, что имеем в Arduino.
В сети куча холивара на тему что лучше. имхо C-string для МК лучше, тк меньше фрагментирует память и дт и тп. в своих проектах я везде использую C++ String тк он удобнее. правда я всегда применяю пару уловок, чтоб не сильно дробить heap. в MatrixClock фрагментацию можно посмотреть в вебморде — вкладке ESP8266 Info. Обычно всегда доступно 29КБ..30КБ и фрагментация 3..25%
я смотрел пару опп проектов (по моему это был паяльник и фен). не понравиться. очень тяжело читать 100500 наследований. для себя изобрел такой велосипед
все библиотеки сенсоров и драйверов в опп (классы) а потом…
//файлы связанные с работой файловой системой
filesys_config.h
filesys.h
filesys.cpp
//все что связанно сервером
server_local_config.h
server_local.h
server_local.cpp
и тд…
сами функции внутри файлов объявляю так:
— функции связанные с работой файловой системой в filesys.h
void fs_mountFileSys();
void fs_unmountFileSys();
void fs_factoryReset();
и тд…
— функции связанные с сервером в server_local.h
void server_startServer();
bool server_fileRead(String path);
String server_payloadRead(uint16_t size = SERVER_PAYLOAD_SIZE);
и тд.
теперь если в main.cpp я вижу функция начинается с fs_xxxxx — ага это файловая система идем в filesys.cpp. server_xxxxx — это сервер и тд. преимущество в том, что код чище, им легко управлять и самое главное ЭТИ ФАЙЛЫ МОЖНО ЛЕГКО ПЕРЕНОСИТЬ В ДРУГИЕ ПРОЕКТЫ.
например сейчас пишу Time, Temperature & Humidity Relay. 80% кода безболезненно перетащилось без лишних телодвижений.
ПЫ.СЫ. в xxxx__config.h файлах храню настройки, важные постоянные и структуры. вот пример filesys_config.h
#define FS_JSON_FILE_SIZE 1024
#define FS_JSON_RW_BUFFER_SIZE 64
#define FS_AP_CONFIG_PATH "/xxxxx"
#define FS_STA_CONFIG_PATH "/xxxxx"
#define FS_SERVER_CONFIG_PATH "/xxxxx"
#define FS_NTP_CONFIG_PATH "/xxxxx"
#define FS_MATRIX_CONFIG_PATH "/xxxxx"
#define FS_WEATHER_CONFIG_PATH "/xxxxx"
обратите внимание define в тоже начинаются с FS_xxxxx — значит надо смотреть filesys_config.h
По структуре проекта — какая никакая она у меня тоже есть. Пример тому — ветка tablo — когда надо было сделать из основного проекта дауншифт на меге с максимально возможным для этого мк функционалом.
Для меня хорошим тоном считается неиспользование внутри функций глобальных переменных. Обмен между модулями осуществляется через структуры описанные в одном большом ашнике «юдт» (юзер дата тайп).
Отказ от стрингов связан с глючной работой последних в модуле формирования месседжей. Там, в связи с ограниченными ресурсами меги, пришлось активно заюзать Progmem. Так вот мега с 8266 с прогмемом работали сносно, а 32ка упиралась. Вообще для нее даже простой пример записи строки с текущим временем вида «Среда 6 октября 2021г» был непосильной задачей. Хотя та-же 8266 справлялась на раз два. Видимо сказываются различия в реализации стандартных функций меги для еспих.
это как? можно подробнее. у меня вроде хватает. esp8266 конечно накладывает ограничения на выбор периферии, но не настолько чтоб для реле не хватило.
если для себя то ок, но если для людей, то это адЪ. я, как бы ковыряясь в этом не первый год, не сразу понял что к чему на вашей картинке. совет — не надо тащить дрель в кухонный миксер. ничего хорошего из этого не получится.
Следующие 4 для дисплеев, нужны? Нужны.
Следующий для термостата — тут варианты.
Следующий для rtc, опять нужный. Следующий для будильника — обязателен.
Следующая пара — кнопка с лампочкой — сильно желательно.
Оставшаяся тройка аналоговый вход для управления яркостью экрана через фоторезистор.(полезно) подключения датчика dht22(желательно) и управление обменом по усарту(вариабельно).
Так что мало ножек, мало.
если хотите чтоб ваши часы собирали — все должно быть просто и интуитивно понятно.
ссылка
Имеет смысл только востребованная функциональность и отсутствие багов. Ну, и для будильника — автономность. Не в новых фичах фреймворка счастье. Очередная версия винды вам в пример.
кстати все будильники и тд в этом проекте написаны на ticker.h (аппаратный таймер). в главном цикле практический ничего нет. вот этого всего if millis() < alarmTime — нет. 90% времени часы ничего не делают.
Там функционал в сто раз выше…
Без них мы бы до сих пор ели репу в избе.
Для плеера уже на гите. Для MAX7219 скоро. Пока руки не доходят осциллографом проверить что там на шине. Не хочется сырое выкладывать.
заселена роботами. Чего я не удивлен?forum.amperka.ru/threads/Часы-на-esp8266-и-max7219-android-управление.12767/
У меня они не могут подключится к wifi после его длительного отсутствия( я наночь вырубал вай фай) утром часы не могли к нему подключится… В итоге время показало, а погоды не было.
Возможно у меня сама esp глючная…
Однако не в обиду, все уже придумано до нас.
Сделал аналогичные часы с ntp, погодой, будильником, праздниками, датчиком температуры/влажности в квартире и автоматической регулировкой яркости. Проект отсюда wifi clock
Есть автояркость, сенсорная кнопка для вкл/выкл будильника/показать погоду не дожидаясь когда этого захотят часы. У кнопки еще вроде есть функции, но я использую только эти. Обновить прошивку можно прямо из веб-интерфейса часов, оттуда же можно попасть на страницу с файлами проекта. 2 варианта прошивок- на 4 матрицы, и на 8. Автор вроде как поддерживает этот проект- было несколько обновлений прошивки, крайняя была в июне.
В проекте похоже все html страницы захаркодены и являются частью программы. Это не очень хорошо.
На мой взгляд время должно быть постоянно, а если уж хочется показывать остальное, то отдельно.
12 лет назад творил такое же почти, но не diy, а за деньги.
Две длинные красивые строки, принимадло 485 на атмеле, железный корпус в пять метров длиной на ножках.
Без веб-интерфейса и упаси боже jQuery (я знаю мало вещей, которые сбрасывают у людей запросы по зарплате так же сильно, как упоминание этой библиотеки. А bootstrap сам ничего, кстати, если только css брать).
Оптимально: non-reactive frontend. Все отстанут сразу.
С хорошим/большим отображением часов и звучанием?
Например реализацию из планшета?
например фирма Adafruit никода с таким не парятся — лишь бы температуру и влажность отдавала и хватит. я так не могу.
так вот я посмотрел TEA5767/Si4844/RDA5807 и понял, что с RDS я быстро не разберусь. засада — парсер RDS. я его быстро не напишу. в стандарте этих RDS несколько видов и все отличаются коррекций ошибок и тд, а сам стандарт тоже не маленький по объему чтения.
Чисто приемник без RDS не мой стиль — либа должна поддерживать все или я за такое не берусь.
но в планах есть прикручивание RDA5807. когда это будет? не знаю. но в ближайший год точно не ждите. вам тогда лучше посмотреть другие проекты.
у меня всегда была английская винда я привык к такому расположению недель. интерфейс действительно не мой — это boostrap. в нем все стандартизировано. вы складываете html из его кубиков.
У меня тоже винда на английском. Но региональные настройки — для моей страны, не для америкосов.
у меня другой принцип — полное погружение, без всяких но. например — уж если учить язык программирования то сразу по первоисточнику (англиканским учебникам, тк все это было придумано там)
ну и для Европы я специально выделил выходные красным. стараюсь следовать правилу — сделано людьми для людей.
ну и в конце. когда Россия придумает, ОС круче Windows и этой ОС начнут пользоваться 2 миллиарда людей, тогда она сможет диктовать свои региональные настройки и мир перейдет на них, а пока имеем так — Sa, Fr, Th, We, Tu, Mo, Su
пока у настолько один известный продукт на весь мир — АК47. Думаю если мы на нем начнем штамповать Mo, Tu, We, Th,Fr, Su, Sa то гладишь и что нибудь изменится.
Именно поэтому та же Windows не требует что бы «Sun» было обязательно первым. Это не стандарт, а больше как региональная особенность или предпочтение и потому легко выставляется в настройках.
Для ОС ведь без разницы, а некоторые люди вообще не замечают этого вне зависимости от страны проживания.
Нашёл ещё одну версию по поводу первого дня «Sunday» — говорят, что это ещё от древнего Египта пришло и просто показывало их почтение богу Ра (бог Солнца — Sun).
То есть, тогда ни английский язык и, уж тем более, Windows миром не правили.
Я ещё не говорю о том, что обычно с этим не поздравляют так особо. Уже только по этой причине могли странно посмотреть.
Не-не, именно потому что у них не с первого числа.
Хотя да, у тебя в профиле US, ты ж и сам знаешь :)
А основной массе — тяжело понять много чего…
Микрофона и камеры с жпс-ом нет :)
А всё остальное легко высмотреть сниффером :)
Количество будильников на день ограничено одним?
это какой-то новый протокол, наверное NTP через SNMP и TCP :)))
По поводу будильника хотелки — то. без чего я бы сейчас будильник уже не брал:
— не ежедневный, а по дням недели;
— желательно два — второй может быть разовым — на ближайший день плюс, полезно бы, на конкретную дату;
— отключение ближайшего срабатывания без отключения дальнейших срабатываний по расписанию; а раз уж управление снаружи, то не только ближайшего, но и «до конкретной даты».
Не совсем понял, как будильник отключать и есть ли снуз.
Было бы удобно регулировку подсветки кнопкой на корпусе — цикл из двух-трёх разных яркостей, которые можно задавать снаружи.
Отключается снятием галки с Daily Alarm и все что связано с будильником (кроме галки) пропадёт с html страницы.
Сенсорная кнопка для упраления, будильник, датчик температуры и влажности, праздники, автояркость.
Я бы выложил свои если нашёл похожий. А пока у всех вся одна и таже копипаста… чем помогут?
В теории да, на практике так удобнее, что то можно быстро подправить в коде и залить.
А можно часы с синхронизацией по спутнику(навстар, глонасс, бейдоу, галилео)
Вот здесь, например, все коды выложены. https://github.com/Lightwell-bg/LWClock и даже модель для печати.
для MAX7219 скоро выложу. с ними надо еще разобраться, что то там не то. Толи мои MAX7219 не настоящие и ведут себя как MAX7221, тол и я что-то напутал.
и у меня встречный вопрос а где ваш opensource посмотреть?
раз вы спрашиваете, значит уже собрали. как вам проект, не заметили ли каких глюков? вы пока третий (из тех что мне на 100% известно) кто собрал. два других (один с жж второй с муськи) очень сильно помогли отловить баги и глюки. спасибо им за это.
особых глюков не заметил, разве что прошилось с первого раза криво, веб морда поднялась, но сами модули работали неадекватно. На каждый модуль выводилась минута (цифра). Решилось перепрошивкой прям из веб морды.
По поводу секунд, я их на яркости левел-0 в спальню пристроил, ночью самое то, но мигание немного мешает.
Так-же из хотелок возможность настройки интервала показа погоды, раз в 10 сек лично мне слишком часто. Но это вообще не критично. А все же мигание хотелось бы иметь возможность отключать.
Спасибо!
попробуйте заменить R1 на всех драйверах, информация есть в статье. будет полегче, но не забывайте что разрабатывались эти микросхемы с учетом того, что перед матрицами будет светофильтр задерживающий часть света.
я это конечно могу сделать, но имхо слишком много настроек — это тоже очень плохо. не хочу превращать проект в адскую мешанину по типу как у часов Марселя Ахкамова, где можно настроить все, но толку от этого…
какой интервал вы считаете нормальным?
А вот не знаю )) И соглашусь, что перегружать лишними настройками скорее зло. Хотя если будете развивать проект, как вариант сделать как на некоторых роутерах режим настройки симпл и типа продвинутый.
Просто вот совсем мёртво показывать точки не хочу. Не понятно esp8266 зависла или провод отвалился с spi (последний вариант случается часто, если все на соплях. драйвер продолжает показывать, что в sram осталось и без мигания будет казаться, что все хорошо)
1. У вас самое лучшее по мне отображение погоды, без лишних бегущих строк, все только по делу.
2. Датчик освещенности штука копеечная, но реально работает, удобно, монтаж на две ноги, без резисторов.
3. Четырех матриц достаточно для часов, тем более есть готовые модули, пятый модуль костыль, яркость может не совпадать, оттенок.
4. По поводу мигания точек, попробовал на других проектах самые разнообразные виды, мне больше всего зашло — секунда через секунду, и не часто и не редко.
Еще раз, это только мое мнение, вам спасибо за проект!
у меня самописный драйвер для MAX7219. Почти все проекты использую готовые драйвера с github. принцип их работы такой — в heap памяти выделяется 8-байта х 4матрицы=32байта в которые загоняется текст, а потом читают. вроде бы не много, но если вы подключите 16 матриц то в AVR уже может не влезть. я пошел другим путем — одна матрица один символ. в таком режиме сильно упрощается вывод текста и не нужен буфер — экономим на спичках те 32 байта. я согласен 5 матриц — мой небольшой косяк. я пока не понимаю как мне реализовать вывод текста на 4 матрицы без буфера или с очень маленьким буфером — 16-байт (загоняем не на 4 матрицы а только на 2)
спасибо. пробую добавить анимированные и ваш вариант.
именно по этой причине от него отказался. найдется 1 из 100 кто воткнет не туда, а перепаивать smd не каждый умеет.
Еще замечание, можно погоду — температуру отображать от правой матрицы? сейчас на улице +2 и при отображение заполняются первые 4, а последняя пустая, смотрится не очень. Понятно, что при двузначных значениях все норм.
вот тут видно, про что я
холодно у вас уже однако.
добавил 3-и типа точек. сегодня проверю и выложу. чтоб все заработало нужно будет отчистить кеш браузера.
После заката солнца, освещение в комнате может очень сильно варьироваться: от «ярче чем днём» до «свет от звёзд».
Хотя добавить настройку частоты мигания точек возможно стоило бы.
не может быть, последняя версия на 03 ноября 2021 была залита 8 дней назад.
вы change_log.txt читали? добавил. теперь благодаря юзеру upr1se три типа — раз в секунду, раз в две секунды и анимированая.
change_log не читал, но видел эти настройки в интерфейсе, выбрал в итоге раз в две секунды как наименее тревожное из предлагаемого. Но я имел в виду не выбор из двух пунктов а поле куда можно вставить значение, впрочем, 2 секунды тоже норм :)
Обычно даже купленные у одного продавца матрицы отличаются по светимости. ХЗ почему. В итоге остановился на часах из 4 матриц(сделал четверо на 4-х матрицах и одни на 8-ми)
Если вебка нужна не примитивная, то лучше заменить esp8266 на esp32
Для больших часов матрицы мелковаты, лучше тогда делать на отдельных светодиодах(можно адресных)
Если делать часы для улицы — забить на вайфай и делать с GPS
Если надо максимально дёшево — ESP12+TM1637
.
дело не матрицах, а в самих микросхемах. переставьте местами матрицы и ничего не изменится. тот драйвер, что светил тускло так и останется светить тускло. кто-то из MAX7219 явно подделка. я про это писал в самом начале обзора.
не согласен и мой проект тому подтверждение. все неплохо крутится на esp8266. просто если писать программу методом copy-paste, то да может и esp32 не хватить.
имхо для дома MAX7219 в самый раз. у меня зрение не очень, но даже я вижу время на этих часах с 4..5 метров. для рекламно-уличных конечно лучше делать кластер побольше или переходить на адресные, тут согласен.
имхо такие даже собирать не стоит. дешевле купить китайские в ларьке где все по 30 рублей.
Для часов на четырёх индикаторах на thingverse можно найти готовые модели корпусов, для пяти я пока такое не нашел. В остальном, дело вкуса.
но шрифты — не очень. LED Big Bold — ещё как-то терпимый, но остальные два (ИМХО) боль.
При этом в веб-интерфейсе простой и шикарный шрифт.
А почему-бы не реализовать на 4-х сегментах, кластерами 8 х 5 (В х Ш) с интервалом между цифрами в один ряд?
Правда для этого нужно использовать либо 4 шт. одинарных, либо распилить четверной, чтобы шаг между точками модулей был одинаковый — т.е. модули плотно прилегали к друг другу, а не как на четверном с зазором 1 — 1,5 мм.
Если согласитесь скомпилировать, то с радостью готов написать шрифт.
Спасибо!
с удовольствием добавлю ваш шрифт (ресурсы мк позволяют), но при двух условиях:
— это должен быть полный шрифт, а не куски (должны присутствовать все большие\маленькие буквы английского алфавита, цифры, точки тире и тд. в ASCII формате — это от 0x20/space до 0x7f/del включительно
— ну и он должен мне понравиться
я уже писал выше про 4-е сегмента. у меня самописный драйвер для MAX7219. Почти все проекты в тырнете используют готовые драйвера с github. принцип их работы такой — в heap памяти выделяется 8-байта х 4-матрицы=32байта в которые загоняется текст, а потом читают. вроде бы не много, но если вы подключите 16 матриц то в AVR уже может не влезть. я пошел другим путем — одна матрица один символ. в таком режиме сильно упрощается вывод текста и не нужен буфер. я согласен что 5 матриц — мой небольшой косяк. но меня он устраивает и на 4-е матрицы пока переходить не планирую.
вот тут в конце журнал с историей проекта. почитайте, многие вопросы отпадут.
ИМХО идеальный символ 5 х 8 пикселей через ряд, шириной в 1 пиксель.
Но, всё равно, подумаю над шрифтом 8 х 8 пикселей.
И при открытии с телефона настройки за край экрана уезжают.
Резисторы заменил на 47 кОм, с зелеными матрицами нормально, без светофильтра, правда.
В остальном всё понравилось, автору спасибо.
Какое у вас разрешение экрана? Я мобильный вид настраивал по своему телефону. У меня 412x892. Вангую у вас меньше 412. Узнать свой можно тут — whatismyscreenresolution.net/
Не понял про ‐ «Часовой пояс сбрасывается с +12 на -12». Можно подробнее?
Пы.сы 100mW выходной — этом много. Там есть всплывающая подсказка с рекомендоаюванной мощностью.
360x800,
хотя по спекам больше, чем fullhd должно быть (realme narzo 30). Мощность покрутить надо, выставил такую, потому что уровень сигнала ниже -60 дб был.
Часовой пояс ставлю +12 из списка, отображается на странице правильно, а в списке показывает -12. Хотя, может, просто это первое значение, и так у всех.
Посмотрел разрешение скриншота, 1080х2400. Хз, как так выходит.
Пы.сы. После перепрошивки fw — все настройки сбрасываются к тем что в readme файле.
Не устаю реквестировать датчик освещённости)))
вот как-то не хочется. у меня есть хорошая идея с корпусом и вот датчик в этот дизайн не понимаю куда присобачить. тоже самое с html страницей. щас все просто — галочку поставил\убрал и вот тебе ночной\дневной режим. разберется даже домохозяйка. а как это все с сенсором, да так чтоб интуитивно понятно не знаю.
2.6.0 с гита и 2.6.0 что у меня — SHA256: 924B440FBE3D5035E691B92FEBEEB950BFC97B0911CD1D1B9727E6636BBABC3B
2.5.2 — SHA256: 95517B331DADF2E2FE9665231FFFB4666FE402B4B04BA0810A636827D3E2726D
проверьте у себя SHA256. может вы не тот прошили? win10 добавляет fw_latest(1).bin если такой файл уже есть в папке downloads.
почему не очевидный? там же 2 кнопки upload, два progress bar.
теперь понял почему вы так решили. я добавлю инструкцию, чтоб не было недопонимания. спасибо
С первой платой хоть очень криво, но можно было включать/выключать музыку, громкость, но «кукушка» и будильник не работали, вторая на web-кнопки вообще не реагировала. Обе платы на замыкание пинов управления работают нормально. Может кто-нибудь, что-нибудь подсказать? Или нужен DFPlayer с перемычкой?
ну и глупый вопрос? у вас карточка до 32GB и отформатирована в FAT16, FAT32? структура папок такая:
— 01
— 02
— mp3
Файлы внутри mp3 должны содержать 4-е цифры с ведущими нулями. Например: SD_ROOT/mp3/0001 — My favorite song.mp3.
Пы.сы может вам питания не хватает? Я писал в обзоре — плеер может заикаться или вести себя неадекватно если ему не хвает тока. Проверить просто — убрать звук на минимум или подключить высокомный динамик (это уменьшит потребление). У меня параллельно питанию DFPlayer стоит 1000мкф.
Структура файлов — именно такая.
Динамик — 1Вт, 8Ом
Питание — БП на 1А, можно попробовать на 2А.
Спросил у продавца datasheet, но сомневаюсь, что он что нибудь ответит
По поводу «сами руками команды переберите» — далек от этого, может в выходные найду время поразбиратся.
подправлю библиотеку и добавлю в веморду выбор DFPlayer или DFPlayer Clone. ждите.
поэтому новая версия библиотеки откладывается. прошу вас пробовать убрать резисторы на RX и TX и на их место установить перемычки. спасибо.
RX — идет на 15 пин
Резисторов между ними нет.
Это для DFPlayer №2
На №1 — пины от RX и TX тоже идут напрямую в микросхему.
Посмотрел под лупой: правильно написали:
№1 м/с GD3200B
№2 м/с MH2024K-24SS
Вот здесь есть ссылка на GITHub вроде с библиотекой для MH2024K-16SS (если я не ошибаюсь.....)
Полутрочасовое гугление не принесло каких-либо результатов найти спеки на MP3-TF-16P v3.0
итого. похоже эти новые ревизии на GD3200B и MH2024K — это что-то с чем-то.
serg207 и turantino, я могу чисто для вас скомпилировать тестовую версию с драйвером без передачи checksum (у меня есть догадка что дело в ней). если тест не сработает — это значит, что кроме checksum китайцы изменили систему команд и тут или ждать datasheet или руками с помощью SerIO.
пысы. часы могут работать и без кукушки.
если не хотите чистить весь кэш. можно почистить только для player_config.js (он отвечает за сохранение). заходим на странице mp3 player config в Inspect (правой клавишей мыши на свободном поле). дальше network, перегружаем страницу, ищем player_config.js, правой клавишей по нему, clear browser cache, опять перегружаем страницу
исходники обновленной DFPlayer тут.
Я бы вкорячил на стену матрицу шириной метра 2.
Что до показа влажности и давления на дисплее часов, то такой эксперимент был и показал свою полную нежизнеспособность (не информативность, бесполезность). Всем участникам эксперимента тупо было не понятно как ему пригодится влажность в % и давление в hPa для решении бытовых задач (выбор одежды итд). А вот иконка погоды (дождь, снег, туман, облачность, гроза итд) и температура понятны даже детям и старикам.
У меня другая идеология. Часы должны стоять на полке, не отвлекать внимание, и не выливать на меня тонны информации. Если мне нужно будет, я сам посмотрю. Почитайте про принцип kiss. Все должно быть просто, надёжно, интуитивно как у АК47 и люди в к вам потянутся.
Пы.сы Скоро будет новое обновление — в шапку web страниц (там где лого и меню) будет добавлена иконка погоды, температура и влажность. Ее не хватало при просмотре графиков погоды. Вот старя картинка макета:
Ладно, соберу погодную станцию отдельно. В принципе, к часам у меня было только требование синхронизация с внешним источником, а то надоело на радио-будильнике время подводить. Пусть будет так.
Часы обновляют погоду раз 1.5...2 минуты (это эхо бесплатного аккаунта на openweathermap, если чаще то можно попасть на блокировку). поэтому да, бываю ситуации когда дождь/снег пошёл, а часы показали сей факт только через 2 минуты.
У меня получается как: хочешь узнать погоду — смотришь на часы, а там: сначала время, потом дата, потом сегодня в N-ске… и вот только теперь — сначала температура, потом осадки, новости, статусы и пр.. У enjoyneering сразу тебе показали температуру и осадки.
С бегущей строкой, КМК, больше подходит для общественных мест типа залов ожиданий, или в общественном транспорте.
Хотя если нравится — то почему бы и нет, пробуйте…
А по поводу дополнительных функций: конечно можно автора попросить, но в данном проекте автор придерживается принципа достаточности, ну или как сам он говорил «kiss». И на то он и автор: хочет добавить, а не хочет — нет. Всем ведь не угодишь.
Вот я бы сюда радио хотел бы встроить, вместо плеера…
Но это будет не скоро. У меня сейчас в работе 3 проекта. Думаю к весне лету я что нибудь покажу.
Это лишнее движение. Тогда уже лучше взять смартфон и все это нормально посмотреть на HD экране с нормальной вёрсткой, а не стоять читая бегущую строку в 64 пикселя дергая кнопку. Я уже писал:
По поводу «посмотреть на HD экране смартфона»: У тещи — бабушко-Фон. Нет у нее такой возможности. Да и самому, чтоб посмотреть, очки одевать надо, — морока. Пусть уж лучше строка бегает.
Еще мне не понравился программерский перечеркнутый «ноль» в Вашем шрифте
Если у тёщи бабушкафон, то ей точно влажность и давление в мм. ртутного столба не нужны, как и пара лишних датчиков
А мне наоборот програмерский «0» зашёл, тк есть ещё буква «O» и представьте себе на экране с разрешением 64 точки очень трудно сделать «0» и «О» разными без перечеркивания. Но к этому вы придёте сами когда начнёте писать свои часы.
Повесил в коридоре. Все устраивает Шрифт бы еще… да ладно.
Вы уникальный человек, с уникальным чувством прекрасного. К сожалению 90% людей не нужно то, что нужно вам. Выход один написать свои часы.
когда перегорела еще одна я забил и сделал себе часы на адресной ленте. Меньше разрешение, но зато работает.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.