Сумеречный таймер, модификация для рекламщиков

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Но это не точно (с)

Привет, all. Пытаюсь научиться пользоваться гитхабом, т. к. усматриваю в нём место, более удобное чем всякие облака (если кого интересует, чем не устраивают google/yandex - скажу).

Вопросов по нему два, но они ламерские (разберусь), плюс это вроде как будет считаться оффтопом.

Проект представляет собой включатель-выключатель с RTC (кто-то тут спрашивал как на железной дороге включать фонари по сумеркам, т. к. поставить таджика к рубильнику дорого). Самый его изюм заключается в следующей идее: зачем насиловать восьмибитку сложной математикой и изгаляться с точностью и разрядностью, если можно просто заставить рассчитать расписание комп? Конкретно этот вариант, как и указывает субж, умеет оперировать только двумя понятиями: "вечер", наступающая по расписанию часы:минуты, и "глубокая ночь", наступающая по дефолту в час ночи. Вечером (сдвигаемо) включается, в час (настраиваемо) выключается, override есть. Выход - GPIO, обвязка на совести пользователя (оптика, реле, симистор, пускатель и т. п.). Для выяснения расписания прилагается калькулятор (на оба времени, т. е. закат и рассвет), запустить его можно на вебсервере.

Калькулятор довольно топорный, но тем не менее вполне дружественный пользователю. В полях Lat, Long пишутся координаты в следующем формате:

- Если в сторону N - то больше нуля, S - меньше нуля. Ноль - экватор.

- С долготой то же самое, E (восток) к плюсу.

В поле TZone - локальная часовая зона места, соответствующего координатам. Переход на летнее время и обратно не предусмотрен (для РФ не нужно, да и было лень).

Программа делает массив в том синтаксисе, как он пишется в ino файл. Если душит жаба потратить 744 байта флеша на расписание с часами, оно архивируется в систему условий по ссылке Hardcoded hours внизу. Переключается назад. Переключается в HEX/DEC и можно посмотреть расписание светового дня на весь год. 29.02 в невисокосных годах ставится ближайшее похожее на правду. Там же небольшая хелпа/памятка по адресации в PROGMEM массивах.

Испытывалось на нескольких городах, сверялось с сайтом timeanddate.com, по началу, концу, середине года, случайно - считает правдоподобно. Со сдвигом года в плюс/минус - есть небольшие отклонения (меньше десяти минут), так что думаю, можно для своего географического места посчитать расписание на 2019й год, и оно не слишком-то будет отличаться к 2024му. Короче один раз прошить и забыть.

Для тех кто надумает собирать. Часы 1307, экран 1602, всё на англ. так что работает с любым экраном, шина экрана обычная четырёхбитная. Библиотека часов называется RTCLib, элементарно гуглится.

.svg файл - разводка платы. Сверху редактируемые линии, потом сторона с МК (корпус tqfp32), потом другая сторона, неотзеркаленная. Плата двухсторонняя. Вырезать/фрезеровать/герберить можно сохранив в .hpgl файл. ЛУТить - сохранив в растровый файл или напечатав прямо из Inkscape. Системные требования не помню (вопросы к библиотеке часов), может и на Atmega8 заработает.

Квадратные пады на второй стороне платы - для DO41 диодов 1N4007 или подобных, это формирователь прерывания клавиатуры. Диоды стоят хвостом к AVR, перекладиной ко кнопкам. По-хорошему всё надо гораздо более толково документировать, ибо половина информации - у меня в голове и я думаю "очевидно жи". А неочевидно. Так что приветствую разумную критику чтобы детально расписывать вошло в привычку. Принципиальная схема в .dsn файле, а протеуса нет в наличии (не пережил реинсталл Windows, буду учиться на Eagle работать). Алсо, вероятно, нужно будет запостить фотографии. Хз как у гитхаба с этим, но на SVG он не жаловался.

https://github.com/ellelasleur/twilight-timer

Комментарии на англ, прошу понять и простить, у меня среда версии 1.0.5, и русские буквы в ней отображаются отвратительным тонким шрифтом с огромным трекингом, не знаю как лечить, да и перелезть на 1.8.5 я не могу уже год, постоянно какая-нибудь фигня со старой библиотекой в новой версии отказывается работать. Держу обе версии чтобы было, как-нибудь поперекидаю библы чтобы работало всё целиком. Но на это понадобится время, а от привычки комментировать на англ я уже вряд-ли избавлюсь.

// Многабукаф - это моё проклятие. Похоже, сокращать - можно даже и не пытаться.

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Для тех кому впадлу возиться с сервером - пощелкать живьём можно на http://city416.ru/calc/twtimer.html