Съдържание:

Arduino Tusk/Dawn Clock Timer: 15 стъпки
Arduino Tusk/Dawn Clock Timer: 15 стъпки

Видео: Arduino Tusk/Dawn Clock Timer: 15 стъпки

Видео: Arduino Tusk/Dawn Clock Timer: 15 стъпки
Видео: Halmstad Colloquium: Mechatronic Systems for Human Sensorimotor Control by Marcia O'Malley 2024, Ноември
Anonim
Таймер за часовник за здрач/зори на Arduino
Таймер за часовник за здрач/зори на Arduino

Резюме:

Този таймер, базиран на Arduino, може да превключи една 220V светлина в здрач, зори или определено време.

Въведение:

Някои от светлините в къщата ми се включват автоматично привечер, до предварително зададено време или до зори (цяла нощ).

Разположението на светлините не позволява използването на светлинен сензор. Редовните налични таймери за часовник се включват в определено време. Следователно, за да се включи около здрач, се изисква редовно регулиране на настройката на програмата за таймер.

Като приятно предизвикателство реших вместо това да създам персонализиран таймер, базиран на Arduino. Той използва часовник в реално време и библиотеката Dusk2Dawn, за да определи часа, в който светлините трябва да се включват или изключват. Кутията за този таймер е 3D отпечатана и може да бъде намерена на Thingiverse. Кодът на Arduino за този проект може да бъде намерен на GitHub.

При създаването на този таймер получих вдъхновение от много дизайни и схеми в интернет. Благодаря на всички сътрудници, които не са изрично споменати.

За четливост частичните диаграми се показват в стъпките, където е необходимо, вместо пълна електрическа схема.

Алтернативни решения:

Вместо самостоятелен таймер, има много решения, при които интелигентна система за домашна автоматизация насочва светлините. Целта ми беше да имам независимо решение, което не зависи от WIFI (или друга) свързаност.

Ограничения:

Кодът, предоставен с този проект, включва внедряване на промени в лятното часово време, основано на европейската система за лятно часово време.

Стъпка 1: Списък на частите и инструменти

Списък на частите и инструменти
Списък на частите и инструменти

Части:

Общи разходи за части (с изключение на 3D печат) приблизително € 30, -.

  • Arduino Nano V3 (съвместим) без заглавки
  • Захранване 5V 0.6A (34 x 20 x 15 мм)
  • Твърдотелно реле 5V - Активно ниско - 2A 230VAC
  • Часовник в реално време DS3231 (малък)
  • 0.96”OLED дисплей SPI 128*64 пиксела
  • Ротационен енкодер - EC11 - 20 мм
  • Копче 6 мм вал 15 мм * 17 мм
  • Платка с печатна платка,
  • 4* M3x25 мм винтове
  • 3D принтиран корпус
  • Термосвиваеми тръби
  • Проводници
  • Винтов клемен блок (за свързване на неутрални проводници)

Необходими инструменти:

  • Поялник
  • Спойка тел
  • Помпа за разпаяване
  • Машини за сваляне на тел
  • Фрези
  • 3D принтер (за отпечатване на кутия)
  • Разнообразни малки инструменти

ВНИМАНИЕ

Тази схема работи на 230v AC и ако не сте свикнали да работите с мрежово напрежение или нямате достатъчно опит в работата с 230v AC мрежово напрежение, моля, стойте далеч от този проект

Не поемам отговорност за загуби или щети, произтичащи директно от или вследствие на следването на този проект

Винаги се препоръчва да се полагат подходящи грижи и предпазни мерки при работа с електрическата мрежа

Стъпка 2: Подгответе OLED дисплей и часовник в реално време

Подгответе OLED дисплей и часовник в реално време
Подгответе OLED дисплей и часовник в реално време

3D отпечатаният корпус е проектиран за минимален размер. В резултат на това заглавките на OLED дисплея и часовника в реално време трябва да бъдат премахнати.

При подготовката за следващата стъпка изчистете всички останали спойки от отворите с помпата за разпояване.

Стъпка 3: Подгответе въртящ се енкодер

Подгответе въртящ се енкодер
Подгответе въртящ се енкодер

Ротационният енкодер има крехки съединители. За да предотвратите повреда, монтирайте парче печатна платка към енкодера.

На снимката връзката към земята (горе вдясно и в средата отдолу) също е подготвена.

