Talaan ng mga Nilalaman:

Maliwanag na Kinokontrol na Sunrise Lamp: 6 na Hakbang
Maliwanag na Kinokontrol na Sunrise Lamp: 6 na Hakbang

Video: Maliwanag na Kinokontrol na Sunrise Lamp: 6 na Hakbang

Video: Maliwanag na Kinokontrol na Sunrise Lamp: 6 na Hakbang
Video: Встречи россиян с НЛО и инопланетянами 2024, Hulyo
Anonim
Maliwanag na Kinokontrol na Sunrise Lamp
Maliwanag na Kinokontrol na Sunrise Lamp
Maliwanag na Kinokontrol na Sunrise Lamp
Maliwanag na Kinokontrol na Sunrise Lamp

Nagising ka ba sa 7ish, ang karaniwang oras na kailangan mo upang magising para sa trabaho, at natagpuan ang iyong sarili sa kadiliman? Ang taglamig ay isang kakila-kilabot na oras, tama? Kailangan mong magising sa kalagitnaan ng gabi (kung hindi man bakit napakadilim?), Hinawi ang iyong sarili sa kama at ipadala ang iyong semiconscious na katawan sa shower.

Nilalayon ng proyektong ito na malutas ang isa sa mga isyu - kadiliman sa umaga.

Mayroong maraming mga murang sunrise lamp sa paligid, ngunit lahat sila ay mababa ang lakas at maputla. Ang mga ito ay higit na tulad ng isang night lamp, na kung saan ay dapat na gawing mas matulog ka. Hindi ang gusto ko talaga.

Sa parehong oras, ang pag-on lang ng maliwanag na ilaw ay magising ka agad, ngunit hindi sapat na banayad. Ang gusto ko ay isang kumbinasyon ng parehong mga diskarte - mag-ilaw na may isang mababang ningning, dahan-dahang makakuha ng buong bilis, pagkatapos ay isang tunay na alarma ang pumapatay at hindi ka na masyadong inaantok. Magdagdag tayo ng kaunting isang kanta ng ibon dito, at gisingin ka sa isang langit tuwing umaga!

Hakbang 1: Array ng Lampara

Lampara ng Array
Lampara ng Array
Lampara ng Array
Lampara ng Array

Una sa lahat, kailangan namin ng ilawan mismo. Mayroon akong isang malaking malaking silid na may puting pader at kisame, kaya't nagpunta ako para sa 7 mga lampara ng GU10 LED, isang bagay tulad ng 6W bawat isa, higit sa 40W ng purong kapangyarihan! Sapat na iyon upang iparamdam sa iyo na parang araw na. Gayundin maaari itong magamit bilang isang karaniwang pag-iilaw ng silid sa araw.

Hindi mahalaga kung paano mo ito tipunin, kung aling mga lampara ang ginagamit mo sa kung aling mga socket. Lahat ng bagay na mahalaga - ang mga ito ay dapat na hindi masusunog na mga ilawan!

Sa aking kaso, mayroon akong isang kahoy na tabla na may 7 mga socket na GU10 na nakalakip, lahat ay magkakaugnay. Ilalagay ko ito sa isang plastic box mamaya.

Hakbang 2: Dimming Theory

Dimming Theory
Dimming Theory

Sa teorya walang pagkakaiba sa pagitan ng teorya at kasanayan. Sa pagsasanay mayroong.

Ang pagkontrol ng isang dimmer mula sa ESP32 / Arduino ay lilitaw na hindi kasing simple ng naisip ko. Nakuha ko ang isa sa mga modyul ng RobotDyn AC Light Dimmer. Ang nagmumungkahi ay nagmumungkahi ng isang silid-aklatan para doon. Hindi ito gumagana sa ESP32 (at talagang mahirap iakma, sapagkat gumagamit ito ng maraming mababang antas na pag-access sa tukoy na antas na ATMega), isang uri ng mga gawa sa Arduino Nano, na nagbibigay ng isang kahila-hilakbot na kislap sa mababang kalagitnaan ng ningning. Iyon ang dahilan kung bakit ginugol ko ang ilang oras sa pagsisiyasat kung paano ito gumagana at gumagawa ng sarili kong paraan.

Medyo teorya

Ang napiling module ng dimmer ay gumagamit ng isang tanyag na TRIAC: BTA16. Maraming mga artikulo tungkol dito. Susubukan kong ibuod ito rito.

Ang TRIAC ay isang module na maaaring magpadala ng isang positibong input o negatibong boltahe sa output, o maaaring hadlangan ito. Bilang default hinaharangan nito ang lahat. Upang mabuksan ito, dapat naming bigyan ito ng isang mataas na signal sa input ng gate para sa 100 sa amin. Pagkatapos ito ay mananatiling bukas hanggang sa kasalukuyang bumaba sa zero, na nangyayari kapag binago ng isang boltahe ng pag-input ang pag-sign, tumatawid sa isang boltahe ng zero. Pagkatapos sa sumusunod na pag-ikot dapat kaming gumawa ng isa pang 100 us na pulso at iba pa. Sa pamamagitan ng pagpili kung kailan magbigay ng isang pulso, kinokontrol namin ang ilaw: gawin ito sa pinakadulo simula, at ito ay malapit sa 100% paghahatid ng kuryente. Gawin ito sa paglaon, at ito ay madilim. Suriin ang diagram sa itaas, na nagpapaliwanag nito.

Upang makabuo ng mga pulso sa parehong punto ng pag-ikot, kailangan nating malaman nang eksakto kung kailan ito nagsisimula. Iyon ang dahilan kung bakit ang dimmer module ay mayroong isang Zero-Cross detector na nakapaloob. Tinaasan lang nito ang isang senyas (na mahuhuli namin bilang isang nakakagambala na hardware sa Arduino) sa tuwing ang boltahe ay tumatawid sa zero.

Hakbang 3: Dimming na Kasanayan

Dimming na Kasanayan
Dimming na Kasanayan

Yeah, ganyan ka gisingin, kung ang iyong ilawan ay walang dimming at inilalagay ang lahat ng 40W ng kapangyarihan sa iyong mga inaantok na mata.

Mga karaniwang isyu

Mayroong maraming mga isyu na kailangan nating tugunan.

Kumikislap.

Ang tiyempo ng microcontroller ay dapat na talagang tumpak sa pag-on at pag-off ng output ng gate. Nagmumungkahi ang library ng RobotDyn, mayroong isang timer na nakakagambala bawat 100us, at binabago ang antas ng gate sa timer lamang. Nangangahulugan ito na maaari itong maging +/- 50 microseconds mula sa pinakamainam na halaga. Nagbibigay ito ng isang mahusay na resulta sa isang mataas na ningning, ngunit maraming mga kurap sa mababang kaliwanagan. Gayundin kung ang microcontroller ay gumagawa ng maraming mga bagay-bagay, binabawasan nito ang katumpakan ng oras, kaya perpekto na ang isang nakatuong microcontroller ay dapat gamitin para sa dimmer.

Minimal na ilaw. Ang mga LEDs ay may built-in na power converter, na tatanggi lamang na gumana na walang sapat na lakas. Ang aking mga lampara ay lumitaw na gumagana nang maayos simula sa 10-11%.

Kahit sa halagang ito, ang ilan sa aking mga lampara ay tumangging mag-ilaw sa pagsisimula. Kahit na pagdaragdag ng liwanag sa paglaon, mananatili silang madilim. Iyon ang dahilan kung bakit, kapag nagpunta kami mula sa OFF state sa ilang positibong ningning, nagsisimula kami sa isang tag-init na 5 yugto, kapag binibigyan namin ng buong lakas ang mga lampara. Pagkatapos ay nagpatuloy kami sa ninanais na ningning. Ito ay halos hindi napapansin, ngunit talagang nakakatulong.

50/60 Hz dalas ng mains. Kailangan mong malaman kung magkano ang maghihintay bago ang susunod na zero. Ito ay medyo simple - tinitingnan lamang namin ang pagkakaiba ng oras sa pagitan ng dalawang huling pagkagambala.

Unti-unting pagbabago ng liwanag. Ang ESP32 ay medyo mabagal, tumatagal ng 0.5 segundo upang maproseso ang isang walang halaga na HTTP o kahit na kahilingan sa WebSocket, kaya huwag asahan ang isang maayos na paglipat ng ilaw, kailangan itong ipataw kahit papaano sa dimmer level. Iyon ang dahilan kung bakit, kapag nakatanggap ito ng isang bagong ningning mula sa isang serial port, itinatakda lamang nito ang target, at pagkatapos ay dahan-dahang lumalapit sa paglipas ng panahon.

Ang solusyon

Narito ang aking simpleng Arduino code para sa dimmer. Naghihintay ito para sa isang utos (isang byte na may bagong ningning) mula sa serial input, humahawak sa mga pagkagambala ng Zero-Cross, kinokontrol ang TRIAC, hinahawakan ang lahat ng mga isyu sa itaas.

Hakbang 4: Lamp Controller (ESP32)

Lamp Controller (ESP32)
Lamp Controller (ESP32)
Lamp Controller (ESP32)
Lamp Controller (ESP32)

Narito ang iskema ng koneksyon ng lahat ng mga sangkap na mayroon ako. Ang board ng ESP32 ay ibang-iba sa ginagamit ko (Heltec), kaya't ang mga pin na pinili ay mukhang kakaiba, ngunit dapat pa rin itong gumana nang maayos. Huwag mag-atubiling gumamit ng iba't ibang mga pin sa iyong proyekto.

Narito ang code na pagkontrol sa lahat. Medyo deretso ito.

Ang pangunahing tampok

Maaaring makontrol. Ang lampara ay kumokonekta sa WiFi, nagsisimula sa isang WebSocket server sa port 81, naghihintay para sa mga utos. Ang format ng Command ay

Dalawang utos lamang ang sinusuportahan sa ngayon: "set_brightness" at "update_settings", na… medyo naglalarawan sa sarili.

Pagkuha ng oras mula sa NTP. Ayokong labis na komplikado ang mga bagay at magdagdag ng isang real time na orasan sa iskema. Mayroon kaming access sa Internet, na nangangahulugang maaari naming makuha ang real time mula sa ilang NTP server at pagkatapos ay subaybayan ang kasalukuyang oras gamit ang mga timer ng system.

Sunrise Alarm. Maaari kang magtakda ng isang alarma. Ano talaga ang ginagawa nito: nagsisimula sa kaunting ningning at unti-unting napupunta sa buong ningning sa loob ng 10 minuto. Pagkatapos ay mananatili ito sa loob ng ilang oras. Pagkatapos ay unti-unting pumapatay ito ng higit sa 60 segundo.

Ang lahat ng mga parameter sa itaas ay mai-configure.

Mga ibong umaawit. Ginagamit ang DFPlayer mini upang maglaro ng musika. Maraming mga gabay para dito, ngunit mahalagang kailangan mo lamang i-plug ang isang MicroSD card, na nai-format sa FAT32, na may isang file na tinawag na 0001.mp3. Ang file na ito ay maaaring magkaroon ng anumang nais mo, sa aking kaso ito ay 15 minuto ng mga ibong kumakanta (ito ay maiikot), at ginagawang kamangha-mangha ang aking umaga. Tandaan na mayroong isang malaking kapasitor sa lakas, at 1 kOhm resistors sa serial line sa pagitan ng ESP32 at DFplayer - opsyonal sila, ngunit makakatulong upang mabawasan ang ingay.

Ang pagtatago ng mga setting sa EEPROM. Ang lahat ng mga setting ay nakasulat sa EEPROM at na-load sa simula. Ginagawa nitong posible na gamitin ang lampara na may hindi bababa sa isang tampok na alarma nang walang konektor na konektado.

Nagbibigay ng ilang impormasyon sa OLED screen. Ang aking Heltec ESP32 ay may built-in na SSD1306 128X64 I2C screen. Ang lahat ng mahahalagang impormasyon ay naibigay dito. Alam ko, ang kahon ay mukhang pangit, na-print ko lamang ang 3D na ilang mga bagay at pinutol ang mga butas at bintana na may drill. Mabilis, marumi, ngunit gumagana ito!

Hakbang 5: Control Panel

Control Panel
Control Panel
Control Panel
Control Panel

Iyon ang puso ng proyekto. Isang Raspberry Pi na may orihinal na 7 display, na nagpapatakbo ng ilang Kivy front-end.

Narito ang buong code ng mapagkukunan.

Ang mga tampok

Nakasulat sa Python. Gustung-gusto ko si Kivy, ito ay isang balangkas ng Python para sa mga interface ng gumagamit. Napakasimple, ngunit nababaluktot at mahusay (gumagamit ng maraming C code sa loob para sa mataas na pagganap at pagpabilis ng hardware).

Panahon. Ipakita ang kasalukuyang temperatura at presyon sa labas. Kung kumonekta ka ng isang remote sensor - sa loob ng temperatura din. Humihiling din ito at pinag-aaralan ang forecast ng panahon para sa mga sumusunod na 12 oras at nagbibigay ng isang payo tungkol sa isang posibilidad ng ulan.

Controller ng SunriseLamp. Ang isa pang panel ay nagpapakita ng ilang pangunahing impormasyon tungkol sa alarma at pinapayagan kang ayusin ang ningning. Kung pupunta ka sa mga setting, maaari mong i-configure ang anumang parameter ng lampara, kasama ang iskedyul ng alarma, dami ng maximum na audio at iba pa.

Screensaver. Renders Game of Life sa screen pagkatapos ng ilang panahon ng kawalan ng aktibidad.

Dati ay may higit pa doon, ngunit ang iba pang mga bagay ay tila walang silbi.

Pag-install

Manu-manong na-install ko ang lahat sa Raspbian, at ngayon ay masasabi: huwag ulitin ang aking mga pagkakamali. Gamitin ang KivyPie, mayroon nang pre-install na lahat.

Bukod sa na, sundin lamang ang gabay sa pag-install sa code repository.

Hakbang 6: Mag-enjoy

Personal na masaya ako sa aparato. Ginagamit ko ito bilang pangunahing ilaw sa bahay sa isang araw, at hinahayaan akong gumising sa umaga, kamangha-mangha.

Alam kong ang mga tagubilin ay hindi masyadong butil at mapaglaraw. Kung ang isang tao ay gumawa ng parehong bagay at may mga isyu - Masisiyahan akong tumulong!

Inirerekumendang: