|
@@ -0,0 +1,152 @@
|
|
|
|
+простые часы на базе ESP8266 ESP-12e
|
|
|
|
+
|
|
|
|
+Вдохновил пост на хабре "Бескнопочные часы" http://geektimes.ru/post/267718/
|
|
|
|
+
|
|
|
|
+но, хочу немного по своему:
|
|
|
|
+ - заказл с али 5 штук синих индикаторов с ОК высотой 1.8"
|
|
|
|
+ это для отображения времени, даты
|
|
|
|
+ - купил на вороне 3 штуки белых с ОК 0.56"
|
|
|
|
+ это для отображения температуры, влажности, дня недели
|
|
|
|
+ - думаю поставить фоторозистор и регулировать яркость в зависимости от
|
|
|
|
+ освещённости.
|
|
|
|
+ - вывод надумал делать динамический, на MAX7219, поэтому индикаторы с ОК
|
|
|
|
+ - дошло, что невыгорит управлять большими индикатороми этой мс. пришлось
|
|
|
|
+ лепить транзисторы - "вечер перестаёт быть томным".
|
|
|
|
+ - индикаторы 1.8" вроде как бывают на 9 вольт и на 6.5, жду пока приедут.
|
|
|
|
+ - где-то кто-то писал, что у него MAX7219 нормально управляет большими
|
|
|
|
+ индикаторами (1.8 или 2.3"), вобщем жду что приедет.
|
|
|
|
+
|
|
|
|
+на 31.12.2015 всё.
|
|
|
|
+
|
|
|
|
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
|
|
+
|
|
|
|
+Wall Segment Clock
|
|
|
|
+
|
|
|
|
+После двух дней ебли с nodemcu решил для своего проектика остановится на Sming.
|
|
|
|
+за основу взял проект "MeteoControl", выкинул I2C LCD Display, добавил
|
|
|
|
+обновление сайта из "HttpClient_ThingSpeak", добавил обработку DHT22 из
|
|
|
|
+"Humidity_DHT22", хотел добавить FTP сервер -- но оно не влезло.
|
|
|
|
+В качестве датчика освещённости можно будет использовать "Light_BH1750", или
|
|
|
|
+останется фоторезистор.
|
|
|
|
+
|
|
|
|
+"ThingSpeak" планирую заменить на что-то своё, на своём сервере, что ещё
|
|
|
|
+предстоит придумать и реализовать. Возиожно это будет не HTTP а что-то на
|
|
|
|
+основе UDP (клиент/сервер).
|
|
|
|
+
|
|
|
|
+Осталось добавить поддержку для MAX7221 и сделать вывод на индикаторы...
|
|
|
|
+Возможно, по ходу дела придётся что-то выкидывать, чтобы влезло нужное.
|
|
|
|
+
|
|
|
|
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
|
|
+
|
|
|
|
+out/firmware/spiff_rom.bin---------->0x4C000
|
|
|
|
+
|
|
|
|
+FTP не влезло на 1594 байта :-(
|
|
|
|
+
|
|
|
|
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
|
|
+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;
|
|
|
|
+}
|
|
|
|
+---
|
|
|
|
+
|
|
|
|
+Пример вывода:
|
|
|
|
+каждые 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 сервера.
|
|
|
|
+Нужно доделать регулировку яркости. Возможно стоит заменить на плавную.
|