Obsah:

Jasne ovládateľná lampa východu slnka: 6 krokov
Jasne ovládateľná lampa východu slnka: 6 krokov

Video: Jasne ovládateľná lampa východu slnka: 6 krokov

Video: Jasne ovládateľná lampa východu slnka: 6 krokov
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Júl
Anonim
Jasne ovládateľná lampa východu slnka
Jasne ovládateľná lampa východu slnka
Jasne ovládateľná lampa východu slnka
Jasne ovládateľná lampa východu slnka

Zobudili ste sa niekedy o siedmej, zvyčajnom čase, keď sa potrebujete zobudiť do práce, a ocitli ste sa v tme? Zima je hrozné obdobie, však? Musíte sa zobudiť uprostred noci (inak prečo je taká tma?), Strhnúť sa z postele a poslať svoje polovedomé telo do sprchy.

Cieľom tohto projektu je vyriešiť jeden z problémov - rannú tmu.

V okolí je veľa lacných svietidiel, ale všetky majú nízky výkon a sú bledé. Sú skôr ako nočná lampa, vďaka ktorej sa vám bude lepšie spať. Vôbec nie to, čo chcem.

Zároveň zapnutie jasného svetla vás okamžite prebudí, ale nie dostatočne jemne. Čo chcem, je kombinácia oboch prístupov - rozsvietiť s nízkym jasom, pomaly sa rozbehnúť na plné obrátky, potom zaznie skutočný alarm a už nie si taký ospalý. Pridajte k tomu trochu vtáčej piesne a každé ráno sa zobudíte v nebi!

Krok 1: Pole žiaroviek

Pole žiaroviek
Pole žiaroviek
Pole žiaroviek
Pole žiaroviek

V prvom rade potrebujeme samotnú lampu. Mám dosť veľkú miestnosť s bielymi stenami a stropom, a tak som kúpil 7 LED žiaroviek GU10, každá zhruba 6 W, viac ako 40 W čistého výkonu! To stačí na to, aby ste mali pocit, že je už deň. Môže sa tiež použiť ako bežné osvetlenie miestnosti počas dňa.

Nezáleží na tom, ako ho zostavíte, aké žiarovky použijete a s akými zásuvkami. Všetko, na čom záleží - musia to byť stmievateľné žiarovky!

V mojom prípade mám pripevnenú drevenú dosku so 7 zásuvkami GU10, všetky navzájom prepojené. Neskôr to dám do plastového boxu.

Krok 2: Teória stmievania

Teória stmievania
Teória stmievania

Teoreticky nie je rozdiel medzi teóriou a praxou. V praxi existuje.

Ovládanie stmievača z ESP32/Arduino sa nezdalo byť také jednoduché, ako som si predstavoval. Dostal som jeden z modulov RobotDyn AC Light Dimmer. Výrobca na to navrhuje knižnicu. Nefunguje to na ESP32 (a je naozaj ťažké sa prispôsobiť, pretože používa veľa nízkoúrovňových prístupov k registru ATMega špecifických pre ATMega), funguje to na Arduino Nano, čo spôsobuje hrozné blikanie pri nízkom a strednom jase. Preto som strávil nejaký čas skúmaním, ako to všetko funguje, a vytváraním vlastnej cesty.

Trochu teórie

Zvolený modul stmievača používa veľmi populárny TRIAC: BTA16. Je o tom veľa článkov. Skúsim to tu zhrnúť.

TRIAC je modul, ktorý môže na výstup prenášať vstupné kladné alebo záporné napätie alebo ho môže blokovať. Štandardne blokuje všetko. Aby sme ho otvorili, mali by sme mu dať vysoký signál na vstupe brány pre 100 us. Potom zostane otvorený, kým prúd neklesne na nulu, čo sa stane, keď vstupné napätie zmení znamienko a prekročí nulové napätie. Potom v nasledujúcom cykle by sme mali urobiť ďalších 100 pulzov a tak ďalej. Voľbou, kedy dať pulz, ovládame jas: urobte to úplne na začiatku a bude to blízko 100% prenosu energie. Urobte to neskôr a bude to tlmené. Pozrite sa na diagram vyššie a vysvetlite ho.

Aby sme mohli generovať impulzy v rovnakom bode cyklu, musíme presne vedieť, kedy sa začína. Preto má modul stmievača zabudovaný detektor Zero-Cross. Jednoducho zvyšuje signál (ktorý zachytíme ako hardvérové prerušenie v Arduine) zakaždým, keď napätie prekročí nulu.

Krok 3: Nácvik stmievania

Nácvik stmievania
Nácvik stmievania

Áno, takto by ste sa zobudili, ak vaša lampa nemá žiadne stmievanie a vloží všetkých 40 W energie do vašich ospalých očí.

Bežné problémy

Existuje niekoľko problémov, ktoré musíme vyriešiť.

Bliká.

Načasovanie mikrokontroléra musí byť pri zapínaní a vypínaní výstupu brány skutočne presné. Knižnica, ktorú RobotDyn navrhuje, má každých 100us prerušenie časovača a zmení úroveň brány iba na časovači. To znamená, že môže byť +/- 50 mikrosekúnd od optimálnej hodnoty. Poskytuje dobrý výsledok pri vysokom jase, ale pri malom jase veľa bliká. Tiež, ak mikrokontrolér robí veľa vecí, znižuje časovú presnosť, takže v ideálnom prípade by mal byť na stmievač použitý špecializovaný mikrokontrolér.

Minimálny jas. LED diódy majú vstavaný menič napájania, ktorý pri nedostatočnom výkone jednoducho odmietne fungovať. Zdá sa, že moje žiarovky fungujú dobre od 10 do 11%.

Aj pri tejto hodnote sa niektoré moje žiarovky odmietli rozsvietiť pri štarte. Aj keď neskôr zvýšia jas, zostanú tmavé. Preto keď prejdeme zo stavu VYPNUTÉ do pozitívneho jasu, začneme zahrievacím obdobím 5 cyklov, kedy žiarovkám dáme plný výkon. Potom pokračujeme s požadovaným jasom. Je to takmer nepozorovateľné, ale skutočne to pomáha.

Sieťová frekvencia 50/60 Hz. Musíte vedieť, koľko musíte čakať pred ďalšou nulou. Je to celkom jednoduché - stačí sa pozrieť na časový rozdiel medzi dvoma poslednými prerušeniami.

Postupná zmena jasu. ESP32 je dosť pomalý. Spracovanie triviálnej požiadavky HTTP alebo dokonca WebSocket trvá 0,5 sekundy, takže nečakajte plynulý prechod jasu, ale musí byť implementovaný nejako na úrovni stmievača. Preto keď dostane nový jas zo sériového portu, nastaví cieľ a potom sa k nemu v priebehu času pomaly blíži.

Riešenie

Tu je môj jednoduchý kód Arduino pre stmievač. Čaká na príkaz (jeden bajt s novým jasom) zo sériového vstupu, zvláda prerušenia Zero-Cross, riadi TRIAC a rieši všetky vyššie uvedené problémy.

Krok 4: Ovládač žiarovky (ESP32)

Ovládač žiarovky (ESP32)
Ovládač žiarovky (ESP32)
Ovládač žiarovky (ESP32)
Ovládač žiarovky (ESP32)

Tu je schéma pripojenia všetkých komponentov, ktoré mám. Doska ESP32 sa veľmi líši od toho, čo používam (Heltec), takže vybrané kolíky vyzerajú trochu divne, ale stále by mali fungovať dobre. Nebojte sa vo svojom projekte použiť rôzne piny.

Tu je kód, ktorý to všetko ovláda. Je to celkom priamočiare.

Hlavné vlastnosti

Ovládateľné. Kontrolka sa pripája k WiFi, spustí server WebSocket na porte 81 a čaká na príkazy. Formát príkazu je