Забележка: Уверете се, че въртящият се енкодер с печатна платка се вписва в кутията, без да докосва Arduino. Може да се наложи да смилате печатната платка, за да прилегне плътно.

Стъпка 4: Приложение

Корпус
Корпус
Корпус
Корпус

Отпечатайте трите части на кутията с 3d принтер. Вижте инструкциите за Thingiverse.

Стъпка 5: Деактивирайте Arduino Power LED (по избор)

Деактивирайте Arduino Power LED (по избор)
Деактивирайте Arduino Power LED (по избор)

За да предотвратите появата на зелено сияние в таймера, светодиодът за захранване на Arduino може да бъде деактивиран.

Имайте предвид, че тази промяна не е задължителна.

Модификацията на Arduino Nano се състои в премахване на резистора до захранващия индикатор (вижте червения кръг на снимката).

Стъпка 6: Захранване + твърдо реле

Захранване + твърдо реле
Захранване + твърдо реле

В тази стъпка захранването и твърдото реле се комбинират и монтират в долната част на корпуса.

Връзките между захранването и релето са направени в долната част на тези компоненти. Винтовият клемен блок на релето ще се използва за свързване към Arduino.

Забележка: Когато правите връзки, уверете се, че монтажните отвори на твърдотелното реле са свободни.

  • Запояйте свързващ проводник между твърдотелно реле A1 към една от променливотоковите връзки на захранването
  • Запоявайте проводник към другата AC връзка на захранването (това ще бъде свързано към неутралния винтов клемен блок в стъпка 7)
  • Запоявайте проводник между захранването -Vo към релето DC-
  • Запоявайте проводник за свързване на захранване +Vo към реле DC +

Забележка: Може да се наложи скъсяване на проводниците на захранването и релето, за да могат да се поберат в кутията.

Стъпка 7: Arduino Nano + захранване + твърдо реле

Arduino Nano + захранване + твърдо реле
Arduino Nano + захранване + твърдо реле

В тази стъпка Arduino Nano е свързан към захранването и твърдотелното реле.

  • Изрежете два проводника с дължина приблизително 70 мм. Отстранете 30 мм изолация от едната страна и 4 мм от другата страна.
  • Запояйте страната с 30 мм разделена изолация към Arduino +5V и GND, като жицата прониква през
  • Нарежете две термосвиваеми тръби с дължина 20 мм и ги монтирайте върху 25 мм оголената част. Това изолира проводниците до връзката с монтажния винтов клемен блок DC+ и DC- на твърдотелното реле.
  • Обърнете внимание, че проводниците за GND и +5V трябва да се пресичат, за да се свържат правилно към винтовия клемен блок на релето.
  • Нарежете жица с дължина приблизително 40 мм и отстранете 4 мм изолация от двата края. Запояйте едната страна към връзката A2 от задната страна на Arduino, а другата свържете към CH1 връзката на винтовия клемен блок на твърдотелния монтаж.

ВНИМАНИЕ

Arduino се захранва директно от стабилното +5V захранване, вместо да използва вътрешния регулатор на захранването на Arduino. Следователно не е безопасно да свързвате USB, когато Arduino получава захранване от захранването.

Винаги изключвайте мрежата от 230VAC, преди да използвате USB връзката Arduino.

Стъпка 8: Arduino Nano + Часовник в реално време

Arduino Nano + Часовник в реално време
Arduino Nano + Часовник в реално време

В тази стъпка часовникът в реално време е свързан към Arduino, отчасти с помощта на кабелите, подготвени в предишната стъпка.

  • Запоявайте проводника, идващ от Arduino GND (също свързан към DC- на релето) към „-“на часовника в реално време.
  • Запоявайте проводника, идващ от Arduino+5V (също свързан към DC+на релето) към „+“на часовника в реално време.
  • Нарежете два проводника с дължина приблизително 40 мм и отстранете 4 мм изолация от двата края.
  • Запоявайте проводник между Arduino A4 и часовник в реално време D (SDA).
  • Запоявайте проводник между Arduino A5 и часовник в реално време C (SCL).
  • Оформете проводниците на часовника в реално време, за да сте сигурни, че не пречат на въртящия се енкодер. За това проводниците трябва да са в долната част на корпуса.

Стъпка 9: Свържете OLED дисплея

Свържете OLED дисплея
Свържете OLED дисплея

