123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- простые часы на базе 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 сервера.
- Нужно доделать регулировку яркости. Возможно стоит заменить на плавную.
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 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
- v1 -- исходная версия
- v2 -- без точек, с двумя светодиодами.
- текущая -- попытался вытащить наружу ЕСП, но не вышло.
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 2016.11.23
- Хочу пропрбовать сделать раскладку "4 сверху / 4 снизу".
- получилось. вроде неплохо -- 153 на 84 мм.
- переходных -- 59 штук.
- ещё попробовать "вынести наружу" ESP и DHT22.
- кажется получилось -- плата 152 на 84 мм, 62 переходных.
- пока мне этот вариант нравиться больше всего.
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 2022.10.2
- Тут тупик.
- Новая ветка будет на базе "Wemos D1 Mini"...
|