Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Zima može biti tužna. Probudiš se, mrak je i moraš ustati iz kreveta. Posljednje što želite čuti je treštati zvuk vašeg budilnika. Živim u Londonu i teško se ujutro budim. Takođe, nedostaje mi buđenje na prirodnom svjetlu.
U ovom vodiču ćemo izgraditi budilnik Sunrise. To je budilnik kao i svaki drugi po tome što možete postaviti sat i minute u kojima se želite probuditi, ali s dodatnom prednošću korištenja svjetla za osvjetljavanje vaše spavaće sobe u određenom vremenskom periodu poput izlaska sunca kako biste se prirodnije probudili.
Svjetiljke Sunrise postoje na tržištu, ali mogu biti skupe (brza pretraga na Amazonu vraća proizvode u rasponu od 100 funti), krhke i prilično kliničkog izgleda. Učinit ćemo nešto mnogo jeftinije i mnogo ljepše.
Svi dijelovi će biti navedeni u sljedećem koraku. Kôd se može preuzeti sa mog Github repo gold-sunrise-sata. Sve sheme i datoteke za izradu kućišta dostupne su za preuzimanje na ovom vodiču.
Idemo:)
Ako naiđete na probleme ili želite pozdraviti, pošaljite mi poruku na [email protected] ili me slijedite na Instagramu @celinechappert.
Korak 1: Skupljanje komponenti
Za početak ćemo koristiti sat kao ulaz i ultra-svijetlu LED diodu kao izlaz za simulaciju izlaska sunca.
Za izgradnju kruga trebat će nam:
- sat. Koristit ćemo RTC DS3231 (£ 5)
- MOSFET za kontrolu jačine svjetla (£ 9)
- super svijetleLED (1 funta)
- 9V baterija za napajanje LED diode (3 funte)
- ploča za jednostavno sastavljanje (3 funte)
- Arduino Uno (20 funti)
- dugme (opcionalno - samo u demo svrhe)
Ukupna cijena = 41 £
Ako već imate Arduino, matičnu ploču i 9V bateriju kod kuće, cijeli će vas projekt koštati manje od 15 funti.
Za izradu akrilnog kućišta trebat će vam:
- 2 lista 0,3 mm Perspex akrilnih listova, 1 list po boji za sunce i kućište.
- pristup laserskom rezaču.
Imam sreću što sam imao pristup radionici svoje škole pa su ti troškovi uglavnom pokriveni. Kupio sam dodatni list akrila jer je moj dizajn zahtijevao narandžastu nijansu za sunce, koja je koštala 14 funti po listu (Perspex je skup!).
Korak 2: Sastavljanje kruga
Možete se pozvati na crno -bijelu skicu mog kola (oprostite neuredno) i na dijagram koji prikazuje Arduino (gotovo sa Fritzingom).
U suštini ovdje je analiza onoga što je povezano s čim:
Sat:
(-) spaja se na GND
NC znači 'Not Connected' i ne povezuje se ni sa čim
C/SCL se spaja na pin A5 na Arduinu
D/SDA se spaja na pin A4 na Arduinu
(+) spaja se na 5V na Arduinu
MOSFET
Gate pin ide na pin ~ 9 na Arduino Uno jer je PWM
Odvodni pin ide na negativnu stranu LED diode
Izvorni pin ide u GND na Arduinu
LED
Negativna strana je spojena na odvodni pin na MOSFET -u
Pozitivna strana je spojena na 5V na matičnoj ploči
9V baterija
(+) do (+) na matičnoj ploči, isto sa (-).
Arduino Uno
Ne zaboravite spojiti 5V na (+) na matičnoj ploči, a GND na (-). Ne zaboravite spojiti (-) s jedne strane matične ploče na (-) s druge strane.
Sljedeće ćemo postaviti sat pomoću biblioteke DS3231.
Korak 3: Instaliranje i podešavanje sata
Biblioteka koju koristim za pokretanje ovog sata nalazi se na stranici Rinky-Dink Electronics (snimke ekrana gore). Kliknite na vezu i provjerite jeste li na stranici DS3231. Preuzmite zip datoteku, spremite je i postavite u mapu Arduino /biblioteke.
Sada za postavljanje ispravnog vremena na satu otvorite Arduino i idite na Primjeri/DS3231/Arduino/DS3231_Serial_Easy.
Dekomentirajte tri retka koda (na ekranu je prikazano narandžasto), provjerite vrijeme i postavite točno vrijeme u ta tri retka koda u vojnom formatu.
Pritisnite Upload.
Sada možete dekomentirati ta tri retka i ponovo pritisnuti Upload.
Otvorite serijski monitor i provjerite je li tačno vrijeme.
Naš sat je podešen! Imamo svoj krug, sada počnimo kodiranje. Opet, repo je dostupan na Githubu.
Korak 4: Kodiranje
Preuzmite kôd i provjerite je li biblioteka za DS3231 ispravno instalirana.
Prije svega, želimo definirati naše postavke.
fadeTime je koliko će dugo svjetlost nestajati od 0 do maksimalne svjetline u nekoliko minuta. setHour/setMin odgovaraju vremenu do kojeg se želimo probuditi (napomena: ovo čita vojni format, pa je potrebno 24 -satno vrijeme). Također definiramo pin 9 na Arduinu kao naš IZLAZ.
U setup (), provjerite da li SerialBegin broj (ovdje 96000 bauda) odgovara broju serijskog monitora.
U loop (), if naredba provjerava je li vrijeme za buđenje. Kôd radi u petlji, svaki put provjeravajući da li vrijednosti sata i minuta koje vraća sat odgovaraju našim varijablama setHour/setMin. U tom slučaju naredba if vraća aktivnu () funkciju.
Funkcija active () sastoji se od dva dijela. Prvo počinjemo postupno gasiti svjetlo: funkcije kašnjenja su tu kako bi spriječile da LED diode postanu prejake u 'ranim' fazama vremena fadeTimea. Zatim petlja for kontrolira brzinu kojom svjetlo treba postajati sve jače i jače ovisno o vremenu fadeTimea. Konačno, ugasili smo svjetlo prosljeđivanjem vrijednosti 0 našoj LED u funkciji analogWrite ().
Gornji video prikazuje kolo koje radi u jednom od prototipnih akrilnih kućišta.
Korak 5: Kartonski prototip (opcionalno)
Prije ovog projekta nikada nisam radio sa laserskim rezačem. Izrada prototipa od kartona omogućila mi je da se upoznam sa mašinom dok sam testirao koliko dobro je predmet izgledao (veličina, izgled itd.) U stvarnom prostoru. Planovi slučajeva za preuzimanje.