В тази стъпка OLED SPI дисплеят се добавя към Arduino.

  • Изрежете 2 проводника с дължина 65 мм и отстранете 4 мм изолация от двата края.
  • Запояйте проводник към GND връзката на OLED дисплея. Запоявайте този проводник към изолационния проводник от термосвиваеми тръби, идващ от Arduino GND (вижте стъпка 4) и свържете двата проводника към винтовия клемен блок на DC монтажа на твърдотелното реле.
  • Запоявайте проводник към VCC връзката на OLED дисплея. Запоявайте този проводник към изолирания проводник на термосвиваеми тръби, идващ от Arduino + 5V (вижте стъпка 4) и свържете двата проводника към винтовия клемен блок на DC + монтажа на твърдотелното реле.
  • Изрежете 5 проводника с дължина 65 мм и отстранете 4 мм изолация от двата края.
  • Запоявайте проводник за свързване на D0 (CLK) към Arduino D10
  • Запоявайте проводник за свързване на D1 (MOSI / DATA) към Arduino D9
  • Запоявайте проводник за свързване на RES (RT) към Arduino D8
  • Запоявайте проводник за свързване на DC към Arduino D11
  • Запоявайте проводник за свързване на CS към Arduino D12

Забележка: Редът на проводниците на дисплея не е логичен. Това е резултат от първото използване на примера Adafruit и след това промяна на връзките, защото използването на D13 води до червен светодиод на Arduino през цялото време.

Алтернатива

Възможно е да се използва „нормален“ред за SPI връзките. За тази цел определението за цифров изход на програмата Arduino в oledcontrol.cpp трябва да бъде съответно коригирано:

// Използване на софтуер SPI

// ПИН дефиниции

#дефинирайте CS_PIN 12

#дефинирайте RST_PIN 8

#дефинирайте DC_PIN 11

#дефинирайте MOSI_PIN 9

#дефинирайте CLK_PIN 10

Стъпка 10: Ротационен енкодер

Ротационен енкодер
Ротационен енкодер

Диаграмата показва връзките на Arduino към въртящия се енкодер (енкодер, гледан отгоре).

  • Изрежете 4 проводника по 45 мм и отстранете 4 мм изолация от двата края.
  • Свържете Arduino GND към горния десен и долен среден конектор на енкодера
  • Свържете Arduino D2 в долния ляв ъгъл на енкодера
  • Свържете Arduino D3 в долния десен ъгъл на енкодера
  • Свържете Arduino D4 горе вляво на енкодера

Стъпка 11: Инсталиране в кутията

Инсталиране в кутията
Инсталиране в кутията

Инсталирайте цялата електроника в долната част на корпуса:

  • Плъзнете Arduino по вертикалния слот
  • Плъзнете часовника за реално време в долното отделение
  • Плъзнете захранването и релето в горното отделение, уверете се, че релето е поставено на стойките.

Стъпка 12: Свързване към мрежата / Светлината, която трябва да се превключи

Свързване към мрежата / светлината за превключване
Свързване към мрежата / светлината за превключване
Свързване към мрежата / светлината за превключване
Свързване към мрежата / светлината за превключване

ВНИМАНИЕ

Уверете се, че полагате подходящи грижи и предпазни мерки, докато работите с електрическата мрежа, уверете се, че захранващата мрежа е изключена

Не поемам отговорност за загуби или щети, произтичащи директно от или вследствие на следването на този проект

  • Свържете фазата на променливотоковата мрежа към клемния блок на релето A1 (вляво).
  • Свържете фазата на светлината, която ще се превключи, към винтовия клемен блок на реле B1 (вдясно).
  • Използвайте отделен винтов клемен блок, за да свържете нулевия проводник на променливотоковата мрежа, светлинния неутрален проводник и нулевия проводник на захранването.
  • За облекчаване на напрежението, монтирайте вратовръзка около всеки от захранващите кабели.

Стъпка 13: Завършване на корпуса

Завършване на корпуса
Завършване на корпуса

В тази стъпка монтажът в кутията е завършен

  • Плъзнете OLED дисплея през отвора за монтаж на дисплея в средната част на корпуса.
  • Плъзнете въртящия се енкодер през отвора в средната част, като се уверите, че защитата срещу завъртане се подрежда. Монтирайте въртящия се енкодер с помощта на включената шайба и гайка.
  • Монтирайте горната част на корпуса и затворете корпуса, като монтирате четирите винта M3x25 мм отдолу.

Стъпка 14: Програмиране на Arduino

ВНИМАНИЕ

Arduino се захранва директно от стабилното +5V захранване, вместо да използва вътрешния регулатор на захранването на Arduino. Следователно не е безопасно да свързвате USB, когато Arduino получава захранване от захранването.

Винаги изключвайте мрежата от 230VAC, преди да използвате USB връзката Arduino.

Изтеглете програмата за таймер Arduino от GitHub.

Тази програма използва Arduino IDE, която можете да получите тук.

Програмата използва следните допълнителни библиотеки:

SSD1303Ascii

Библиотека на Arduino Wire

Обърнете внимание, че библиотеката dusk2dawn също се използва, но е включена като код поради промяна в интерфейса.

За да се гарантира правилното изчисление на здрач / зори, трябва да се зададат географска дължина и географска ширина и часова зона.

Както е описано в примера dusk2dawn, лесен начин да намерите дължина и географска ширина за всяко местоположение е да намерите мястото в Google Maps, щракнете с десния бутон върху мястото на картата и изберете „Какво има тук?“. В долната част ще видите карта с координати.

Географската дължина и ширина са твърдо кодирани в програмата, в Dusk2Dawn.cpp линии 19 и 20:

/* Географската ширина и дължина на вашето местоположение трябва да бъдат зададени тук.

* * СЪВЕТ: Лесен начин да намерите дължина и географска ширина за всяко местоположение е * да намерите мястото в Google Maps, щракнете с десния бутон върху мястото на картата и * изберете „Какво има тук?“. В долната част ще видите карта с * координатите. */ #дефинирайте LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Утрехт

Часовата зона също е твърдо кодирана в Dusk2Dawn.cpp ред 24. По подразбиране тя е зададена на Холандия (GMT + 1):

/* Въведете вашата часова зона (изместена на GMT) тук.

*/ #дефинирайте ЧАСОВА ЗОНА 1

Когато програмирате Arduino за първи път, EEPROM паметта трябва да бъде инициализирана. За тази цел променете timer.cpp ред 11, за да направите EEPROM инициализация:

// промяна на true за първи път програмиране

#define INITIALIZE_EEPROM_MEMORY false

Качете програмата в Arduino и стартирайте Arduino.

Деактивирайте инициализацията на EEPROM и качете отново програмата в Arduino. Таймерът сега ще запомни настройките за време на превключване при рестартиране.

Стъпка 15: Настройване на часа и превключване на времената

Концепции за взаимодействие с потребителя:

  • Кратко натискане се използва за потвърждаване на избора. Освен това, в екрана на главния таймер кратко натискане включва или изключва светлината.
  • Продължителното натискане се използва за влизане в менюто от главния екран на таймера. Навсякъде в менюто дълго натискане ще се върне към главния екран на таймера.
  • ‘>’ Курсор за избор. Този курсор показва избраната опция в меню.

Екран на основния таймер

Основният екран на таймера показва:

Ден от седмицата Нед

Текущ час 16:00

Текущото състояние на таймера и времето за следващо превключване Таймерът е изключен до 17:12

Времето на зазоряване и здрач Зора 08:05 Завечер 17:10

Задаване на правилното време

Натиснете дълго, за да влезете в менюто. Показват се следните опции:

Обратно Задаване на време Седмична програма Дневна програма Опции

Изберете зададено време, за да зададете датата и часа на часовника в реално време. Въведете правилните стойности за:

YearMonthDayTime

Таймерът автоматично определя деня от седмицата. Превключването на лятното часово време също се извършва автоматично. Лятното часово време се прилага само за европейската часова зона.

Настройка на програмата за таймер

Таймерът има 2 програми, една за седмични дни, една за уикенд. Имайте предвид, че петък се счита за част от уикенда, светлините могат да останат включени малко по -дълго.

Всеки таймер има момент за включване и изключване. Моментът може да бъде или:

  • Час: Точно определено време
  • Dawn: Превключване въз основа на изчисленото време на зората
  • Здрач: Превключете въз основа на изчисленото време на здрача

За здрач и зори е възможно да въведете корекционна стойност от 59 минути преди или след.

Примери:

За да включите светлина през цялата нощ, изберете включване в (здрач + 10 минути), изключете в (зори - 10 минути)

За да включите осветлението вечер, изберете включване в здрач, изключете по време: 22:30.

Настроики

В екрана с опции може да се зададе таймаут за превключване на екрана.

Когато екранът е изключен, натискането на копчето на въртящия се енкодер ще се върне към главния екран на таймера.

Препоръчано: