Sadržaj:

Arduino mjerač sata za sumrak/zoru: 15 koraka
Arduino mjerač sata za sumrak/zoru: 15 koraka

Video: Arduino mjerač sata za sumrak/zoru: 15 koraka

Video: Arduino mjerač sata za sumrak/zoru: 15 koraka
Video: Arduino на максималках! Честный обзор Portenta H7. Надо брать? 2024, Juli
Anonim
Arduino mjerač sata za sumrak/zoru
Arduino mjerač sata za sumrak/zoru

Sažetak:

Ovaj tajmer zasnovan na Arduinu može uključiti jedno svjetlo od 220 V u sumrak, zoru ili određeno vrijeme.

Uvod:

Neka svjetla u mojoj kući automatski se pale u sumrak, sve do unaprijed postavljenog vremena ili do zore (cijelu noć).

Položaj svjetala ne dopušta upotrebu senzora svjetla. Uobičajeni dostupni tajmeri sata uključuju se u određeno vrijeme. Za uključivanje u sumrak stoga je potrebno redovno prilagođavanje postavki programa tajmera.

Kao lijep izazov, odlučio sam umjesto toga izgraditi prilagođeni samostalni tajmer zasnovan na Arduinu. Koristi sat u stvarnom vremenu i biblioteku Dusk2Dawn za određivanje vremena u kojem se svjetla moraju uključiti ili isključiti. Kućište za taj timer je 3D štampano i može se pronaći na Thingiverse -u. Arduino kôd za ovaj projekt možete pronaći na GitHub -u.

U stvaranju ovog mjerača vremena inspirirao sam se mnogim dizajnom i sklopovima na internetu. Zahvaljujem se svim saradnicima koji nisu izričito navedeni.

Radi čitljivosti, parcijalni dijagrami su prikazani u koracima gdje je potrebno, umjesto potpunog dijagrama.

Alternativna rješenja:

Umjesto samostalnog mjerača vremena, postoje mnoga rješenja gdje sistem za automatizaciju pametne kuće upravlja svjetlima. Moj cilj je bio imati neovisno rješenje koje ne ovisi o WIFI (ili nekoj drugoj) vezi.

Ograničenja:

Kôd koji je dostavljen ovom projektu uključivao je implementaciju izmjena ljetnog računanja vremena zasnovanu na evropskom sistemu za ljetno računanje vremena.

Korak 1: Lista dijelova i alati

Lista dijelova i alati
Lista dijelova i alati

Dijelovi:

Ukupni troškovi dijelova (isključujući 3D štampanje) približno 30 €, -.

  • Arduino Nano V3 (kompatibilan) bez zaglavlja
  • Napajanje 5V 0.6A (34 x 20 x 15 mm)
  • Solid -state relej 5V - Aktivno nisko - 2A 230VAC
  • Sat za realno vrijeme DS3231 (mali)
  • 0,96”OLED ekran SPI 128*64 piksela
  • Rotacijski davač - EC11 - 20mm
  • Ručica 6mm osovine 15mm * 17mm
  • Ploča sa štampanom pločom,
  • 4* M3x25mm vijci
  • 3D štampano kućište
  • Termoskupljajuće cijevi
  • Žice
  • Vijčani terminalni blok (za povezivanje neutralnih žica)

Potrebni alati:

  • Lemilica
  • Solder Wire
  • Pumpa za lemljenje
  • Strojevi za skidanje žice
  • Rezači
  • 3D štampač (za štampanje kućišta)
  • Raznovrsni mali alati

UPOZORENJE

Ovo kolo radi na 230 V AC, a ako niste navikli raditi s mrežnim naponom ili nemate dovoljno iskustva u radu s 230 V AC mrežnim naponom, klonite se ovog projekta

Ne preuzimam odgovornost za bilo kakav gubitak ili štetu nastalu izravno ili kao posljedicu praćenja ovog projekta

Uvijek se savjetuje da vodite računa o oprezu i oprezu pri radu s mrežnim napajanjem

Korak 2: Pripremite OLED ekran i sat u realnom vremenu

Pripremite OLED ekran i sat u realnom vremenu
Pripremite OLED ekran i sat u realnom vremenu

3D štampano kućište dizajnirano je za minimalnu veličinu. Zbog toga je potrebno ukloniti zaglavlja OLED ekrana i sata u realnom vremenu.

U pripremi za sljedeći korak, očistite preostali lem iz rupa pomoću pumpe za odmrzavanje.

Korak 3: Pripremite rotacijski davač

Pripremite rotacijski davač
Pripremite rotacijski davač

Rotacijski davač ima slabe konektore. Kako biste spriječili oštećenje, montirajte komad tiskane ploče na davač.

Na slici je priključak za uzemljenje (gore desno i srednje dno) već pripremljen.

Napomena: Uvjerite se da rotacijski davač s tiskanom pločom staje u kućište bez dodirivanja Arduina. Možda će biti potrebno brušenje štampane ploče kako bi se dobro prilijeglo.

Korak 4: Ograđivanje

Enclosure
Enclosure
Enclosure
Enclosure

Odštampajte tri dela kućišta 3D štampačem. Pogledajte upute za Thingiverse.

Korak 5: Onemogućite Arduino Power LED (opcionalno)

Onemogući Arduino Power LED (opcionalno)
Onemogući Arduino Power LED (opcionalno)

Da biste spriječili zeleno svjetlo u mjeraču vremena, LED za napajanje Arduina može se onemogućiti.

Imajte na umu da je ova izmjena opcionalna.

Modifikacija Arduino Nano sastoji se u uklanjanju otpornika pored napajanja (pogledajte crveni krug na slici).

Korak 6: Napajanje + relej u čvrstom stanju

Napajanje + relej u čvrstom stanju
Napajanje + relej u čvrstom stanju

U ovom koraku napajanje i poluprovodnički relej se kombiniraju i montiraju u donji dio kućišta.

Priključci između napajanja i releja izvedeni su na dnu ovih komponenti. Vijčani terminalni blok releja će se koristiti za spajanje na Arduino.

Napomena: Prilikom povezivanja vodite računa da rupe za pričvršćivanje poluprovodničkog releja budu slobodne.

  • Lemiti priključnu žicu između SSD releja A1 na jedan od AC priključaka napajanja
  • Lemite žicu na drugi AC priključak napajanja (ovo će biti spojeno na neutralni vijčani stezni blok u koraku 7)
  • Lemite žicu između izvora napajanja -Vo releja DC-
  • Lemite žicu za spajanje napajanja +Vo na relej DC +

Napomena: Možda će biti potrebno skratiti kabele na napajanju i releju kako bi se mogli uklopiti u kućište.

Korak 7: Arduino Nano + napajanje + relej u čvrstom stanju

Arduino Nano + Napajanje + Solid-State relej
Arduino Nano + Napajanje + Solid-State relej

U ovom koraku, Arduino Nano je spojen na izvor napajanja i SSD relej.

  • Odrežite dvije žice dužine približno 70 mm. Odvojite 30 mm izolacije s jedne strane i 4 mm s druge strane.
  • Lemite stranu sa izoliranom izolacijom od 30 mm na Arduino +5V i GND, sa žicom koja proviruje
  • Izrežite dvije termoskupljajuće cijevi duljine 20 mm i postavite ih preko ogoljenog dijela od 25 mm. Time se izoliraju žice do veze s montažnim vijčanim priključnim blokom DC+ i DC- poluprovodničkog releja.
  • Imajte na umu da se žice za GND i +5V moraju ukrstiti da bi se ispravno spojile na priključni blok releja.
  • Odrežite žicu duljine približno 40 mm i odvojite 4 mm izolacije s oba kraja. Lemite jednu stranu na A2 priključak na poleđini Arduina, a drugu stranu na CH1 priključak vijčanog priključnog bloka za montažu u čvrstom stanju.

UPOZORENJE

Arduino se napaja izravno iz stabilnog napajanja od 5 V umjesto da se koristi unutarnji regulator snage Arduino. Stoga nije sigurno spojiti USB kada Arduino prima napajanje iz izvora napajanja.

Uvijek isključite napajanje 230VAC prije korištenja Arduino USB veze.

Korak 8: Arduino Nano + sat u stvarnom vremenu

Arduino Nano + sat u realnom vremenu
Arduino Nano + sat u realnom vremenu

U ovom koraku sat u stvarnom vremenu spojen je na Arduino, djelomično pomoću kabela pripremljenih u prethodnom koraku.

  • Lemite žicu koja dolazi iz Arduino GND-a (također spojen na DC- releja) na ‘-’ sata u stvarnom vremenu.
  • Lemite žicu koja dolazi s Arduina+5V (također spojena na DC+releja) na „+“sata u stvarnom vremenu.
  • Odrežite dvije žice duljine približno 40 mm i odvojite 4 mm izolacije s oba kraja.
  • Lemite žicu između Arduina A4 i sata u realnom vremenu D (SDA).
  • Lemite žicu između Arduina A5 i sata u realnom vremenu C (SCL).
  • Oblikujte žice sata u stvarnom vremenu kako biste bili sigurni da ne ometaju rotacijski davač. Za to, žice moraju biti na dnu kućišta.

Korak 9: Povežite OLED ekran

Povežite OLED ekran
Povežite OLED ekran

U ovom koraku OLED SPI zaslon dodaje se Arduinu.

  • Odrežite 2 žice dužine 65 mm i odvojite izolaciju od 4 mm s oba kraja.
  • Lemite žicu na GND vezu OLED ekrana. Lemite ovu žicu na izoliranu žicu toplinski skupljajućih cijevi koja dolazi iz Arduino GND (pogledajte korak 4) i spojite obje žice s priključnim blokom na istosmjernom releju za montažu na istosmjernu struju.
  • Lemite žicu na VCC vezu OLED ekrana. Lemite ovu žicu na izoliranu žicu toplinski skupljajućih cijevi koja dolazi s Arduina + 5V (pogledajte korak 4) i spojite obje žice na DC + montažni vijčani priključni blok poluprovodničkog releja.
  • Odrežite 5 žica dužine 65 mm i odvojite 4 mm izolacije s oba kraja.
  • Lemite žicu za spajanje D0 (CLK) na Arduino D10
  • Lemite žicu za spajanje D1 (MOSI / DATA) na Arduino D9
  • Lemite žicu za spajanje RES (RT) na Arduino D8
  • Lemite žicu za spajanje istosmjernog napona na Arduino D11
  • Lemite žicu za spajanje CS -a na Arduino D12

Napomena: Redoslijed žica zaslona nije logičan. Ovo je rezultat prvo korištenja primjera Adafruit, a zatim promjene veza jer upotreba D13 rezultira crvenom LED diodom na Arduinu cijelo vrijeme.

Alternativa

Moguće je koristiti „normalan“redoslijed za SPI veze. Za to se definicija digitalnog izlaza programa Arduino u oledcontrol.cpp mora odgovarajuće prilagoditi:

// Korištenje softvera SPI

// pin definicije

#define CS_PIN 12

#define RST_PIN 8

#define DC_PIN 11

#define MOSI_PIN 9

#define CLK_PIN 10

Korak 10: Rotacijski davač

Rotacijski koder
Rotacijski koder

Dijagram prikazuje veze Arduina s rotacijskim davačem (davač gledano odozgo).

  • Odrežite 4 žice od 45 mm i odvojite 4 mm izolacije s oba kraja.
  • Spojite Arduino GND na gornji desni i donji srednji konektor davača
  • Spojite Arduino D2 u donji lijevi ugao kodera
  • Spojite Arduino D3 na donji desni dio kodera
  • Spojite Arduino D4 na gornji lijevi koder

Korak 11: Instalacija u kućište

Instalacija u kućištu
Instalacija u kućištu

Ugradite svu elektroniku u donji dio kućišta:

  • Gurnite Arduino na okomiti otvor
  • Gurnite sat za realno vrijeme u donji odjeljak
  • Gurnite napajanje i relej u gornji odjeljak, pazite da relej sjedne na svoje nosače.

Korak 12: Spajanje na električnu mrežu / svjetlo za prebacivanje

Priključivanje na električnu mrežu / svjetlo koje se uključuje
Priključivanje na električnu mrežu / svjetlo koje se uključuje
Priključivanje na električnu mrežu / svjetlo koje se uključuje
Priključivanje na električnu mrežu / svjetlo koje se uključuje

UPOZORENJE

Pazite na odgovarajuću njegu i mjere opreza dok radite s mrežom naizmjenične struje, pazite da je mrežna mreža isključena

Ne preuzimam odgovornost za bilo kakav gubitak ili štetu nastalu izravno ili kao posljedicu praćenja ovog projekta

  • Priključite fazu mrežnog napona na A1 (lijevi) zavrtanj releja releja.
  • Spojite fazu svjetla koje želite prebaciti na B1 (desni) vijčani priključni blok releja.
  • Za spajanje neutralne žice naizmjenične struje, svjetlosne neutralne žice i neutralne žice izvora napajanja upotrijebite zasebni vijčani priključni blok.
  • Za rasterećenje, montirajte omotač kravate oko svakog kabla za napajanje.

Korak 13: Dovršavanje kućišta

Završetak kućišta
Završetak kućišta

U ovom koraku montaža u kućište je završena

  • Gurnite OLED ekran kroz otvor za montažu ekrana u srednjem delu kućišta.
  • Gurnite okretni davač kroz otvor u srednjem dijelu, pazite da se zaštita od rotacije poravna. Montirajte rotacijski davač pomoću priložene podloške i matice.
  • Montirajte gornji dio kućišta i zatvorite kućište postavljanjem četiri vijka M3x25 mm odozdo.

Korak 14: Programiranje Arduina

UPOZORENJE

Arduino se napaja izravno iz stabilnog napajanja +5V umjesto korištenja Arduino unutrašnjeg regulatora napajanja. Stoga nije sigurno spojiti USB kada Arduino prima napajanje iz izvora napajanja.

Uvijek isključite mrežno napajanje 230VAC prije korištenja Arduino USB veze.

Preuzmite Arduino timer program s GitHub -a.

Ovaj program koristi Arduino IDE, koji se može dobiti ovdje.

Program koristi sljedeće dodatne biblioteke:

SSD1303Ascii

Arduino Wire biblioteka

Imajte na umu da se koristi i biblioteka dusk2dawn, ali uključena kao kod zbog promjene u njenom sučelju.

Da bi se osiguralo ispravno izračunavanje sumraka / svitanja, moraju se postaviti zemljopisna dužina i širina i vremenska zona.

Kao što je opisano u primjeru dusk2dawn, jednostavan način za pronalaženje zemljopisne dužine i širine za bilo koju lokaciju je pronalaženje mjesta na Google kartama, desni klik na mjesto na karti i odabir "Što je ovdje?". Pri dnu ćete vidjeti karticu s koordinatama.

Geografska dužina i širina su tvrdo kodirani u programu, u linijama 19 i 20 Dusk2Dawn.cpp:

/* Ovdje morate postaviti geografsku širinu i dužinu vaše lokacije.

* * SAVET: Lak način da pronađete geografsku dužinu i širinu za bilo koju lokaciju je * da pronađete mesto na Google mapama, desnim tasterom miša kliknete mesto na mapi i * izaberete "Šta je ovde?". Pri dnu ćete vidjeti karticu s * koordinatama. */ #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht

Vremenska zona je također tvrdo kodirana u liniji 24. Dusk2Dawn.cpp. Prema zadanim postavkama postavljena je na Nizozemsku (GMT + 1):

/* Ovdje unesite svoju vremensku zonu (pomaknuta na GMT).

*/ #definirajte VREMENSKU ZONU 1

Prilikom prvog programiranja Arduina, potrebno je inicijalizirati EEPROM memoriju. U tu svrhu promijenite red 11 timer.cpp da biste izvršili inicijalizaciju EEPROM -a:

// promijenite u true za prvo programiranje

#define INITIALIZE_EEPROM_MEMORY false

Prenesite program na Arduino i pokrenite Arduino.

Onemogućite inicijalizaciju EEPROM -a i ponovo prenesite program na Arduino. Tajmer će sada zapamtiti postavke vremena prebacivanja pri ponovnom pokretanju.

Korak 15: Postavljanje vremena i prebacivanje vremena

Koncepti interakcije korisnika:

  • Kratkim pritiskom se potvrđuje odabir. Nadalje, na ekranu glavnog tajmera kratkim pritiskom uključuje se ili isključuje svjetlo.
  • Dug pritisak se koristi za ulazak u meni sa ekrana glavnog tajmera. Bilo gdje u meniju dugim pritiskom vratit ćete se na glavni zaslon mjerača vremena.
  • ‘>’ Kurs selekcije. Ovaj kursor označava odabranu opciju u meniju.

Ekran glavnog tajmera

Ekran glavnog tajmera prikazuje:

Dan u nedelji Ned

Trenutno vrijeme 16:00

Trenutno stanje tajmera i vrijeme sljedećeg prebacivanja Tajmer je isključen do 17:12

Zora i sumrak Zora 08:05 Sumrak 17:10

Podešavanje tačnog vremena

Dugo pritisnite za ulazak u meni. Prikazane su sljedeće opcije:

BackSet timeTjednevni programWekend programOptions

Odaberite postavljeno vrijeme za postavljanje datuma i vremena na satu stvarnog vremena. Unesite ispravne vrijednosti za:

YearMonthDayTime

Tajmer automatski određuje dan u sedmici. Prebacivanje ljetnog računanja vremena također se vrši automatski. Ljetno računanje vremena se primjenjuje samo za evropsku vremensku zonu.

Podešavanje programa tajmera

Tajmer ima 2 programa, jedan za radne dane, jedan za vikend. Imajte na umu da se petak smatra dijelom vikenda, svjetla mogu ostati uključena malo duže.

Svaki mjerač vremena ima prekidač za uključivanje i isključivanje. Trenutak može biti:

  • Vrijeme: Tačno određeno vrijeme
  • Zora: Prebacivanje na osnovu izračunatog vremena zore
  • Sumrak: Prebacivanje na osnovu izračunatog vremena sumraka

Za sumrak i zoru moguće je unijeti vrijednost ispravke od 59 minuta prije ili poslije.

Primjeri:

Za uključivanje svjetla cijelu noć, odaberite uključivanje u (sumrak + 10 minuta), isključivanje u (svitanje - 10 minuta)

Da biste svjetlo upalili u večernjim satima, odaberite uključivanje u sumrak, isključite u vrijeme: 22:30.

Opcije

Na ekranu opcija može se postaviti vremensko ograničenje za prebacivanje ekrana.

Kada je ekran isključen, pritiskom na dugme za okretanje kodera vratit ćete se na glavni zaslon mjerača vremena.

Preporučuje se: