123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- простые часы на базе 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 сервера.
- Нужно доделать регулировку яркости. Возможно стоит заменить на плавную.
|