Vladimir N. Shilov 2 лет назад
Родитель
Сommit
0e3a455542

+ 49 - 192
Changelog.txt

@@ -1,3 +1,5 @@
+Wall Segment Clock
+
 простые часы на базе ESP8266 ESP-12e
 
 Вдохновил пост на хабре "Бескнопочные часы" http://geektimes.ru/post/267718/
@@ -19,209 +21,64 @@
 на 31.12.2015 всё.
 
 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+Решил попробовать вариант, когда 3-ий и 4-ый индикаторы "вверх ногами", и 
+двоеточие образовано точками от 2-го и 3-го индикаторов.
+Сколько видел такие варианты в фильмах-сериалах - смотрится вполне прилично.
+UPD: развести можно, только я попутал индикаторы и сейчас переделывать просто 
+влом.
 
-Wall Segment Clock
-
-После двух дней ебли с nodemcu решил для своего проектика остановится на Sming.
-за основу взял проект "MeteoControl", выкинул I2C LCD Display, добавил 
-обновление сайта из "HttpClient_ThingSpeak", добавил обработку DHT22 из 
-"Humidity_DHT22", хотел добавить FTP сервер -- но оно не влезло.
-В качестве датчика освещённости можно будет использовать "Light_BH1750", или 
-останется фоторезистор.
+Кроме этого, подозреваю проблему в том, что нельзя индикаторы подключать 
+напрямую к MC74HC595 - может перегреваться, а на 3.3В может тупо не хватить 
+напряжения.
+Этот момент нужно оттестировать обязательно.
 
-"ThingSpeak" планирую заменить на что-то своё, на своём сервере, что ещё 
-предстоит придумать и реализовать. Возиожно это будет не HTTP а что-то на 
-основе UDP (клиент/сервер).
+Возможно, неправильно диммить индикаторы выводами OE - тогда нужно ставить 
+отдельный ключ (ключи) в катоды индикаторов и ШИМ-имить уже им.
 
-Осталось добавить поддержку для MAX7221 и сделать вывод на индикаторы...
-Возможно, по ходу дела придётся что-то выкидывать, чтобы влезло нужное.
+Думаю, что лучше питать м/с не 3.3 а 5 вольт, и на Wemos подавать 5В на её 
+стабилизатор.
+Из 7-ми делть 5-ть импульсником, а 3.3 для ESP - отдельным линейником.
 
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-out/firmware/spiff_rom.bin---------->0x4C000
+Вообще не определился пока с ESP-шкой -- Wemos жалко, осталась одна ESP-12,
+можно попробовать восстановить ESP-07 и применить её.
 
-FTP не влезло на 1594 байта :-(
+Вообще со статикой общее потребление до 1.2 Ампера, что как-бы очень жирно...
+Может всё-таки вернуться к динамике? только не на Максе, а на рассыпухе, на 
+мелких индикаторах можно использовать ТМ1650.
+Вместо мелких можно вообще поставить олед экран (или другой) и на него 
+выводить доп инфу.
 
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-WebTime занимает слегка меньше места чем NTPclient.
+Ещё нужно уточнить реальные размеры индиктаоров.
 
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-2016.01.29
-
-Прикрутил поддержку max7219 с программным spi.
-Сделал вывод времени -- пора проверять в железе.
-
-Нужно придумать как выводить всё остальное -- дату, показания датчиков.
-Как считать дни недели, как определять переход на зимнее/летнее время?
-Как взаимодействовать с внешним миром -- оставлять вебсервер,
-или переходить на UDP сервер/клиент?
-
-по поводу дня недели:
-https://ru.wikibooks.org/wiki/Реализации_алгоритмов/Вечный_календарь
----
-struct struct_date
-{
-    short day;
-    short month;
-    short year;
-};
-
-int what_day(const struct struct_date  const date)
-{
-    int a = (14 - date->month) / 12;
-    int y = date->year - a;
-    int m = date->month + 12 * a - 2;
-    return (7000 + (date->day + y + y / 4 - y / 100 + y / 400 + (31 * m) / 12)) % 7;
-}
+может стоит применить датчик освещённости вместо фоторезистора?
 ---
+2020.10.02
 
-Пример вывода:
-каждые 25-29 и 55-59 секунд на верхние индикаторы выводить дату, а на нижние день недели.
-(01 29 / ПОН ВРН СРЕ ЧРГ ПНА СУБ ВОС)
-в остальное время на нижних чережовать каждые 5 сек темп/влажность (XXc/XXh).
-делать мжно с помощью таймеров и однократного запуска.
-нужно разрисовать подобие КА.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-2016.02.01
-
-Уберу http-клиент, поменяю чуть сбор данных, json буду отдавать с точностью
-в 2 знака.
-Возмжно попробую добавить udp-сервер и ftp-сервер.
-
-Управление внешним выходом в зависимости от температуры/влажности -- это
-конечно прикольно, но мне в часах оно нахрен не нужно.
-
-Далее в планах -- переделать под себя страницу конфигурации,
-убрать всё лишнее, добавить нужное -- например, задание 2-4 порогов регулировки
-яркости в зависимости от внешнего освещения.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-2016.02.02
-
-Переделал обработку времени, поправил обработку данных от датчика.
-
-FTP сервер уже влазит, вот только нужен ли он? 
-
-UDP Server тоже влез. Если я всё правильно понял, то на строку "get_sensors"
-должен возвращать температуру и влажность. На любые другие данные -- echo.
-
-Переделал конфигурацию -- выбросил всё ненужное, добавил настройку уровней 
-освещённости (два) и ировней яркости индикатора (три). Пока не использую.
-План такой:
-	if (ADCVAL < LLow) {
-		MAX7219br = BLow
-	} else if (ADCVAL > LHigh) {
-		MAX7219br = BHigh
- 	} else {
-		MAX7219br = BMid
-	}
-
-Выкинул FTP Server -- какой-то он странный, скачать ничего не вышло,
-закачть уже и не пытался.
-
-Выкинул UDP Server -- запросы принимает, ответа от него не видно...
-Или я что-то не понимаю, или одно из двух...
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-2016.02.02
-
-Заменил м/с MAX7219 -- и всё чудесным образом заработало.
-Один индикатор (ед. часов) бракованый -- не светится верхний левый сегмент,
-нужно поменять местами со средним.
-
-Не очень нравится раскладка 5/3, было бы лучше 4/4.
-
-Поменял отображение темп. и влажности -- символ спереди,
-так кажется более правильно.
-
-Мигающий минус теперь грубо отображет секунды:
- - с 0 по 14 сек -- "минус"
- - с 15 по 29 сек -- "средний и нижний"
- - с 30 по 44 сек -- "верхний и средний"
- - с 45 по 59 сек -- "верхний, средний и нижний"
-Была ещё мысль время выводить в первых четырёх идикаторах, мигать точкой,
-а в 5-ом индикаторы "двоичным" кодом отображать секунды, но пока отбросил.
-
-Белые индикаторы светят заметно ярче синих, пока ничего менять не буду,
-посмотрим как оно будет под светофильтром.
-
-Решил отказаться от вывода даты и дня недели -- не нужно оно.
-
-Нужно вынести в настройку адрес ntp сервера.
-Нужно доделать регулировку яркости. Возможно стоит заменить на плавную.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-2016.02.07
-
-Делаю автоматическую регулировку яркости.
-
-Немогу понять, почему я фоторезистор поставил на землю? Ведь так получается
-не уровень яркости, а уровень темноты...
-
-Как-то я собирал несколько дней инфу с подобнго датчика смотрящего на улицу.
-Статичечки, его знчение приведённые к уровням 0-16 имеют значимую величину
-в диапазоне оот 12 до 16, т.е. всего 4 значения.
-Попробую это дела как-то нормализовать.
-
-Пробовал 12-16 растгивать -- сильно грубо.
-Сейчас сделал 7-14, лучше, но тоже не сильно нравится.
-Похоже, что простое приведение было лучше всего.
-
-Стало зависать постоянно, на ноге сброса -- 0.
-Вынес регулировку яркости в отдельную задачу -- прошло...
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-2016.11.15
-
-Перерисовал схему под статику, 4 шт. 1.5" + 4 шт. 0.8".
-Большие индикаторы запитал через TD62783A (UDN2981).
-MC74HC595A работают и от 3.3В -- отказался от 5-ти вольтового стаба.
-Осталось придумать ШИМ для регулировки яркости и можно пытаться разводить.
-И нужно что-то придумать с сегментными резисторами (20 и 5 Ом)...
-И точки -- или в обход буферов, или больший резистор (185 Ом)
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-2016.11.17
-
-Добил схему.
-Питание -- внешнее 7В + китайский импульсный стаб на 3.3В.
-
-Добил плату -- раскладку "подсмотрел" у китайцев, всё влезло под индикаторы,
-надеюсь что wifi будет работать нормально...
-размер платы -- 194 на 67 мм. Перемычек правда вышло шо пипец...
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-2016.11.21
-
-LDO на 3.3 вольта выкинул потому, что одного мало (я насчитал макс. ток ~1.2А) 
-а два ставить особо некуда, плюс будут большие потери.
-
-Появилась идея -- убрать сегменты точек. Можно даже сократить один сдвиговый 
-регистр, но это принесёт больше гемора. Добавить два синих 3мм ветодиода -- 
-засверлить их между 2-ой и 3-ей цифрами. Подключить или вместо точки второго 
-индикатора, или, что ещё лучше -- задействовать отдельный вывод ESP и 
-транзистр. Хотя тогда появится лишний гемор с регулировкой яркости именно этих 
-светодиодов...
-
-Второй момент -- раширить плату в высоту, вытащить ESP и DHT вниз -- уменьшить 
-толщину "пакета".
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-2016.11.22
+закончил вариант с динамикой и Wemos...
+добавил крепёж -- 152*94 мм
+в качестве корпуса можно поискать фоторамку, но тогда AHT10 нужно на обратную 
+сторону выносить.
+и открытый вопрос с фотодатчиком, и с esp модулем.
+---
+2020.10.21
 
-v1 -- исходная версия
-v2 -- без точек, с двумя светодиодами.
-текущая -- попытался вытащить наружу ЕСП, но не вышло.
+попробую поставить цифровой датчик освещённости, и перенести ESP на лицевую 
+сторону.
 
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-2016.11.23
+надеюсь финал, вроде как устраивает полностью.
+---
+2022.10.02
 
-Хочу пропрбовать сделать раскладку "4 сверху / 4 снизу".
+Дошли руки.
+В процесе запайки платы обнаружил пару моментов - местами можно было сделать 
+лучше. Если будет не лень, поправлю плату.
 
-получилось. вроде неплохо -- 153 на 84 мм.
-переходных -- 59 штук.
+Железо:
+ - WeMos D1 mini Pro (16 MB flash)
+ - TM1650 для нижних 4-х индикаторов
+ - нижние индикаторы по SPI: TPIC6B595 для выбора индикатора, 74HC595+TD62783A - сегменты.
+ - датчик освещённости GY-49 (MAX44009)
+ - сенсор температуры/влажности AHT10
 
-ещё попробовать "вынести наружу" ESP и DHT22.
-кажется получилось -- плата 152 на 84 мм, 62 переходных.
-пока мне этот вариант нравиться больше всего.
+Приступаю к коду.
+Пытаюсь заставить компилиться Sming...

+ 1 - 1
README.md

@@ -1,4 +1,4 @@
-ESP8266 (ESP-12E) based `Wall Segment Clock`
+ESP8266 based `Wall Segment Clock`
 
 Schematic and pcb in hw dir.
 

+ 0 - 45
hw/ReadMe.txt

@@ -1,45 +0,0 @@
-Решил попробовать вариант, когда 3-ий и 4-ый индикаторы "вверх ногами", и 
-двоеточие образовано точками от 2-го и 3-го индикаторов.
-Сколько видел такие варианты в фильмах-сериалах - смотрится вполне прилично.
-UPD: развести можно, только я попутал индикаторы и сейчас переделывать просто 
-влом.
-
-Кроме этого, подозреваю проблему в том, что нельзя индикаторы подключать 
-напрямую к MC74HC595 - может перегреваться, а на 3.3В может тупо не хватить 
-напряжения.
-Этот момент нужно оттестировать обязательно.
-
-Возможно, неправильно диммить индикаторы выводами OE - тогда нужно ставить 
-отдельный ключ (ключи) в катоды индикаторов и ШИМ-имить уже им.
-
-Думаю, что лучше питать м/с не 3.3 а 5 вольт, и на Wemos подавать 5В на её 
-стабилизатор.
-Из 7-ми делть 5-ть импульсником, а 3.3 для ESP - отдельным линейником.
-
-Вообще не определился пока с ESP-шкой -- Wemos жалко, осталась одна ESP-12,
-можно попробовать восстановить ESP-07 и применить её.
-
-Вообще со статикой общее потребление до 1.2 Ампера, что как-бы очень жирно...
-Может всё-таки вернуться к динамике? только не на Максе, а на рассыпухе, на 
-мелких индикаторах можно использовать ТМ1650.
-Вместо мелких можно вообще поставить олед экран (или другой) и на него 
-выводить доп инфу.
-
-Ещё нужно уточнить реальные размеры индиктаоров.
-
-может стоит применить датчик освещённости вместо фоторезистора?
----
-2020.10.02
-
-закончил вариант с динамикой и Wemos...
-добавил крепёж -- 152*94 мм
-в качестве корпуса можно поискать фоторамку, но тогда AHT10 нужно на обратную 
-сторону выносить.
-и открытый вопрос с фотодатчиком, и с esp модулем.
----
-2020.10.21
-
-попробую поставить цифровой датчик освещённости, и перенести ESP на лицевую 
-сторону.
-
-надеюсь финал, вроде как устраивает полностью.

BIN
hw/v1/esp-clock.dch


BIN
hw/v1/esp-clock.dip


BIN
hw/v2/esp-clock.dch


BIN
hw/v2/esp-clock.dip


BIN
hw/v3/esp-clock.dch


BIN
hw/v3/esp-clock.dip


+ 0 - 2
hw/v4/ReadMe.txt

@@ -1,2 +0,0 @@
-Эту плату сделал ЛУТ-ом.
-лежит где-то...

BIN
hw/v4/esp-clock.dch


BIN
hw/v4/esp-clock.dip


+ 0 - 1
hw/v5/ReadMe.txt

@@ -1 +0,0 @@
-1-ая версия на Wemos D1 Mini

BIN
hw/v5/esp-clock.dch


BIN
hw/v5/esp-clock.dip


+ 0 - 1
hw/v6/ReadMe.txt

@@ -1 +0,0 @@
-попытка переворота

BIN
hw/v6/esp-clock.dch


BIN
hw/v6/esp-clock.dip


BIN
hw/v7/esp-clock.dch


BIN
hw/v7/esp-clock.dip