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 Video Tutorial - 06 Motorized Pinwheel 2024, Studeni
Anonim
Arduino mjerač sata za sumrak/zoru
Arduino mjerač sata za sumrak/zoru

Sažetak:

Ovaj mjerač temeljen 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 svjetla ne dopušta upotrebu senzora svjetla. Uobičajeni dostupni mjerači vremena uključuju se u određeno vrijeme. Za uključivanje u sumrak stoga je potrebno redovito podešavanje postavki programa timera.

Kao lijep izazov, odlučio sam umjesto toga izgraditi prilagođeni samostalni mjerač vremena baziran na Arduinu. Koristi sat u stvarnom vremenu i biblioteku Dusk2Dawn za određivanje vremena u kojem se svjetla moraju uključiti ili isključiti. Okvir za ovaj mjerač vremena je 3D ispisan i može se pronaći na Thingiverseu. Arduino kôd za ovaj projekt može se pronaći na GitHubu.

U stvaranju ovog mjerača vremena inspirirao sam mnoge dizajne i sklopove na internetu. Zahvaljujem se svim suradnicima koji nisu izričito spomenuti.

Radi čitljivosti, djelomični dijagrami prikazani su u koracima gdje je to potrebno, umjesto cjelovitog dijagrama.

Alternativna rješenja:

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

Ograničenja:

Kôd koji je dostavljen uz ovaj projekt uključivao je implementaciju izmjena ljetnog računanja vremena na temelju europskog sustava za ljetno računanje vremena.

Korak 1: Popis dijelova i alati

Popis dijelova i alati
Popis dijelova i alati

Dijelovi:

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

  • Arduino Nano V3 (kompatibilan) bez zaglavlja
  • Napajanje 5V 0.6A (34 x 20 x 15 mm)
  • Poluprovodnički relej 5V - Aktivno nisko - 2A 230VAC
  • Sat za realno vrijeme DS3231 (mali)
  • 0,96”OLED zaslon SPI 128*64 piksela
  • Rotacijski davač - EC11 - 20 mm
  • Ručka 6 mm osovine 15 mm * 17 mm
  • Ploča s tiskanim pločicama,
  • 4* vijci M3x25 mm
  • 3D tiskano kućište
  • Termoskupljajuće cijevi
  • Žice
  • Vijčani terminalni blok (za spajanje neutralnih žica)

Potrebni alati:

  • Lemilica
  • Lemljena žica
  • Pumpa za lemljenje
  • Skidači žica
  • Rezači
  • 3D pisač (za ispis kućišta)
  • Raznovrsni mali alati

UPOZORENJE

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

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

Uvijek se savjetuje odgovarajuća briga i mjere opreza tijekom rada s mrežnim napajanjem

Korak 2: Pripremite OLED zaslon i sat u stvarnom vremenu

Pripremite OLED zaslon i sat u stvarnom vremenu
Pripremite OLED zaslon i sat u stvarnom vremenu

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

U pripremi za sljedeći korak, pumpom za odmrzavanje očistite sav preostali lem iz rupa.

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 već pripremljen i uzemljenje (gore desno i srednje dno).

Napomena: Pazite da rotirajući koder s tiskanom pločom stane u kućište bez dodirivanja Arduina. Možda će biti potrebno brusiti tiskanu ploču kako bi se dobro prilijegla.

Korak 4: Ograđivanje

Kućište
Kućište
Kućište
Kućište

Ispišite tri dijela kućišta 3D pisačem. Pogledajte upute za Thingiverse.

Korak 5: Onemogućite LED za napajanje Arduino (izborno)

Onemogućite Arduino Power LED (izborno)
Onemogućite Arduino Power LED (izborno)

Kako biste spriječili zeleni sjaj 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 (vidi crveni krug na slici).

Korak 6: Napajanje + relej u krutom stanju

Napajanje + relej u krutom stanju
Napajanje + relej u krutom 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 koristit će se za spajanje na Arduino.

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

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

Napomena: Možda će biti potrebno skratiti vodove 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-Relej
Arduino Nano + Napajanje + Solid-Relej

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

  • Izrežite dvije žice duljine približno 70 mm. Odvojite 30 mm izolacije s jedne strane i 4 mm s druge strane.
  • Lemite stranu s izoliranom izolacijom od 30 mm na Arduino +5V i GND, s ž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 spoja s montažnim vijčanim priključnim blokom DC+ i DC- poluvodičkog releja.
  • Imajte na umu da se žice za GND i +5V moraju ukrstiti da bi se ispravno spojile na priključni blok relejnog vijka.
  • Odrežite žicu duljine približno 40 mm i odvojite 4 mm izolacije s oba kraja. Lemite jednu stranu na priključak A2 na ZADNJOJ strani Arduina, a drugu stranu spojite na CH1 priključak vijčanog priključnog bloka za montažu u čvrstom stanju.

UPOZORENJE

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

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

Korak 8: Arduino Nano + sat u stvarnom vremenu

Arduino Nano + sat u stvarnom vremenu
Arduino Nano + sat u stvarnom 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 spojenog 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.
  • Izrež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 stvarnom 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 zaslon

Povežite OLED zaslon
Povežite OLED zaslon

U ovom koraku OLED SPI zaslon dodaje se Arduinu.

  • Izrežite 2 žice duljine 65 mm i odvojite 4 mm izolacije s oba kraja.
  • Lemite žicu na GND vezu OLED zaslona. Lemite ovu žicu na izoliranu žicu toplinski skupljajućih cijevi koja dolazi s Arduina GND (pogledajte korak 4) i spojite obje žice s priključnim blokom na istosmjerni relej za montažu na istosmjernu struju.
  • Lemite žicu na VCC vezu OLED zaslona. Lemite ovu žicu na izoliranu žicu toplinski skupljajućih cijevi koja dolazi s Arduina + 5V (pogledajte korak 4) i spojite obje žice s priključnim blokom na vijak DC + za montažu na poluprovodnički relej.
  • Izrežite 5 žica duljine 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. To 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 sukladno tome prilagoditi:

// Korištenje softvera SPI

// pin definicije

#define CS_PIN 12

#definiraj 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).

  • Izrež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 davača
  • Spojite Arduino D3 na donji desni dio kodera
  • Spojite Arduino D4 u gornji lijevi ugao kodera

Korak 11: Instalacija u kućište

Ugradnja u kućište
Ugradnja u kućište

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

  • Gurnite Arduino na okomiti utor
  • Gurnite sat za stvarno 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 za prebacivanje
Priključivanje na električnu mrežu / svjetlo za prebacivanje

UPOZORENJE

Tijekom rada s mrežom za izmjeničnu struju osigurajte odgovarajuću njegu i mjere opreza, pazite da je mrežna mreža isključena

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

  • Spojite mrežnu fazu izmjenične struje na A1 (lijevi) vijčani priključni blok 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 napajanja upotrijebite zasebni vijčani priključni blok.
  • Za ublažavanje naprezanja, montirajte omotač kravate oko svakog kabela za napajanje.

Korak 13: Dovršavanje kućišta

Dovršavanje kućišta
Dovršavanje kućišta

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

  • Gurnite OLED zaslon kroz otvor za montažu zaslona u srednjem dijelu kućišta.
  • Provucite okretni davač kroz rupu u srednjem dijelu, pazite da se proturotirajući usmjeri. 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 unutarnjeg regulatora snage Arduina. Stoga nije sigurno spojiti USB kada Arduino prima napajanje iz izvora napajanja.

Prije korištenja Arduino USB veze uvijek isključite napajanje od 230VAC.

Preuzmite Arduino timer program s GitHub -a.

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

Program koristi sljedeće dodatne knjižnice:

SSD1303Ascii

Arduino Wire knjižnica

Imajte na umu da se koristi i dusk2dawn knjižnica, ali uključena kao kod zbog promjene u njezinom sučelju.

Kako bi se osigurao ispravan izračun sumraka / zore, moraju se postaviti zemljopisna dužina i širina te 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 pronaći mjesto na Google kartama, desnom tipkom miša kliknite mjesto na karti i odaberite "Što je ovdje?". Pri dnu ćete vidjeti karticu s koordinatama.

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

/* Ovdje morate postaviti zemljopisnu širinu i dužinu svoje lokacije.

* * SAVJET: Jednostavan način za pronalaženje zemljopisne dužine i širine za bilo koju lokaciju je * pronaći mjesto na Google kartama, desnom tipkom miša kliknite mjesto na karti i * odaberite "Što je ovdje?". Pri dnu ćete vidjeti karticu s * koordinatama. */ #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht

Vremenska zona također je tvrdo kodirana u retku 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 memoriju EEPROM -a. U tu svrhu promijenite 11. timer.cpp redak na 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 ponovno prenesite program na Arduino. Odbrojavač će sada zapamtiti postavke vremena prebacivanja pri ponovnom pokretanju.

Korak 15: Postavljanje vremena i mijenjanje vremena

Koncepti interakcije korisnika:

  • Kratkim pritiskom se potvrđuje odabir. Nadalje, na glavnom zaslonu mjerača vremena kratkim pritiskom uključuje se ili isključuje svjetlo.
  • Dugi pritisak koristi se za ulazak u izbornik s glavnog zaslona mjerača vremena. Bilo gdje u izborniku dugim pritiskom vratit ćete se na glavni zaslon mjerača vremena.
  • ‘>’ Kurs kursa odabira. Ovaj kursor označava odabranu opciju u izborniku.

Zaslon glavnog mjerača vremena

Glavni zaslon mjerača vremena prikazuje:

Dan u tjednu Ned

Trenutno vrijeme 16:00

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

Zora i sumrak Zora 08:05 Sumrak 17:10

Postavljanje ispravnog vremena

Dugo pritisnite za ulaz u izbornik. Prikazane su sljedeće opcije:

BackSet timeTjedenski programWekend programOptions

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

YearMonthDayTime

Mjerač vremena automatski određuje dan u tjednu. Promjena ljetnog računanja vremena također se vrši automatski. Ljetno računanje vremena provodi se samo za europsku vremensku zonu.

Postavljanje programa timera

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 vrijeme uključivanja i isključivanja. Trenutak može biti:

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

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

Primjeri:

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

Da biste svjetlo upalili navečer, odaberite uključivanje u sumrak, isključite u vrijeme: 22:30.

Opcije

Na zaslonu opcija može se postaviti vremensko ograničenje za prebacivanje zaslona.

Kad je zaslon isključen, pritiskom na tipku okretnog kodera vratit ćete se na glavni zaslon mjerača vremena.

Preporučeni: