ESP8266 (ESP-12E) based `Wall Segment Clock`
|
há 9 anos atrás | |
---|---|---|
app | há 9 anos atrás | |
include | há 9 anos atrás | |
sch | há 9 anos atrás | |
web | há 9 anos atrás | |
.cproject | há 9 anos atrás | |
.gitignore | há 9 anos atrás | |
.project | há 9 anos atrás | |
Makefile | há 9 anos atrás | |
Makefile-user.mk | há 9 anos atrás | |
README.md | há 9 anos atrás | |
dump.bat | há 9 anos atrás |
простые часы на базе ESP8266 ESP-12e
Вдохновил пост на хабре "Бескнопочные часы" http://geektimes.ru/post/267718/
но, хочу немного по своему:
на 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 сервер/клиент?
по поводу дня недели:
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). делать мжно с помощью таймеров и однократного запуска. нужно разрисовать подобие КА.