Obsah:

Časovač hodín súmraku/úsvitu Arduino: 15 krokov
Časovač hodín súmraku/úsvitu Arduino: 15 krokov

Video: Časovač hodín súmraku/úsvitu Arduino: 15 krokov

Video: Časovač hodín súmraku/úsvitu Arduino: 15 krokov
Video: Gustav Husák vypráví vtip 2024, November
Anonim
Časovač hodín súmraku/úsvitu Arduino
Časovač hodín súmraku/úsvitu Arduino

Zhrnutie:

Tento časovač založený na Arduine dokáže prepnúť jedno svetlo 220 V za súmraku, svitania alebo v určenom čase.

Úvod:

Niektoré svetlá v mojom dome sa automaticky zapnú za súmraku, buď do vopred nastaveného času, alebo do rána (celú noc).

Umiestnenie svetiel neumožňuje použitie svetelného senzora. Bežné dostupné časovače hodín sa zapínajú v konkrétny čas. Zapnutie za súmraku preto vyžaduje pravidelnú úpravu nastavenia časového programu.

Ako príjemnú výzvu som sa rozhodol namiesto toho postaviť vlastný samostatný časovač založený na Arduine. Na určenie času, kedy sa musia svetlá zapnúť alebo vypnúť, používa hodiny v reálnom čase a knižnicu Dusk2Dawn. Kryt pre tento časovač je vytlačený 3D a nájdete ho na Thingiverse. Kód Arduino pre tento projekt nájdete na GitHub.

Pri vytváraní tohto časovača som sa inšpiroval mnohými návrhmi a obvodmi na internete. Ďakujem všetkým prispievateľom, ktorí nie sú výslovne uvedení.

Z dôvodu čitateľnosti sú namiesto úplného schémy zapojenia v krokoch podľa potreby uvedené čiastočné diagramy.

Alternatívne riešenia:

Namiesto samostatného časovača existuje mnoho riešení, kde svetlá riadi inteligentný systém automatizácie domácnosti. Mojim cieľom bolo mať nezávislé riešenie, ktoré nezávisí od pripojenia WIFI (alebo iného).

Obmedzenia:

Kód dodaný s týmto projektom zahŕňal implementáciu zmien letného času založenú na európskom systéme letného času.

Krok 1: Zoznam dielov a nástroje

Zoznam dielov a nástroje
Zoznam dielov a nástroje

Diely:

Celkové náklady na diely (bez 3D tlače) približne 30 EUR.

  • Arduino Nano V3 (kompatibilné) bez hlavičiek
  • Napájanie 5V 0,6A (34 x 20 x 15 mm)
  • Polovodičové relé 5V - aktívne nízke - 2A 230VAC
  • Hodiny v reálnom čase DS3231 (malé)
  • 0,96”OLED displej SPI 128*64 pixelov
  • Rotačný snímač - EC11 - 20 mm
  • Gombík 6 mm hriadeľ 15 mm * 17 mm
  • Doska s plošnými spojmi,
  • 4* skrutky M3x25 mm
  • 3D tlačená príloha
  • Tepelne zmrštiteľné hadičky
  • Drôty
  • Skrutkovacia svorkovnica (na pripojenie neutrálnych vodičov)

Potrebné nástroje:

  • Spájkovačka
  • Spájkovací drôt
  • Odpájacie čerpadlo
  • Odizolovače drôtov
  • Frézy
  • 3D tlačiareň (na tlač príloh)
  • Rozmanité malé nástroje

POZOR

Tento obvod pracuje na 230 V AC a ak nie ste zvyknutí pracovať so sieťovým napätím alebo nemáte dostatočné skúsenosti s prácou so sieťovým napätím 230 V AC, držte sa od tohto projektu bokom

Nepreberám žiadnu zodpovednosť za žiadne straty alebo škody, ktoré vzniknú priamo alebo v dôsledku sledovania tohto projektu

Pri práci so sieťovým adaptérom striedavého prúdu sa vždy odporúča vykonávať náležitú starostlivosť a predbežné opatrenia

Krok 2: Pripravte si OLED displej a hodiny v reálnom čase

Pripravte si OLED displej a hodiny v reálnom čase
Pripravte si OLED displej a hodiny v reálnom čase

3D tlačená skriňa je navrhnutá pre minimálnu veľkosť. V dôsledku toho je potrebné odstrániť hlavičky OLED displeja a hodín reálneho času.

Pri príprave na ďalší krok odstráňte všetku zvyšnú spájku z otvorov pomocou odpájkovacieho čerpadla.

Krok 3: Pripravte si rotačný kodér

Pripravte si rotačný kodér
Pripravte si rotačný kodér

Rotačný snímač má tenké konektory. Aby ste predišli poškodeniu, namontujte kus dosky s plošnými spojmi na kodér.

Na obrázku je už pripravené aj zemné spojenie (vpravo hore a v strede dole).

Poznámka: Zaistite, aby sa rotačný snímač s doskou s plošnými spojmi zmestil do krytu bez toho, aby ste sa dotkli Arduina. Možno bude potrebné brúsiť dosku s plošnými spojmi, aby dobre sedela.

Krok 4: Príloha

Ohrada
Ohrada
Ohrada
Ohrada

Vytlačte tri časti krytu pomocou 3D tlačiarne. Pozrite si pokyny na stránke Thingiverse.

Krok 5: Vypnite kontrolku LED napájania Arduino (voliteľné)

Vypnite kontrolku LED napájania Arduino (voliteľné)
Vypnite kontrolku LED napájania Arduino (voliteľné)

Aby sa zabránilo zelenej žiare v časovači, LED diódy napájania Arduina je možné deaktivovať.

Uvedomte si, že táto úprava je voliteľná.

Modifikácia Arduino Nano spočíva v odstránení odporu vedľa napájacej diódy (pozri červený kruh na obrázku).

Krok 6: Napájanie + polovodičové relé

Napájací zdroj + polovodičové relé
Napájací zdroj + polovodičové relé

V tomto kroku sú zdroj napájania a polovodičové relé kombinované a namontované v spodnej časti krytu.

Pripojenie medzi zdrojom napájania a relé je vykonané v spodnej časti týchto komponentov. Skrutkovacia svorkovnica relé bude slúžiť na pripojenie k Arduinu.

Poznámka: Pri pripájaní dbajte na to, aby montážne otvory polovodičového relé zostali voľné.

  • Spájajte prepojovací vodič medzi polovodičovým relé A1 k jednému zo striedavých pripojení napájacieho zdroja
  • Spájkujte vodič k druhému AC napájaniu (bude pripojené k svorkovnici neutrálneho skrutky v kroku 7)
  • Spájkujte vodič medzi zdrojom napájania -Vo k relé DC-
  • Spájkujte vodič na pripojenie napájania +Vo k relé DC +

Poznámka: Môže byť potrebné skrátiť vodiče na napájacom zdroji a relé, aby sa zmestili do krytu.

Krok 7: Arduino Nano + napájací zdroj + polovodičové relé

Arduino Nano + napájací zdroj + polovodičové relé
Arduino Nano + napájací zdroj + polovodičové relé

V tomto kroku je Arduino Nano pripojený k napájaciemu a polovodičovému relé.

  • Odstrihnite dva drôty s dĺžkou približne 70 mm. Odizolujte 30 mm izolácie na jednej strane a 4 mm na druhej strane.
  • Stranu spájkujte 30 mm odizolovanou izoláciou k Arduinu +5V a GND, pričom drôt bude prestrčiť
  • Odrežte dve teplom zmrštiteľné trubice s dĺžkou 20 mm a namontujte ich na 25 mm odizolovanú časť. Tým sa izolujú vodiče až po spojenie so svorkovnicovou svorkovnicou DC+ a DC- polovodičového relé.
  • Všimnite si toho, že vodiče pre GND a +5V je potrebné krížiť, aby sa správne pripojili k skrutkovacej svorkovnici relé.
  • Odrežte drôt s dĺžkou približne 40 mm a odizolujte oba konce 4 mm. Jednu stranu spájkujte s prípojkou A2 na ZADNEJ STRANE Arduina a druhú stranu spojte s pripojením CH1 skrutkovacej svorkovnice polovodičovej montáže.

POZOR

Arduino je napájané priamo zo stabilného +5V zdroja namiesto použitia interného regulátora napájania Arduino. Preto nie je bezpečné pripojiť USB, keď Arduino získava energiu zo zdroja napájania.

Pred použitím pripojenia Arduino USB vždy odpojte sieťové napätie 230 VAC.

Krok 8: Hodiny Arduino Nano + v reálnom čase

Hodiny Arduino Nano + v reálnom čase
Hodiny Arduino Nano + v reálnom čase

V tomto kroku sú hodiny v reálnom čase pripojené k Arduinu, čiastočne pomocou káblov pripravených v predchádzajúcom kroku.

  • Spájkujte vodič pochádzajúci z Arduino GND (tiež pripojený k DC- relé) do „-“hodín reálneho času.
  • Spájkujte vodič prichádzajúci z Arduino+5V (tiež pripojený k DC+relé) k „+“hodín reálneho času.
  • Odrežte dva drôty s dĺžkou približne 40 mm a odizolujte oba konce izoláciou 4 mm.
  • Spájkujte vodič medzi Arduino A4 a hodinami D (SDA) v reálnom čase.
  • Spájkujte vodič medzi Arduino A5 a hodinami C v reálnom čase (SCL).
  • Tvarujte vodiče hodín reálneho času tak, aby nezasahovali do rotačného snímača. Na to musia byť vodiče v spodnej časti krytu.

Krok 9: Pripojte OLED displej

Pripojte OLED displej
Pripojte OLED displej

V tomto kroku sa do Arduina pridá displej OLED SPI.

  • Odrežte 2 drôty s dĺžkou 65 mm a odizolujte 4 mm izoláciu oboch koncov.
  • Spájajte vodič s GND pripojením OLED displeja. Spájkujte tento vodič s izolovaným vodičom zmršťovacím teplom pochádzajúcim z Arduino GND (pozri krok 4) a oba vodiče pripojte k skrutkovacej svorkovnici polovodičového relé montovanej na jednosmerný prúd.
  • Spájkujte vodič k spojeniu VCC OLED displeja. Spájkujte tento drôt s izolovaným vodičom zmršťovacím teplom pochádzajúcim z Arduino + 5V (pozri krok 4) a oba vodiče zapojte do skrutkovacej svorkovnice polovodičového relé montovanej na DC +.
  • Odrežte 5 drôtov s dĺžkou 65 mm a odizolujte 4 mm izoláciu oboch koncov.
  • Spájkujte vodič na pripojenie D0 (CLK) k Arduino D10
  • Spájkujte vodič na pripojenie D1 (MOSI / DATA) k Arduino D9
  • Spájkujte vodič na pripojenie RES (RT) k Arduino D8
  • Spájkujte vodič na pripojenie DC k Arduino D11
  • Spájkovaním drôtu spojte CS s Arduino D12

Poznámka: Poradie vodičov displeja nie je logické. Toto je výsledok prvého použitia príkladu Adafruit a následnej zmeny pripojení, pretože používanie D13 má za následok nepretržitú červenú diódu LED na zariadení Arduino.

Alternatíva

Pre pripojenia SPI je možné použiť „normálny“poriadok. Na to je potrebné zodpovedajúcim spôsobom upraviť definíciu digitálneho výstupu programu Arduino v oledcontrol.cpp:

// Používanie softvéru SPI

// definície pinov

#define CS_PIN 12

#define RST_PIN 8

#define DC_PIN 11

#define MOSI_PIN 9

#define CLK_PIN 10

Krok 10: Rotačný kodér

Rotačný kodér
Rotačný kodér

Diagram ukazuje pripojenia Arduina k rotačnému kodéru (kodér je videný zhora).

  • Odrežte 4 drôty s priemerom 45 mm a odizolujte 4 mm izoláciu oboch koncov.
  • Pripojte Arduino GND k pravému hornému a dolnému strednému konektoru kodéra
  • Pripojte Arduino D2 k ľavému dolnému rohu kodéra
  • Pripojte Arduino D3 v pravom dolnom rohu kodéra
  • Pripojte Arduino D4 vľavo hore k kodéru

Krok 11: Inštalácia v kryte

Inštalácia v kryte
Inštalácia v kryte

Nainštalujte všetku elektroniku do spodnej časti krytu:

  • Nasuňte Arduino na zvislý otvor
  • V spodnej priehradke posuňte hodiny v reálnom čase
  • Zasuňte napájací zdroj a relé do horného priestoru a uistite sa, že relé sedí na držiakoch.

Krok 12: Pripojenie k elektrickej sieti / svetlu, ktoré sa má prepnúť

Pripojenie k sieti / svetlo, ktoré sa má prepnúť
Pripojenie k sieti / svetlo, ktoré sa má prepnúť
Pripojenie k sieti / svetlo, ktoré sa má prepnúť
Pripojenie k sieti / svetlo, ktoré sa má prepnúť

POZOR

Pri práci so sieťovou šnúrou dbajte na správnu starostlivosť a opatrenia a zaistite, aby bola sieťová šnúra odpojená

Nepreberám žiadnu zodpovednosť za žiadne straty alebo škody, ktoré vzniknú priamo alebo v dôsledku sledovania tohto projektu

  • Pripojte fázu sieťového napájania k skrutkovacej svorkovnici relé A1 (vľavo).
  • Pripojte fázu svetla, ktoré sa má prepnúť, na skrutkovú svorkovnicu relé B1 (vpravo).
  • Na pripojenie neutrálneho vodiča striedavého prúdu, svetelného neutrálneho vodiča a nulového vodiča napájacieho zdroja použite samostatnú skrutkovaciu svorkovnicu.
  • Aby ste uvoľnili napätie, namontujte okolo každého napájacieho kábla viazaciu pásku.

Krok 13: Dokončenie prílohy

Dokončenie prílohy
Dokončenie prílohy

V tomto kroku je montáž do krytu dokončená

  • Zasuňte OLED displej cez montážny otvor displeja v strednej časti krytu.
  • Zasuňte rotačný snímač cez otvor v strednej časti a uistite sa, že je ochrana proti otáčaniu zarovnaná. Namontujte rotačný snímač pomocou priloženej podložky a matice.
  • Namontujte hornú časť krytu a zatvorte kryt namontovaním štyroch skrutiek M3x25 mm zospodu.

Krok 14: Programovanie Arduina

POZOR

Arduino je napájané priamo zo stabilného +5V zdroja namiesto použitia interného regulátora napájania Arduino. Preto nie je bezpečné pripojiť USB, keď Arduino získava energiu zo zdroja napájania.

Pred použitím pripojenia Arduino USB vždy odpojte sieť 230 VAC.

Načítajte program časovača Arduino z GitHubu.

Tento program používa Arduino IDE, ktoré je možné získať tu.

Program používa nasledujúce ďalšie knižnice:

SSD1303Ascii

Knižnica Arduino Wire

Všimnite si toho, že sa používa aj knižnica dusk2dawn, ale je zahrnutá ako kód kvôli zmene jej rozhrania.

Na zaistenie správneho výpočtu súmraku / úsvitu je potrebné nastaviť zemepisnú dĺžku, šírku a časové pásmo.

Ako je popísané v príklade dusk2dawn, jednoduchým spôsobom, ako nájsť zemepisnú dĺžku a šírku pre akékoľvek miesto, je nájsť miesto v Mapách Google, kliknúť pravým tlačidlom na miesto na mape a vybrať „Čo je tu?“. V spodnej časti uvidíte kartu so súradnicami.

Zemepisná dĺžka a šírka je v programe naprogramovaná v riadkoch 19 a 20 na Dusk2Dawn.cpp:

/* Tu je potrebné nastaviť zemepisnú šírku a dĺžku vašej polohy.

* * TIP: Jednoduchým spôsobom, ako nájsť zemepisnú dĺžku a šírku pre akékoľvek miesto, je * nájsť miesto v Mapách Google, kliknúť pravým tlačidlom na miesto na mape a * vybrať „Čo je tu?“. V spodnej časti sa zobrazí karta so súradnicami *. */ #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht

Časové pásmo je tiež napevno kódované v riadku 24. Dusk2Dawn.cpp. Štandardne je nastavené na Holandsko (GMT + 1):

/* Sem zadajte svoje časové pásmo (posunuté voči GMT).

*/ #define TIMEZONE 1

Pri prvom programovaní Arduina je potrebné inicializovať pamäť EEPROM. Za týmto účelom zmeňte Timer.cpp riadok 11 na inicializáciu EEPROM:

// zmena na true pri prvom programovaní

#define INITIALIZE_EEPROM_MEMORY nepravda

Nahrajte program do Arduina a spustite Arduino.

Zakážte inicializáciu EEPROM a znova nahrajte program do Arduina. Časovač si teraz zapamätá nastavenia času prepnutia pri reštarte.

Krok 15: Nastavenie času a časov prepínania

Koncepty interakcie s používateľom:

  • Krátke stlačenie slúži na potvrdenie výberov. Navyše na hlavnej obrazovke časovača zapnete alebo vypnete svetlo krátkym stlačením.
  • Dlhé stlačenie slúži na vstup do ponuky z hlavnej obrazovky časovača. Kdekoľvek v ponuke sa dlhým stlačením vrátite na hlavnú obrazovku časovača.
  • '>' Výberový kurz. Tento kurzor označuje zvolenú možnosť v ponuke.

Hlavná obrazovka časovača

Na hlavnej obrazovke časovača sa zobrazuje:

Deň v týždni Ne

Aktuálny čas 16:00

Aktuálny stav časovača a čas nasledujúceho prepnutia Časovač VYPNUTÝ do 17:12

Čas svitania a súmraku Svitanie 08:05 Súmrak 17:10

Nastavenie správneho času

Do ponuky vstúpite dlhým stlačením. Zobrazia sa nasledujúce možnosti:

SpäťNastaviť časTýždenný programVíkendový programMožnosti

Vyberte položku Nastaviť čas a nastavte dátum a čas hodín reálneho času. Zadajte správne hodnoty pre:

Rok, Mesiac, Deň, Čas

Časovač automaticky určí deň v týždni. Prepínanie letného času sa vykonáva aj automaticky. Letný čas je implementovaný iba pre európske časové pásmo.

Nastavenie programu časovača

Časovač má 2 programy, jeden na dni v týždni, jeden na víkend. Všimnite si toho, že piatok je považovaný za súčasť víkendu, svetlá môžu svietiť o niečo dlhšie.

Každý časovač má zapínací a vypínací moment. Moment môže byť buď:

  • Čas: Presne určený čas
  • Dawn: Prepínanie podľa vypočítaného času úsvitu
  • Súmrak: Prepínač založený na vypočítanom čase súmraku

Za súmraku a svitania je možné zadať korekčnú hodnotu 59 minút pred alebo po.

Príklady:

Ak chcete zapnúť svetlo na celú noc, vyberte možnosť Zapnúť (súmrak + 10 minút), Vypnúť (úsvit - 10 minút)

Ak chcete večer zapnúť svetlo, vyberte položku Zapnúť za súmraku, Vypnúť v čase: 22:30.

možnosti

Na obrazovke možností je možné nastaviť časový limit na prepínanie obrazovky.

Keď je obrazovka vypnutá, stlačením otočného gombíka enkodéra sa vrátite na hlavnú obrazovku časovača.

Odporúča: