Kazalo:
- 1. korak: Niz svetilk
- 2. korak: Teorija zatemnitve
- 3. korak: Praksa zatemnitve
- 4. korak: Krmilnik svetilk (ESP32)
- 5. korak: Nadzorna plošča
- 6. korak: Uživajte
Video: Svetla svetilka Sunrise, ki jo je mogoče upravljati: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Ste se kdaj zbudili ob sedmih, običajnem času, ko se morate zbuditi za delo, in ste se znašli v temi? Zima je grozen čas, kajne? Zbuditi se morate sredi noči (sicer zakaj je tako temno?), Se strgati s postelje in svoje polzavestno telo poslati pod tuš.
Namen tega projekta je rešiti eno od vprašanj - jutranjo temo.
Okrog je veliko poceni svetilk za sončni vzhod, vendar so vse majhne moči in blede. Bolj so kot nočna svetilka, zaradi katere naj bi bolje spali. Sploh ni tisto, kar si želim.
Hkrati pa vas bo samo vklop močne svetlobe takoj zbudil, vendar ne dovolj nežno. Kar hočem, je kombinacija obeh pristopov - prižgite z nizko svetlostjo, počasi pridete do polne hitrosti, potem se oglasi pravi alarm in niste več tako zaspani. Dodajmo še malo ptičje pesmi in vsako jutro se zbudiš v nebesih!
1. korak: Niz svetilk
Najprej potrebujemo samo svetilko. Imam precej veliko sobo z belimi stenami in stropom, zato sem se odločil za 7 LED svetilk GU10, nekaj po 6 W vsaka, več kot 40 W čiste moči! To je dovolj, da se počutite, kot da je že dan. Lahko se uporablja tudi kot običajna sobna razsvetljava podnevi.
Ni pomembno, kako ga sestavite, katere svetilke uporabljate s katerimi vtičnicami. Vse, kar je pomembno - to morajo biti zatemnljive svetilke!
V mojem primeru imam leseno desko s priključenimi 7 vtičnicami GU10, vse skupaj povezano. Kasneje ga bom dal v plastično škatlo.
2. korak: Teorija zatemnitve
V teoriji ni razlike med teorijo in prakso. V praksi obstaja.
Upravljanje zatemnilnika z ESP32/Arduino ni bilo tako preprosto, kot sem si predstavljal. Dobil sem enega od modulov RobotDyn AC Light Dimmer. Proizvajalec za to predlaga knjižnico. Ne deluje na ESP32 (in res težko ga je prilagoditi, ker uporablja veliko dostopa do registra, specifičnega za ATMega), nekako deluje na Arduino Nano, kar daje grozno utripanje pri nizki in srednji svetlosti. Zato sem nekaj časa raziskal, kako vse to deluje, in se prebil po svoje.
Malo teorije
Izbrani modul za zatemnitev uporablja zelo priljubljen TRIAC: BTA16. O tem je veliko člankov. Poskušal bom povzeti tukaj.
TRIAC je modul, ki lahko prenaša vhodno pozitivno ali negativno napetost na izhod ali pa ga blokira. Privzeto blokira vse. Če ga želimo odpreti, bi morali dati 100 signalov na vhodu vrat. Nato ostane odprt, dokler tok ne pade na nič, kar se zgodi, ko vhodna napetost spremeni znak in prečka ničelno napetost. Nato bi morali v naslednjem ciklu narediti še 100 ut utripa in tako naprej. Ko izberemo, kdaj dati impulz, nadzorujemo svetlost: naredite to na samem začetku in prenos bo blizu 100%. Naredite to pozneje in bo zatemnjeno. Oglejte si zgornji diagram in ga razložite.
Za ustvarjanje impulzov na isti točki cikla moramo natančno vedeti, kdaj se začne. Zato ima modul za zatemnitev vgrajen detektor z ničelnim navzkrižjem. Samo dvigne signal (ki ga bomo ujeli kot strojno prekinitev v Arduinu) vsakič, ko napetost preseže ničlo.
3. korak: Praksa zatemnitve
Ja, tako bi se zbudili, če svetilka nima zatemnitve in v spanje vloži vseh 40 W moči.
Pogosta vprašanja
Obstaja več vprašanj, ki jih moramo rešiti.
Utripanje.
Čas vklopa mikrokrmilnika mora biti zelo natančen pri vklopu in izklopu izhoda vrat. Knjižnica, ki jo predlaga RobotDyn, ima časovne prekinitve na vsakih 100us in spreminja raven vrat samo na časovniku. To pomeni, da je lahko +/- 50 mikrosekund od optimalne vrednosti. Pri visoki svetlosti daje dobre rezultate, pri nizki pa veliko utripa. Tudi če mikrokrmilnik naredi veliko stvari, zmanjša časovno natančnost, zato bi bilo v idealnem primeru za zatemnilnik treba uporabiti namenski mikrokrmilnik.
Minimalna svetlost. LED-ji imajo vgrajen pretvornik moči, ki pač ne bo deloval, če nima dovolj energije. Zdi se, da so moje svetilke delovale dobro od 10-11%.
Tudi s to vrednostjo so se nekatere moje svetilke ob zagonu zavrnile. Tudi če pozneje povečajo svetlost, ostanejo temne. Zato, ko preidemo iz stanja OFF na nekaj pozitivne svetlosti, začnemo z obdobjem ogrevanja 5 ciklov, ko žarnicam damo polno moč. Nato nadaljujemo z želeno svetlostjo. Skoraj neopazno, a resnično pomaga.
Omrežna frekvenca 50/60 Hz. Morate vedeti, koliko čakati pred naslednjo ničlo. Precej preprosto - pogledamo samo časovno razliko med dvema zadnjima prekinitvama.
Postopna sprememba svetlosti. ESP32 je precej počasen, obdelava trivialne zahteve HTTP ali celo WebSocket traja 0,5 sekunde, zato ne pričakujte gladkega prehoda svetlosti, treba ga je nekako uvesti na ravni zatemnitve. Zato, ko od serijskih vrat prejme novo svetlost, le nastavi cilj in se mu sčasoma počasi približuje.
Rešitev
Tukaj je moja preprosta koda Arduino za zatemnilnik. Čaka na ukaz (en bajt z novo svetlostjo) iz serijskega vhoda, obravnava prekinitve Zero-Cross, nadzoruje TRIAC in obravnava vsa zgoraj navedena vprašanja.
4. korak: Krmilnik svetilk (ESP32)
Tukaj je shema povezave vseh komponent, ki jih imam. Plošča ESP32 se zelo razlikuje od tiste, ki jo uporabljam (Heltec), zato so izbrani zatiči videti nekoliko čudno, vendar bi vseeno moralo delovati v redu. V svojem projektu lahko uporabite različne zatiče.
Tukaj je koda, ki vse nadzoruje. Je precej naravnost.
Glavne značilnosti
Svetilka se poveže z WiFi, zažene strežnik WebSocket na vratih 81, čaka na ukaze.
Za zdaj sta podprta samo dva ukaza: "set_brightness" in "update_settings", ki sta … precej samoumevna.
Pridobivanje časa iz NTP. Nočem preveč komplicirati in shemi dodati uro v realnem času. Imamo dostop do interneta, kar pomeni, da lahko v realnem času dobimo iz katerega koli strežnika NTP in nato s sistemskimi časovniki spremljamo trenutni čas.
Alarm ob sončnem vzhodu. Nastavite lahko en alarm. Kaj pravzaprav počne: začne se z minimalno svetlostjo in postopoma doseže polno svetlost v 10 minutah. Nato ostane nekaj ur. Nato se postopoma izklopi v 60 sekundah.
Vsi zgornji parametri so nastavljivi.
Ptičje petje. DFPlayer mini se uporablja za predvajanje glasbe. Za to obstaja veliko vodnikov, v bistvu pa morate le priključiti kartico MicroSD, formatirano v FAT32, z eno datoteko, imenovano 0001.mp3. Ta datoteka ima lahko karkoli vam je všeč, v mojem primeru gre za 15 minut ptičjega petja (zankalo bo), zaradi česar je moje jutro neverjetno. Upoštevajte, da je na napajanju velik kondenzator in 1 kOhm upori na zaporedni liniji med ESP32 in DFplayer - izbirna sta, vendar pomagata zmanjšati hrup.
Shranjevanje nastavitev v EEPROM. Vse nastavitve so zapisane v EEPROM in naložene ob zagonu. Omogoča uporabo svetilke z vsaj alarmno funkcijo brez priključenega krmilnika.
Predvajanje nekaterih informacij na zaslon OLED. Moj Heltec ESP32 ima vgrajen zaslon SSD1306 128X64 I2C. Na njem so vse bistvene informacije. Vem, škatla izgleda grdo, pravkar sem 3D natisnil nekaj stvari in luknje in okna izrezal s svedrom. Hitro, umazano, vendar deluje!
5. korak: Nadzorna plošča
To je srce projekta. Raspberry Pi z izvirnim 7-palčnim zaslonom z nekaj Kivyjevega sprednjega dela.
Tu je celotna izvorna koda.
Lastnosti
Napisan v Pythonu. Rad imam Kivy, to je Pythonov okvir za uporabniške vmesnike. Zelo preprosto, a hkrati prilagodljivo in učinkovito (v notranjosti uporablja veliko kode C za visoko zmogljivost in strojno pospeševanje).
Vreme. Prikažite trenutno temperaturo in tlak zunaj. Če priključite senzor na daljavo - tudi notranjo temperaturo. Prav tako zahteva in analizira vremensko napoved za naslednjih 12 ur ter svetuje glede verjetnosti dežja.
Krmilnik SunriseLamp Druga plošča prikazuje nekaj osnovnih informacij o alarmu in vam omogoča prilagajanje svetlosti. Če odprete nastavitve, lahko konfigurirate kateri koli parameter svetilke, vključno z urnikom alarmov, največjo glasnostjo zvoka itd.
Ohranjevalnik zaslona. Po določenem obdobju nedejavnosti prikaže igro življenja na zaslonu.
Včasih je bilo več kot to, druge stvari pa so bile neuporabne.
Namestitev
Vse sem ročno namestil na Raspbian in zdaj lahko rečem: ne ponavljaj mojih napak. Uporabite KivyPie, vse ima vnaprej nameščeno.
Razen tega samo sledite navodilom za namestitev v shrambi kod.
6. korak: Uživajte
Osebno sem zadovoljen z napravo. Uporabljam ga kot glavno razsvetljavo doma čez dan in mi omogoča, da se zjutraj zbudim, neverjetno je.
Vem, da navodila niso zelo podrobna in opisna. Če kdo naredi isto stvar in ima težave - z veseljem vam bom pomagal!
Priporočena:
Svetilka za pivo (svetilka): 7 korakov
Svetilka za pločevinke za pivo (bakla): Ko sem uporabil vezje sončne vrtne svetilke za povečanje voltov za mini generator in za spreminjanje naglavne svetilke, sem se vprašal, ali bi lahko pivo uporabili kot reflektor za ustvarjanje svetilke z nizko močjo … Svetilka z nizko porabo energije bi lahko bila koristna
Svetilka za šablone - ena svetilka Več odtenkov: 5 korakov
Stencil Lamp - One Lamp Many Shades: Ta navodila vam bodo pokazala, kako narediti preprosto svetilko s preklopnimi senčili (njen senčnik)
Mumijasta svetilka - pametna svetilka z nadzorom WiFi: 5 korakov (s slikami)
Mumijasta svetilka - pametna svetilka z WiFi -krmiljenjem: Pred približno 230 tisoč leti se je človek naučil obvladovati ogenj, kar vodi do velike spremembe v njegovem življenjskem slogu, saj je ponoči začel delati tudi z uporabo svetlobe ognja. Lahko rečemo, da je to začetek notranje razsvetljave. Zdaj sem
LED kolesarska svetilka, ki jo je mogoče programirati s Pythonom: 4 koraki
LED kolesarska svetilka, ki jo je mogoče programirati s Pythonom: Ta vadnica vam bo pokazala, kako ustvariti nekaj kul LED luči za kolesa, ki jih je mogoče programirati s programom Python. Najprej se prepričajte, da imate vse zaloge: mikrokontroler Gemma M0 10k potenciometer 1 m NeoPixel LED trak 30 slikovnih pik/meter USB baterija
Spiralna svetilka (znana tudi kot namizna svetilka Loxodrome): 12 korakov (s slikami)
Spiralna svetilka (znana tudi kot namizna svetilka Loxodrome): Spiralna svetilka (znana tudi kot namizna svetilka Loxodrome) je projekt, ki sem ga začel leta 2015. Navdihnil ga je Loxodrome Sconce Paul Nylander. Moja prvotna zamisel je bila o motorizirani namizni svetilki, ki bi na steno projicirala tekoče vrtinčke svetlobe. Oblikoval sem in