Zatiaľ sú podporované iba dva príkazy: „set_brightness“a „update_settings“, ktoré… sú dosť popisné.

Získanie času z NTP. Nechcem veci príliš komplikovať a do schémy pridať hodiny v reálnom čase. Máme prístup na internet, čo znamená, že môžeme získať skutočný čas z nejakého servera NTP a potom sledovať aktuálny čas pomocou systémových časovačov.

Alarm východu slnka. Môžete nastaviť jeden budík. Čo to vlastne robí: začína minimálnym jasom a postupne prechádza na plný jas počas 10 minút. Potom zostane niekoľko hodín zapnutý. Potom sa na 60 sekúnd postupne vypne.

Všetky vyššie uvedené parametre sú konfigurovateľné.

Spev vtákov. Program DFPlayer mini slúži na prehrávanie hudby. Existuje veľa sprievodcov, ale v zásade stačí vložiť kartu MicroSD naformátovanú do systému FAT32 do jedného súboru s názvom 0001.mp3. Tento súbor môže mať čokoľvek, čo sa vám páči, v mojom prípade je to 15 minút spevu vtákov (bude to v slučke) a moje ráno je úžasné. Všimnite si toho, že na výkone je obrovský kondenzátor a na sériovej linke medzi 1 kOhm odpormi. ESP32 a DFplayer - sú voliteľné, ale pomáhajú znižovať hluk.

Uloženie nastavení do EEPROM. Všetky nastavenia sú zapísané do EEPROM a načítané pri štarte. Umožňuje používať lampu aspoň s funkciou alarmu bez pripojeného ovládača.

Vykreslenie niektorých informácií na obrazovku OLED. Môj Heltec ESP32 má vstavanú obrazovku SSD1306 128X64 I2C. Sú na ňom vykreslené všetky podstatné informácie. Viem, krabica vyzerá škaredo, práve som 3D tlačil nejaké veci a vyrezal otvory a okná vŕtačkou. Rýchle, špinavé, ale funguje to!

Krok 5: Ovládací panel

Ovládací panel
Ovládací panel
Ovládací panel
Ovládací panel

To je jadro projektu. Raspberry Pi s originálnym 7-palcovým displejom, poháňané niektorým predným rozhraním Kivy.

Tu je celý zdrojový kód.

Vlastnosti

Napísané v Pythone. Milujem Kivy, je to rámec Pythonu pre používateľské rozhrania. Veľmi jednoduchý, ale flexibilný a efektívny (používa veľa kódu C vo vnútri na vysoký výkon a hardvérovú akceleráciu).

Počasie. Ukážte aktuálnu teplotu a tlak vonku. Ak pripojíte aj diaľkový senzor - vnútorná teplota. Tiež požaduje a analyzuje predpoveď počasia na nasledujúcich 12 hodín a poskytuje rady o pravdepodobnosti dažďa.

Ovládač SunriseLamp. Ďalší panel zobrazuje niektoré základné informácie o alarme a umožňuje vám nastaviť jas. Ak prejdete na nastavenia, môžete nakonfigurovať ľubovoľný parameter žiarovky vrátane plánu budíkov, maximálnej hlasitosti zvuku atď.

Šetrič obrazovky. Vykresľuje hru Život na obrazovke po určitom období nečinnosti.

Kedysi toho bolo viac, ale ostatné veci sa zdali byť zbytočné.

Inštalácia

Všetko som nainštaloval ručne na Raspbian a teraz môžem povedať: neopakujte moje chyby. Použite KivyPie, ktorý má všetko predinštalované.

Okrem toho sa riaďte sprievodcom inštaláciou v úložisku kódov.

Krok 6: Užite si to

Osobne som so zariadením spokojný. Cez deň ho používam ako hlavné osvetlenie doma a ráno ma zobudí, je to úžasné.

Viem, že pokyny nie sú veľmi podrobné a popisné. Ak niekto robí to isté a má problémy - rád pomôžem!

Odporúča: