You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+27-12Lines changed: 27 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Часы на основе матрицы на адресных светодиодах.
1
+
# Часы на основе матрицы на адресных светодиодах
2
2
3
3
Работает на платформах ESP8266 и ESP32 (ESP32, ESP32-s2, -s3, -c3).
4
4
@@ -13,7 +13,8 @@
13
13
14
14
В данный момент переношу некоторые наработки из своего проекта [маленьких настольных часов](https://github.com/SerhiiLe/Clock_Mini).
15
15
16
-
## Возможности часов:
16
+
## Возможности часов
17
+
17
18
- Показывать время
18
19
- Выбор цветового оформления часов.
19
20
- Выбор из нескольких циферблатов.
@@ -31,9 +32,11 @@
31
32
- Ограничение максимального потребления. Ночью потребление в автоматическом режиме снижается до 2,5Вт. Днём зависит от настроек и может достигать 70Вт. Ограничение по умолчанию - 12,5Вт.
32
33
- Минимальное число параметров жестко прописано в коде, большая часть настроек изменяется через Web.
33
34
34
-
## Управление:
35
+
## Управление
36
+
35
37
Управление часами только через Web, так как бессмысленно управлять кучей опций парой кнопок. Однако есть одна кнопка и датчик движения. Датчик движения
36
38
используется для отключения будильника, что логично, раз кто-то ходит возле часов, значит он проснулся. А действия кнопки зависят от количества кликов:
- Керамический конденсатор на 47пФ на питании датчика движения. Я не уверен, что он там нужен, впаял, в надежде улучшить стабильность срабатывания. Разницы не почувствовал.
76
82
- На задней стенке корпуса часов приклеил кусок фольги, напротив датчика движения. Срабатывание стало устойчивее, ложных срабатываний стало меньше.
77
83
- Номинал резистора в паре с фоторезистором я изначально взял из схем других проектов и был не прав. Напряжение на ногу А0 должно поступать 0-3.3V, 1кОм это мало. Для моего фоторезистора оказалось оптимальным 2кОм - 2.2кОм, иначе значения получаются слишком заниженными. А если больше, то чувствительность слишком большая.
@@ -95,7 +101,8 @@ IP адрес только автоматический. Не вижу смыс
Проект собирается с помощью [PlatformIO](https://platformio.org/)
100
107
101
108
Для сборки проекта понадобится следующее:
@@ -126,20 +133,26 @@ WEB интерфейсе находятся в include/define_vars.h Реком
126
133
127
134
Настройка ножек для esp32 взята из расчёта, чтобы ножки соответствовали ножкам "WeMos D1 mini" (esp8266) и "WeMos D1 mini ESP32" [Распиновка esp32-d1-mini тут](https://templates.blakadder.com/wemos_D1_Mini_ESP32.html), отдельную схему не рисовал. Такой вариант позволяет пробовать оба микроконтроллера меняя их в панельке. В любом случае, всегда надо уточнять номера выводов на конкретной плате. А в случае полноценной ESP32 можно оптимизировать подключение ножек, например библиотека FastLED ругается, что матрица подключена не к аппаратному SPI. Но при использовании аппаратного SPI будет задействована только ножка MOSI, а MISO и SCK должны быть не подключенными, у esp8266 просто нет такой роскоши, а у ESP32 есть. Настройка ножек находится в include/defines.h
128
135
129
-
Сейчас профиль esp32 настроен на esp32 :) Чтобы собрать к примеру для esp32-c3 надо в секцию [env:esp32] добавить строчку:
130
-
board_build.mcu = esp32c3
131
-
PlatformIO само скачает нужные файлы платформы и обновит библиотеки. По аналогии можно указывать esp32s2, esp32s3. И не забыть поправить назначение выводов в include/defines.h
136
+
Если использовать модуль ESP32c3, то у него второй полноценный UART, и на 3 ножки больше. Это позволит в будущем добавить аппаратный модуль часов и датчики температуры, влажности, давления. А так-же измерять напряжение на аккумуляторе. Я рекомендую для сборки использовать ESP32c3 Supermini.
137
+
138
+
Сейчас профиль esp32 настроен на esp32 :) Чтобы собрать к примеру для esp32-s2 надо в секцию [env:esp32] добавить строчку:
139
+
board_build.mcu = esp32s2
140
+
PlatformIO само скачает нужные файлы платформы и обновит библиотеки. По аналогии можно указывать esp32s3 или другие из серии esp32. И не забыть поправить назначение выводов в include/defines.h
132
141
133
142
Под платформу esp32 используется своя карта flash, она рассчитана на микроконтроллеры с 4 Мбайт. Сборка с ArduinoIDE в принципе возможна, если собрать все файлы в один каталог и переименовать main.cpp в clock-esp8266-ws2812b.ino Но не советую. PlatformIO само скачает все библиотеки и с формированием файловой системы проблем нет, а вот с ArduinoIDE это всё ручками.
134
143
135
-
## Внешние датчики:
144
+
## Внешние датчики
145
+
136
146
Для удобства управления разными устройствами реализован свой простейший протокол. Всё работает по http. Поиск устройств по MDNS. Настройки в разделе "Охрана".
147
+
137
148
-http://hostname/registration?pin=SHARED_SECRET&name=DEVICE_NAME - регистрация внешнего датчика. Время жизни регистрации задаётся в настройках.
138
149
-http://hostname/send?pin=SHARED_SECRET&msg=MESSAGE_TO_SEND - отправка произвольного сообщения в телеграмм.
139
150
-http://hostname/api?pin=SHARED_SECRET&COMMAND=... - адрес на внешнем датчике, который должен принимать команды.
140
151
141
-
## Отправка текста та экран:
152
+
## Отправка текста та экран
153
+
142
154
Можно отправить сообщение на экран обращением через Web (Дополнительно->Разовый текст) или из скрипта запросом в таком формате:
155
+
143
156
-http://hostname/show?msg=MESSAGE_TO_SEND - для разового показа сообщения.
144
157
-http://hostname/show?msg=MESSAGE_TO_SEND&cnt=XX - для показа сообщений XX раз каждые 30 секунд.
145
158
-http://hostname/show?msg=MESSAGE_TO_SEND&cnt=XX&int=YY - для показа сообщений XX раз c интервалом YY секунд.
@@ -151,7 +164,8 @@ PlatformIO само скачает нужные файлы платформы и
151
164
Можно сокращать msg (text), cnt, int, due до m (t), c, i, d.
152
165
Обязательным является только msg (text), остальные параметры получат значения по умолчанию: 2 повтора, через 30 секунд, цвет "радуга".
153
166
154
-
## Изменения:
167
+
## Изменения
168
+
155
169
- Исправлены все найденные за пол года реальной эксплуатации и раздражающие меня проблемы. Кроме нестабильной работы платы dfPlayer и срабатываний на соседей RCWL-0516.
156
170
- Добавлены возможность дополнительно увеличивать яркость матрицы по времени.
157
171
- Настройки разбиты на две части, отдельно настройки часов, отдельно telegram, теперь они в разделе "охрана".
@@ -164,5 +178,6 @@ PlatformIO само скачает нужные файлы платформы и
164
178
- Синхронизировал порядок и названия циферблатов с проектом мини-часики. Добавил выбор 12/24 часа.
165
179
- альтернативный вариант цвета текста "радуга" и "разные".
166
180
- адаптация под актуальную версию [fastbot](https://github.com/GyverLibs/FastBot)
0 commit comments