Changelog.txt 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. простые часы на базе ESP8266 ESP-12e
  2. Вдохновил пост на хабре "Бескнопочные часы" http://geektimes.ru/post/267718/
  3. но, хочу немного по своему:
  4. - заказл с али 5 штук синих индикаторов с ОК высотой 1.8"
  5. это для отображения времени, даты
  6. - купил на вороне 3 штуки белых с ОК 0.56"
  7. это для отображения температуры, влажности, дня недели
  8. - думаю поставить фоторозистор и регулировать яркость в зависимости от
  9. освещённости.
  10. - вывод надумал делать динамический, на MAX7219, поэтому индикаторы с ОК
  11. - дошло, что невыгорит управлять большими индикатороми этой мс. пришлось
  12. лепить транзисторы - "вечер перестаёт быть томным".
  13. - индикаторы 1.8" вроде как бывают на 9 вольт и на 6.5, жду пока приедут.
  14. - где-то кто-то писал, что у него MAX7219 нормально управляет большими
  15. индикаторами (1.8 или 2.3"), вобщем жду что приедет.
  16. на 31.12.2015 всё.
  17. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  18. Wall Segment Clock
  19. После двух дней ебли с nodemcu решил для своего проектика остановится на Sming.
  20. за основу взял проект "MeteoControl", выкинул I2C LCD Display, добавил
  21. обновление сайта из "HttpClient_ThingSpeak", добавил обработку DHT22 из
  22. "Humidity_DHT22", хотел добавить FTP сервер -- но оно не влезло.
  23. В качестве датчика освещённости можно будет использовать "Light_BH1750", или
  24. останется фоторезистор.
  25. "ThingSpeak" планирую заменить на что-то своё, на своём сервере, что ещё
  26. предстоит придумать и реализовать. Возиожно это будет не HTTP а что-то на
  27. основе UDP (клиент/сервер).
  28. Осталось добавить поддержку для MAX7221 и сделать вывод на индикаторы...
  29. Возможно, по ходу дела придётся что-то выкидывать, чтобы влезло нужное.
  30. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  31. out/firmware/spiff_rom.bin---------->0x4C000
  32. FTP не влезло на 1594 байта :-(
  33. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  34. WebTime занимает слегка меньше места чем NTPclient.
  35. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  36. 2016.01.29
  37. Прикрутил поддержку max7219 с программным spi.
  38. Сделал вывод времени -- пора проверять в железе.
  39. Нужно придумать как выводить всё остальное -- дату, показания датчиков.
  40. Как считать дни недели, как определять переход на зимнее/летнее время?
  41. Как взаимодействовать с внешним миром -- оставлять вебсервер,
  42. или переходить на UDP сервер/клиент?
  43. по поводу дня недели:
  44. https://ru.wikibooks.org/wiki/Реализации_алгоритмов/Вечный_календарь
  45. ---
  46. struct struct_date
  47. {
  48. short day;
  49. short month;
  50. short year;
  51. };
  52. int what_day(const struct struct_date const date)
  53. {
  54. int a = (14 - date->month) / 12;
  55. int y = date->year - a;
  56. int m = date->month + 12 * a - 2;
  57. return (7000 + (date->day + y + y / 4 - y / 100 + y / 400 + (31 * m) / 12)) % 7;
  58. }
  59. ---
  60. Пример вывода:
  61. каждые 25-29 и 55-59 секунд на верхние индикаторы выводить дату, а на нижние день недели.
  62. (01 29 / ПОН ВРН СРЕ ЧРГ ПНА СУБ ВОС)
  63. в остальное время на нижних чережовать каждые 5 сек темп/влажность (XXc/XXh).
  64. делать мжно с помощью таймеров и однократного запуска.
  65. нужно разрисовать подобие КА.
  66. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  67. 2016.02.01
  68. Уберу http-клиент, поменяю чуть сбор данных, json буду отдавать с точностью
  69. в 2 знака.
  70. Возмжно попробую добавить udp-сервер и ftp-сервер.
  71. Управление внешним выходом в зависимости от температуры/влажности -- это
  72. конечно прикольно, но мне в часах оно нахрен не нужно.
  73. Далее в планах -- переделать под себя страницу конфигурации,
  74. убрать всё лишнее, добавить нужное -- например, задание 2-4 порогов регулировки
  75. яркости в зависимости от внешнего освещения.
  76. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  77. 2016.02.02
  78. Переделал обработку времени, поправил обработку данных от датчика.
  79. FTP сервер уже влазит, вот только нужен ли он?
  80. UDP Server тоже влез. Если я всё правильно понял, то на строку "get_sensors"
  81. должен возвращать температуру и влажность. На любые другие данные -- echo.
  82. Переделал конфигурацию -- выбросил всё ненужное, добавил настройку уровней
  83. освещённости (два) и ировней яркости индикатора (три). Пока не использую.
  84. План такой:
  85. if (ADCVAL < LLow) {
  86. MAX7219br = BLow
  87. } else if (ADCVAL > LHigh) {
  88. MAX7219br = BHigh
  89. } else {
  90. MAX7219br = BMid
  91. }
  92. Выкинул FTP Server -- какой-то он странный, скачать ничего не вышло,
  93. закачть уже и не пытался.
  94. Выкинул UDP Server -- запросы принимает, ответа от него не видно...
  95. Или я что-то не понимаю, или одно из двух...
  96. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  97. 2016.02.02
  98. Заменил м/с MAX7219 -- и всё чудесным образом заработало.
  99. Один индикатор (ед. часов) бракованый -- не светится верхний левый сегмент,
  100. нужно поменять местами со средним.
  101. Не очень нравится раскладка 5/3, было бы лучше 4/4.
  102. Поменял отображение темп. и влажности -- символ спереди,
  103. так кажется более правильно.
  104. Мигающий минус теперь грубо отображет секунды:
  105. - с 0 по 14 сек -- "минус"
  106. - с 15 по 29 сек -- "средний и нижний"
  107. - с 30 по 44 сек -- "верхний и средний"
  108. - с 45 по 59 сек -- "верхний, средний и нижний"
  109. Была ещё мысль время выводить в первых четырёх идикаторах, мигать точкой,
  110. а в 5-ом индикаторы "двоичным" кодом отображать секунды, но пока отбросил.
  111. Белые индикаторы светят заметно ярче синих, пока ничего менять не буду,
  112. посмотрим как оно будет под светофильтром.
  113. Решил отказаться от вывода даты и дня недели -- не нужно оно.
  114. Нужно вынести в настройку адрес ntp сервера.
  115. Нужно доделать регулировку яркости. Возможно стоит заменить на плавную.
  116. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  117. 2016.02.07
  118. Делаю автоматическую регулировку яркости.
  119. Немогу понять, почему я фоторезистор поставил на землю? Ведь так получается
  120. не уровень яркости, а уровень темноты...
  121. Как-то я собирал несколько дней инфу с подобнго датчика смотрящего на улицу.
  122. Статичечки, его знчение приведённые к уровням 0-16 имеют значимую величину
  123. в диапазоне оот 12 до 16, т.е. всего 4 значения.
  124. Попробую это дела как-то нормализовать.
  125. Пробовал 12-16 растгивать -- сильно грубо.
  126. Сейчас сделал 7-14, лучше, но тоже не сильно нравится.
  127. Похоже, что простое приведение было лучше всего.
  128. Стало зависать постоянно, на ноге сброса -- 0.
  129. Вынес регулировку яркости в отдельную задачу -- прошло...
  130. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  131. 2016.11.15
  132. Перерисовал схему под статику, 4 шт. 1.5" + 4 шт. 0.8".
  133. Большие индикаторы запитал через TD62783A (UDN2981).
  134. MC74HC595A работают и от 3.3В -- отказался от 5-ти вольтового стаба.
  135. Осталось придумать ШИМ для регулировки яркости и можно пытаться разводить.
  136. И нужно что-то придумать с сегментными резисторами (20 и 5 Ом)...
  137. И точки -- или в обход буферов, или больший резистор (185 Ом)
  138. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  139. 2016.11.17
  140. Добил схему.
  141. Питание -- внешнее 7В + китайский импульсный стаб на 3.3В.
  142. Добил плату -- раскладку "подсмотрел" у китайцев, всё влезло под индикаторы,
  143. надеюсь что wifi будет работать нормально...
  144. размер платы -- 194 на 67 мм. Перемычек правда вышло шо пипец...
  145. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  146. 2016.11.21
  147. LDO на 3.3 вольта выкинул потому, что одного мало (я насчитал макс. ток ~1.2А)
  148. а два ставить особо некуда, плюс будут большие потери.
  149. Появилась идея -- убрать сегменты точек. Можно даже сократить один сдвиговый
  150. регистр, но это принесёт больше гемора. Добавить два синих 3мм ветодиода --
  151. засверлить их между 2-ой и 3-ей цифрами. Подключить или вместо точки второго
  152. индикатора, или, что ещё лучше -- задействовать отдельный вывод ESP и
  153. транзистр. Хотя тогда появится лишний гемор с регулировкой яркости именно этих
  154. светодиодов...
  155. Второй момент -- раширить плату в высоту, вытащить ESP и DHT вниз -- уменьшить
  156. толщину "пакета".
  157. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  158. 2016.11.22
  159. v1 -- исходная версия
  160. v2 -- без точек, с двумя светодиодами.
  161. текущая -- попытался вытащить наружу ЕСП, но не вышло.
  162. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  163. 2016.11.23
  164. Хочу пропрбовать сделать раскладку "4 сверху / 4 снизу".
  165. получилось. вроде неплохо -- 153 на 84 мм.
  166. переходных -- 59 штук.
  167. ещё попробовать "вынести наружу" ESP и DHT22.
  168. кажется получилось -- плата 152 на 84 мм, 62 переходных.
  169. пока мне этот вариант нравиться больше всего.
  170. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  171. 2022.10.2
  172. Тут тупик.
  173. Новая ветка будет на базе "Wemos D1 Mini"...