Turinys:

Ryškiai valdoma saulėtekio lempa: 6 žingsniai
Ryškiai valdoma saulėtekio lempa: 6 žingsniai

Video: Ryškiai valdoma saulėtekio lempa: 6 žingsniai

Video: Ryškiai valdoma saulėtekio lempa: 6 žingsniai
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Liepa
Anonim
Ryški reguliuojama saulėtekio lempa
Ryški reguliuojama saulėtekio lempa
Ryški reguliuojama saulėtekio lempa
Ryški reguliuojama saulėtekio lempa

Ar kada nors pabudote 7 -erių, įprastu laiku, kai reikia pabusti darbui, ir atsidūrėte tamsoje? Žiema yra baisus laikas, tiesa? Jūs turite pabusti vidury nakties (kitaip kodėl taip tamsu?), Nuplėšti nuo lovos ir nusiųsti savo pusiau sąmoningą kūną į dušą.

Šiuo projektu siekiama išspręsti vieną iš problemų - ryto tamsą.

Aplink yra daug pigių saulėtekio lempų, tačiau jos visos yra mažos galios ir blyškios. Jie labiau primena naktinę lempą, kuri turėtų padėti jums geriau miegoti. Visai ne tai, ko noriu.

Tuo pačiu metu, tik įjungus ryškią šviesą, jūs iškart pažadinsite, bet ne pakankamai švelniai. Aš noriu abiejų požiūrių derinio - užsidegti mažu ryškumu, lėtai įsibėgėti visu greičiu, tada pasigirsta tikras žadintuvas ir tu nebe toks mieguistas. Pridėkime šiek tiek paukščio dainos ir kiekvieną rytą atsibusite danguje!

1 žingsnis: lempos masyvas

Lempos masyvas
Lempos masyvas
Lempos masyvas
Lempos masyvas

Visų pirma, mums reikia pačios lempos. Turiu gana didelį kambarį su baltomis sienomis ir lubomis, todėl pasirinkau 7 GU10 LED lempas, maždaug 6W, daugiau nei 40W grynos galios! To užtenka, kad jaustumėtės kaip diena. Jis taip pat gali būti naudojamas kaip įprastas kambario apšvietimas dienos metu.

Visiškai nesvarbu, kaip jį surenkate, kokias lempas naudojate su kokiais lizdais. Viskas, kas svarbu - tai turi būti pritemdomos lempos!

Mano atveju turiu medinę lentą su 7 GU10 lizdais, kurie visi yra sujungti. Vėliau įdėsiu į plastikinę dėžę.

2 žingsnis: pritemdymo teorija

Tamsinimo teorija
Tamsinimo teorija

Teoriškai nėra skirtumo tarp teorijos ir praktikos. Praktiškai yra.

Reguliuoti reguliatorių iš ESP32/Arduino pasirodė ne taip paprasta, kaip įsivaizdavau. Gavau vieną iš „RobotDyn AC Light Dimmer“modulių. Tam gamintojas siūlo biblioteką. Jis neveikia su ESP32 (ir tai tikrai sunku pritaikyti, nes jame naudojama daug žemo lygio ATMega registro prieigos), savotiškai veikia „Arduino Nano“, sukeldamas siaubingą mirgėjimą esant žemam ir vidutiniam ryškumui. Štai kodėl aš praleidau šiek tiek laiko tyrinėdamas, kaip visa tai veikia, ir kuriu savo kelią.

Truputis teorijos

Pasirinktas pritemdymo modulis naudoja labai populiarų TRIAC: BTA16. Yra daug straipsnių apie tai. Pabandysiu čia apibendrinti.

TRIAC yra modulis, galintis perduoti teigiamą arba neigiamą įvesties įtampą išėjimui arba blokuoti. Pagal numatytuosius nustatymus jis viską blokuoja. Norėdami jį atidaryti, turėtume duoti didelį signalą vartų įėjimui 100 mums. Tada jis liks atidarytas, kol srovė nukris iki nulio, o tai atsitinka, kai įėjimo įtampa pakeičia ženklą ir kerta nulinę įtampą. Tada kitą ciklą turėtume atlikti dar 100 us impulsą ir pan. Rinkdamiesi, kada duoti impulsą, mes valdome ryškumą: darykite tai pačioje pradžioje ir jis bus artimas 100% galios perdavimui. Padarykite tai vėliau ir jis bus pritemdytas. Pažvelkite į aukščiau pateiktą schemą ir paaiškinkite.

Norėdami generuoti impulsus tame pačiame ciklo taške, turime tiksliai žinoti, kada jis prasideda. Štai kodėl pritemdymo modulyje yra įmontuotas „Zero-Cross“detektorius. Jis tik padidina signalą (kurį mes užfiksuosime kaip aparatūros pertraukimą „Arduino“) kiekvieną kartą, kai įtampa kerta nulį.

3 žingsnis: pritemdykite

Tamsinimo praktika
Tamsinimo praktika

Taip, taip ir atsibustum, jei tavo lempa netemps ir į mieguistas akis atiduos visą 40 W galią.

Dažnos problemos

Turime išspręsti daugybę problemų.

Mirksi.

Mikrovaldiklio laikas turi būti tikrai tikslus įjungiant ir išjungiant vartų išvestį. Biblioteka „RobotDyn“siūlo, kad laikmatis būtų nutrauktas kas 100 kartų, o vartų lygis keičiamas tik laikmačiu. Tai reiškia, kad jis gali būti +/- 50 mikrosekundžių nuo optimalios vertės. Tai duoda gerą rezultatą esant dideliam ryškumui, tačiau labai mirksi esant mažam ryškumui. Be to, jei mikrovaldiklis atlieka daug darbų, jis sumažina laiko tikslumą, todėl idealiu atveju reguliatoriui reikėtų naudoti specialų mikrovaldiklį.

Minimalus ryškumas. Šviesos diodai turi įmontuotą galios keitiklį, kuris tiesiog atsisako dirbti neturėdamas pakankamai energijos. Mano lempos veikė gerai, pradedant nuo 10–11%.

Net ir turėdami šią vertę, kai kurios mano lempos atsisakė užsidegti. Net vėliau padidinus ryškumą, jie lieka tamsūs. Štai kodėl, kai pereiname iš išjungtos būsenos į tam tikrą teigiamą ryškumą, pradedame nuo 5 ciklų įšilimo laikotarpio, kai lempoms suteikiame visą galią. Tada mes tęsiame norimą ryškumą. Tai beveik nepastebima, bet tikrai padeda.

50/60 Hz tinklo dažnis. Turite žinoti, kiek palaukti iki kito nulio. Tai gana paprasta - mes tik žiūrime į laiko skirtumą tarp dviejų paskutinių pertraukų.

Palaipsniui keičiasi ryškumas. ESP32 yra gana lėtas, triviali HTTP ar net „WebSocket“užklausa apdorojama per 0,5 sek., Todėl nesitikėkite sklandaus ryškumo perėjimo, jis turi būti kažkaip įgyvendintas šviesesnio lygio. Štai kodėl, gavęs naują ryškumą iš nuoseklaus prievado, jis tiesiog nustato tikslą ir laikui bėgant lėtai artėja prie jo.

Sprendimas

Čia yra mano paprastas „Arduino“šviesos diodo kodas. Jis laukia komandos (vienas baitas su nauju ryškumu) iš nuosekliosios įvesties, tvarko „Zero-Cross“pertraukas, valdo TRIAC ir sprendžia visas aukščiau išvardytas problemas.

4 žingsnis: lempos valdiklis (ESP32)

Lempos valdiklis (ESP32)
Lempos valdiklis (ESP32)
Lempos valdiklis (ESP32)
Lempos valdiklis (ESP32)

Čia yra visų turimų komponentų prijungimo schema. ESP32 plokštė labai skiriasi nuo to, ką naudoju („Heltec“), todėl pasirinkti smeigtukai atrodo šiek tiek keistai, tačiau vis tiek turėtų gerai veikti. Nesivaržykite savo projekte naudoti skirtingus kaiščius.

Čia yra kodas, valdantis viską. Tai gana tiesiai.

Pagrindinės savybės

Valdomas. Lempa jungiasi prie „WiFi“, paleidžia „WebSocket“serverį 81 prievade, laukia komandų. Komandos formatas yra

Šiuo metu palaikomos tik dvi komandos: „set_brightness“ir „update_settings“, kurios yra … gana save apibūdinančios.

Laiko gavimas iš NTP. Nenoriu per daug apsunkinti dalykų ir prie schemos pridėti realaus laiko laikrodžio. Mes turime prieigą prie interneto, o tai reiškia, kad galime gauti realų laiką iš kokio nors NTP serverio ir tada sekti dabartinį laiką naudodami sistemos laikmačius.

Saulėtekio žadintuvas. Galite nustatyti vieną žadintuvą. Ką jis iš tikrųjų daro: prasideda nuo minimalaus ryškumo ir palaipsniui pasiekia visą ryškumą per 10 minučių. Tada jis išlieka porą valandų. Tada jis palaipsniui išsijungia per 60 sekundžių.

Visi aukščiau nurodyti parametrai yra konfigūruojami.

Paukščiai dainuoja. „DFPlayer mini“naudojamas muzikai groti. Yra daug vadovų, tačiau iš esmės jums tereikia prijungti „MicroSD“kortelę, suformatuotą į FAT32, su vienu failu 0001.mp3. Šis failas gali turėti viską, kas jums patinka, mano atveju tai yra 15 minučių paukščių dainavimo (jis bus pakartotas), ir tai daro mano rytą nuostabų. Atkreipkite dėmesį, kad maitinimo šaltinyje yra didžiulis kondensatorius ir 1 kOhm rezistoriai serijinėje linijoje tarp ESP32 ir DFplayer - jie neprivalomi, tačiau padeda sumažinti triukšmą.

Nustatymų išsaugojimas EEPROM. Visi nustatymai įrašomi į EEPROM ir įkeliami paleidžiant. Tai leidžia naudoti lempą su bent signalizacijos funkcija neprijungus valdiklio.

Kai kurios informacijos pateikimas OLED ekrane. Mano „Heltec ESP32“turi įmontuotą SSD1306 128X64 I2C ekraną. Jame pateikiama visa esminė informacija. Žinau, dėžutė atrodo negraži, aš ką tik 3D atspausdinau kai ką ir išpjoviau skyles ir langus grąžtu. Greitas, purvinas, bet veikia!

5 žingsnis: Valdymo skydas

Kontrolės skydelis
Kontrolės skydelis
Kontrolės skydelis
Kontrolės skydelis

Tai yra projekto esmė. „Raspberry Pi“su originaliu 7 colių ekranu, kuriame yra „Kivy“priekinė dalis.

Čia yra visas šaltinio kodas.

Savybės

Parašyta „Python“. Man patinka „Kivy“, tai yra „Python“sistema, skirta vartotojo sąsajoms. Labai paprastas, tačiau lankstus ir efektyvus (naudoja daug C kodo, kad būtų užtikrintas didelis našumas ir pagreitinta aparatinė įranga).

Oras. Parodykite esamą temperatūrą ir slėgį lauke. Jei prijungsite nuotolinį jutiklį - taip pat ir vidaus temperatūrą. Jis taip pat prašo ir analizuoja orų prognozę ateinančioms 12 valandų ir pataria apie lietaus tikimybę.

„SunriseLamp“valdiklis. Kitame skydelyje pateikiama pagrindinė informacija apie aliarmą ir galima reguliuoti ryškumą. Jei einate į nustatymus, galite sukonfigūruoti bet kurį lempos parametrą, įskaitant žadintuvo tvarkaraštį, maksimalų garso garsumą ir pan.

Ekrano užsklanda. Pardavėjų gyvenimo žaidimas ekrane po tam tikro neveiklumo laikotarpio.

Anksčiau buvo daugiau nei tai, bet kiti dalykai atrodė nenaudingi.

Montavimas

Viską įdiegiau rankiniu būdu „Raspbian“ir dabar galiu pasakyti: nekartokite savo klaidų. Naudokite „KivyPie“, jame yra viskas iš anksto įdiegta.

Be to, tiesiog sekite diegimo vadovą kodų saugykloje.

6 žingsnis: Mėgaukitės

Asmeniškai esu patenkintas įrenginiu. Aš naudoju jį kaip pagrindinį apšvietimą namuose per dieną, ir tai leidžia man pabusti ryte, tai nuostabu.

Žinau, kad instrukcijos nėra labai detalios ir aprašomos. Jei kas nors daro tą patį ir turi problemų - mielai padėsiu!

Rekomenduojamas: