ESP8266 (ESP-12E) based `Wall Segment Clock`

Vladimir N. Shilov 90e2c8b240 Работа над ошибками. 9 éve
app 90e2c8b240 Работа над ошибками. 9 éve
include fc51fdb284 Пкеределал конфигурацию. 9 éve
sch 16debb9c1b Косметика 9 éve
web 90e2c8b240 Работа над ошибками. 9 éve
.cproject bc7849c4fe Иницилизация проекта. Перенёс из теста. 9 éve
.gitignore bc7849c4fe Иницилизация проекта. Перенёс из теста. 9 éve
.project bc7849c4fe Иницилизация проекта. Перенёс из теста. 9 éve
Makefile bc7849c4fe Иницилизация проекта. Перенёс из теста. 9 éve
Makefile-user.mk bc7849c4fe Иницилизация проекта. Перенёс из теста. 9 éve
README.md 90e2c8b240 Работа над ошибками. 9 éve
dump.bat bc7849c4fe Иницилизация проекта. Перенёс из теста. 9 éve

README.md

простые часы на базе 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 -- запросы принимает, ответа от него не видно... Или я что-то не понимаю, или одно из двух...