Sadržaj:

Svijetla lampa za izlazak sunca koja se može kontrolirati: 6 koraka
Svijetla lampa za izlazak sunca koja se može kontrolirati: 6 koraka

Video: Svijetla lampa za izlazak sunca koja se može kontrolirati: 6 koraka

Video: Svijetla lampa za izlazak sunca koja se može kontrolirati: 6 koraka
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Studeni
Anonim
Svijetla lampa za izlazak sunca koja se može kontrolirati
Svijetla lampa za izlazak sunca koja se može kontrolirati
Svijetla lampa za izlazak sunca koja se može kontrolirati
Svijetla lampa za izlazak sunca koja se može kontrolirati

Jeste li se ikada probudili u 7ish, uobičajeno vrijeme koje vam je potrebno za rad i zatekli ste se u mraku? Zima je strašno vrijeme, zar ne? Morate se probuditi usred noći (inače zašto je tako mračno?), Istrgnuti se s kreveta i poslati svoje polusvjesno tijelo pod tuš.

Ovaj projekt ima za cilj riješiti jedno od pitanja - jutarnji mrak.

U okolici ima mnogo jeftinih svjetiljki za izlazak sunca, ali sve su male snage i blijede. Više su poput noćne svjetiljke zbog koje biste trebali bolje spavati. Uopće nije ono što želim.

U isto vrijeme, samo uključivanje jakog svjetla odmah će vas probuditi, ali ne dovoljno nježno. Ono što želim je kombinacija oba pristupa - upalite s niskom svjetlinom, polako dođite do pune brzine, zatim se oglasi pravi alarm i više niste tako pospani. Dodajmo tome malo ptičje pjesme i svako se jutro probudite na nebu!

Korak 1: Niz svjetiljki

Niz svjetiljki
Niz svjetiljki
Niz svjetiljki
Niz svjetiljki

Prije svega, potrebna nam je sama svjetiljka. Imam prilično veliku sobu s bijelim zidovima i stropom, pa sam se odlučio za 7 LED žarulja GU10, nešto poput 6 W svaka, više od 40 W čiste snage! To je dovoljno da se osjećate kao da je već dan. Također se može koristiti kao uobičajena sobna rasvjeta tijekom dana.

Zapravo nije važno kako ga sastavljate, koje svjetiljke koristite s kojim utičnicama. Sve što je važno - ovo moraju biti prigušive svjetiljke!

U mom slučaju imam drvenu dasku sa 7 utičnica GU10, sve spojene zajedno. Kasnije ću ga staviti u plastičnu kutiju.

Korak 2: Teorija zatamnjenja

Teorija zatamnjenja
Teorija zatamnjenja

U teoriji nema razlike između teorije i prakse. U praksi postoji.

Upravljanje prigušivačem s ESP32/Arduina nije izgledalo tako jednostavno kao što sam zamišljao. Dobio sam jedan od RobotDyn AC Light Dimmer modula. Proizvođač za to predlaže knjižnicu. Ne radi na ESP32 (i stvarno ga je teško prilagoditi jer koristi puno pristupa registru specifičnim za ATMega), na neki način radi na Arduinu Nano, dajući užasno treperenje pri niskoj i srednjoj svjetlini. Zato sam proveo neko vrijeme istražujući kako to sve funkcionira i snašao se.

Malo teorije

Odabrani modul prigušivača koristi vrlo popularan TRIAC: BTA16. Postoji mnogo članaka o tome. Pokušat ću to ovdje sažeti.

TRIAC je modul koji može prenijeti ulazni pozitivni ili negativni napon na izlaz ili ga može blokirati. Prema zadanim postavkama sve blokira. Da bismo ga otvorili, trebali bismo mu dati visoki signal na ulazu vrata za 100 us. Tada će ostati otvoren sve dok struja ne padne na nulu, što se događa kada ulazni napon promijeni znak, prelazeći nulti napon. Zatim bismo u sljedećem ciklusu trebali napraviti još 100 us pulsa i tako dalje. Odabirom vremena davanja pulsa kontroliramo svjetlinu: učinite to na samom početku i bit će blizu 100% prijenosa snage. Učinite to kasnije i bit će prigušeno. Pogledajte gornji dijagram, objašnjavajući ga.

Kako bismo generirali impulse u istoj točki ciklusa, moramo znati točno kada počinje. Zato modul za prigušivanje ima ugrađen detektor nultog križa. On samo podiže signal (koji ćemo uhvatiti kao hardverski prekid u Arduinu) svaki put kad napon prijeđe nulu.

Korak 3: Vježba zatamnjivanja

Praksa zatamnjivanja
Praksa zatamnjivanja

Da, tako biste se probudili da vaša svjetiljka nema zatamnjenje i unese svih 40 W snage u vaše pospane oči.

Uobičajena pitanja

Postoji više problema koje moramo riješiti.

Treperenje.

Vrijeme mikrokontrolera mora biti stvarno precizno pri uključivanju i isključivanju izlaza vrata. Knjižnica koju RobotDyn predlaže ima prekid timera svakih 100us i mijenja razinu vrata samo na tajmeru. To znači da može biti +/- 50 mikrosekundi izvan optimalne vrijednosti. Daje dobre rezultate pri visokoj svjetlini, ali jako treperi pri niskoj svjetlini. Također, ako mikrokontroler radi mnogo stvari, to smanjuje točnost vremena, pa bi idealno bilo da se za prigušivač koristi namjenski mikrokontroler.

Minimalna svjetlina. LED diode imaju ugrađen pretvarač napajanja, koji jednostavno neće raditi ako nema dovoljno energije. Činilo se da su mi svjetiljke radile dobro počevši od 10-11%.

Čak i uz ovu vrijednost, neke od mojih svjetiljki odbile su se upaliti pri startu. Čak i kad kasnije povećaju svjetlinu, ostaju tamni. Zato, kad iz stanja isključenosti pređemo na neku pozitivnu svjetlinu, počinjemo s razdobljem zagrijavanja od 5 ciklusa, kada lampama dajemo punu snagu. Zatim nastavljamo sa željenom svjetlinom. To je gotovo neprimjetno, ali stvarno pomaže.

Mrežna frekvencija 50/60 Hz. Morate znati koliko čekati prije sljedeće nule. Prilično je jednostavno - samo gledamo vremensku razliku između dva zadnja prekida.

Postupna promjena svjetline. ESP32 je prilično spor, potrebno je 0,5 sekundi za obradu trivijalnog HTTP ili čak WebSocket zahtjeva, stoga ne očekujte gladak prijelaz svjetline, potrebno ga je nekako implementirati na razini prigušivača. Zato, kad dobije novu svjetlinu iz serijskog porta, samo postavlja cilj, a zatim mu se s vremenom polako približava.

Rješenje

Evo mog jednostavnog Arduino koda za prigušivač. Čeka naredbu (jedan bajt s novom svjetlinom) sa serijskog ulaza, obrađuje Zero-Cross prekide, kontrolira TRIAC, rješavajući sve gore navedene probleme.

Korak 4: Kontroler lampe (ESP32)

Upravljač lampom (ESP32)
Upravljač lampom (ESP32)
Upravljač lampom (ESP32)
Upravljač lampom (ESP32)

Evo sheme povezivanja svih komponenti koje imam. ESP32 ploča jako se razlikuje od one koju ja koristim (Heltec), pa odabrane iglice izgledaju pomalo čudno, ali bi i dalje trebale raditi. U svom projektu slobodno koristite različite pribadače.

Evo koda koji sve kontrolira. Prilično je jednostavno.

Glavne značajke

Lampica se povezuje na WiFi, pokreće poslužitelj WebSocket na priključku 81, čeka naredbe. Format naredbe je

Za sada su podržane samo dvije naredbe: "set_brightness" i "update_settings", koje su… prilično samoodgovorne.

Dobivanje vremena od NTP-a. Ne želim previše komplicirati stvari i dodati shemu u realnom vremenu. Imamo pristup Internetu, što znači da možemo dobiti realno vrijeme s nekog NTP poslužitelja, a zatim pratiti mjerenje vremena pomoću mjerača vremena.

Alarm za izlazak sunca. Možete postaviti jedan alarm. Što zapravo radi: počinje s minimalnom svjetlinom i postupno prelazi u punu svjetlinu tijekom 10 minuta. Zatim ostaje na par sati. Zatim se postupno isključuje tijekom 60 sekundi.

Svi gornji parametri se mogu konfigurirati.

Ptice pjevaju. DFPlayer mini služi za reprodukciju glazbe. Postoji mnogo vodiča za to, ali u biti trebate samo priključiti MicroSD karticu, formatiranu u FAT32, s jednom datotekom koja se zove 0001.mp3. Ova datoteka može imati sve što vam se sviđa, u mom slučaju to je 15 minuta ptičjeg pjevanja (bit će petljasto), a moje jutro čini nevjerojatnim. Imajte na umu da je na snazi veliki kondenzator, a otpornici od 1 kOhm na serijskoj liniji između ESP32 i DFplayer - oni su izborni, ali pomažu u smanjenju buke.

Spremanje postavki u EEPROM. Sve postavke se zapisuju u EEPROM i učitavaju pri pokretanju. Omogućuje korištenje svjetiljke s barem značajkom alarma bez spojenog kontrolera.

Prijenos nekih informacija na OLED zaslon. Moj Heltec ESP32 ima ugrađeni SSD1306 128X64 I2C zaslon. Na njemu se ispisuju svi bitni podaci. Znam, kutija izgleda ružno, upravo sam 3D ispisao neke stvari i bušilicom izrezao rupe i prozore. Brzo, prljavo, ali radi!

Korak 5: Upravljačka ploča

Upravljačka ploča
Upravljačka ploča
Upravljačka ploča
Upravljačka ploča

To je srce projekta. Raspberry Pi s originalnim zaslonom od 7 , s nekim Kivyjevim prednjim dijelom.

Evo cijelog izvornog koda.

Značajke

Napisano na Pythonu. Volim Kivy, to je Python okvir za korisnička sučelja. Vrlo jednostavno, ali fleksibilno i učinkovito (koristi puno C koda za visoke performanse i hardversko ubrzanje).

Vrijeme. Prikažite trenutnu temperaturu i tlak vani. Ako priključite daljinski senzor - i unutarnju temperaturu. Također traži i analizira vremensku prognozu za sljedećih 12 sati i daje savjet o vjerojatnosti kiše.

Kontroler SunriseLamp. Druga ploča prikazuje neke osnovne podatke o alarmu i omogućuje vam podešavanje svjetline. Ako odete na postavke, možete konfigurirati bilo koji parametar žarulje, uključujući raspored alarma, maksimalnu glasnoću zvuka itd.

Screensaver. Renderira Game of Life na ekranu nakon nekog perioda neaktivnosti.

Nekada je bilo i više od toga, ali činilo se da su druge stvari beskorisne.

Montaža

Sve sam ručno instalirao na Raspbian i sada mogu reći: ne ponavljaj moje greške. Koristite KivyPie, sve ima unaprijed instalirano.

Osim toga, samo slijedite vodič za instalaciju u spremištu koda.

Korak 6: Uživajte

Osobno sam zadovoljan uređajem. Koristim ga kao glavno osvjetljenje kod kuće tijekom dana i omogućuje mi da se probudim ujutro, nevjerojatno je.

Znam da upute nisu baš detaljne i opisne. Ako netko napravi istu stvar i ima problema - rado ću vam pomoći!

Preporučeni: