Obsah:

Jasně ovladatelná lampa východu slunce: 6 kroků
Jasně ovladatelná lampa východu slunce: 6 kroků

Video: Jasně ovladatelná lampa východu slunce: 6 kroků

Video: Jasně ovladatelná lampa východu slunce: 6 kroků
Video: S čerty nejsou žerty 1984 remastrovaná verze celý film 2024, Červenec
Anonim
Jasně ovladatelná lampa východu slunce
Jasně ovladatelná lampa východu slunce
Jasně ovladatelná lampa východu slunce
Jasně ovladatelná lampa východu slunce

Probudili jste se někdy v 7 hodin, v obvyklou dobu, kdy se potřebujete probudit do práce, a ocitli jste se ve tmě? Zima je strašná doba, že? Musíte se probudit uprostřed noci (jinak proč je taková tma?), Vytrhnout se z postele a poslat své podvědomé tělo do sprchy.

Tento projekt má za cíl vyřešit jeden z problémů - ranní tmu.

Kolem je spousta levných svítilen, ale všechny jsou slabé a bledé. Jsou spíše jako noční lampa, díky které se vám bude lépe spát. Vůbec ne to, co chci.

Přitom pouhé zapnutí jasného světla vás okamžitě probudí, ale ne dostatečně jemně. To, co chci, je kombinace obou přístupů - rozsvítit se nízkým jasem, pomalu se dostat na plnou rychlost, pak se spustí skutečný alarm a už nejste tak ospalí. Přidejme k tomu trochu ptačí písně a každé ráno se probudíte v nebi!

Krok 1: Pole lampy

Pole lampy
Pole lampy
Pole lampy
Pole lampy

V první řadě potřebujeme samotnou lampu. Mám docela velkou místnost s bílými stěnami a stropem, a tak jsem si vybral 7 LED žárovek GU10, každá něco jako 6 W, více než 40 W čistého výkonu! To stačí, abyste měli pocit, že už je den. Může být také použito jako obvyklé osvětlení místnosti během dne.

Nezáleží na tom, jak jej sestavíte, jaké lampy použijete s jakými zásuvkami. Všechno, na čem záleží - musí to být stmívatelné žárovky!

V mém případě mám dřevěné prkno se 7 zásuvkami GU10, které jsou všechny spojeny dohromady. Později to vložím do plastové krabice.

Krok 2: Stmívací teorie

Stmívací teorie
Stmívací teorie

Teoreticky není žádný rozdíl mezi teorií a praxí. V praxi existuje.

Ovládání stmívače z ESP32/Arduino se nezdálo tak jednoduché, jak jsem si představoval. Mám jeden z modulů RobotDyn AC Light Dimmer. Výrobce k tomu navrhuje knihovnu. Nefunguje to na ESP32 (a je opravdu těžké se přizpůsobit, protože používá mnoho nízkoúrovňových přístupů k registru ATMega), což funguje na Arduino Nano, což strašně bliká při nízkém a středním jasu. Proto jsem strávil nějaký čas zkoumáním, jak to všechno funguje, a vytvářením vlastní cesty.

Trochu teorie

Zvolený modul stmívače používá velmi oblíbený TRIAC: BTA16. Je o tom spousta článků. Pokusím se to zde shrnout.

TRIAC je modul, který může přenášet na výstup kladné nebo záporné napětí nebo jej může blokovat. Ve výchozím nastavení blokuje vše. Abychom ho mohli otevřít, měli bychom mu dát vysoký signál na vstupu brány pro 100 us. Poté zůstane otevřený, dokud proud neklesne na nulu, což se stane, když vstupní napětí změní znaménko a překročí nulové napětí. Pak v následujícím cyklu bychom měli udělat dalších 100 us pulsu a tak dále. Volbou, kdy dát puls, ovládáme jas: proveďte to na samém začátku a bude se to blížit 100% přenosu energie. Udělejte to později a bude to šedé. Podívejte se na diagram výše a vysvětlete ho.

Abychom generovali impulsy ve stejném bodě cyklu, musíme přesně vědět, kdy začíná. Proto má modul stmívače zabudovaný detektor Zero-Cross. Vyvolává signál (který zachytíme jako hardwarové přerušení v Arduinu) pokaždé, když napětí překročí nulu.

Krok 3: Cvičení stmívání

Nácvik stmívání
Nácvik stmívání

Jo, takhle byste se probudili, pokud vaše lampa nemá žádné stmívání a do vašich ospalých očí dává veškerý výkon 40 W.

Běžné problémy

Existuje několik problémů, které musíme vyřešit.

Blikající.

Časování mikrokontroléru musí být při zapínání a vypínání výstupu brány opravdu přesné. Knihovna, kterou RobotDyn navrhuje, má každých 100us přerušení časovače a mění úroveň brány pouze na časovači. To znamená, že může být +/- 50 mikrosekund mimo optimální hodnotu. Při vysokém jasu poskytuje dobrý výsledek, ale při nízkém jasu hodně bliká. Také pokud mikrokontrolér dělá spoustu věcí, snižuje časovou přesnost, takže v ideálním případě by měl být pro stmívač použit vyhrazený mikrokontrolér.

Minimální jas. LED diody mají vestavěný měnič výkonu, který při nedostatečném výkonu prostě odmítne fungovat. Zdálo se, že moje lampy fungovaly dobře od 10 do 11%.

I při této hodnotě se některé z mých lamp odmítly rozsvítit při startu. I když později zvýší jas, zůstanou tmavé. Proto když přejdeme ze stavu VYPNUTO na nějaký kladný jas, začneme zahřívací periodou 5 cyklů, kdy dáme lampám plný výkon. Poté pokračujeme s požadovaným jasem. Je to téměř nepostřehnutelné, ale opravdu to pomáhá.

Síťová frekvence 50/60 Hz. Musíte vědět, kolik čekat před další nulou. Je to docela jednoduché - stačí se podívat na časový rozdíl mezi dvěma posledními přerušeními.

Postupná změna jasu. ESP32 je docela pomalý, zpracování triviálního požadavku HTTP nebo dokonce WebSocket trvá 0,5 s, takže nečekejte plynulý přechod jasu, je třeba jej implementovat nějak na úrovni stmívače. Proto když obdrží nový jas ze sériového portu, nastaví cíl a poté se k němu časem pomalu přiblíží.

Řešení

Zde je můj jednoduchý kód Arduino pro stmívač. Čeká na příkaz (jeden bajt s novým jasem) ze sériového vstupu, zvládá přerušení Zero-Cross, ovládá TRIAC a řeší všechny výše uvedené problémy.

Krok 4: Ovladač lampy (ESP32)

Ovladač lampy (ESP32)
Ovladač lampy (ESP32)
Ovladač lampy (ESP32)
Ovladač lampy (ESP32)

Zde je schéma připojení všech komponent, které mám. Deska ESP32 se velmi liší od toho, co používám (Heltec), takže vybrané piny vypadají trochu divně, ale stále by to mělo fungovat dobře. Neváhejte ve svém projektu použít různé piny.

Zde je kód, který to všechno ovládá. Je to docela přímočaré.

Hlavní vlastnosti

Ovládatelné. Kontrolka se připojí k WiFi, spustí server WebSocket na portu 81, čeká na příkazy. Formát příkazu je

V současné době jsou podporovány pouze dva příkazy: „set_brightness“a „update_settings“, které … jsou velmi dobře popisné.

Získání času z NTP. Nechci věci příliš komplikovat a přidat do schématu hodiny v reálném čase. Máme přístup k internetu, což znamená, že můžeme získat skutečný čas z nějakého serveru NTP a poté sledovat aktuální čas pomocí systémových časovačů.

Sunrise Alarm. Můžete nastavit jeden alarm. Co to vlastně dělá: začíná minimálním jasem a postupně přejde na plný jas po dobu 10 minut. Poté zůstane zapnuto několik hodin. Poté se během 60 sekund postupně vypne.

Všechny výše uvedené parametry lze konfigurovat.

Zpěv ptáků. DFPlayer mini slouží k přehrávání hudby. Existuje spousta příruček, ale v zásadě stačí připojit kartu MicroSD naformátovanou na FAT32 k jednomu souboru s názvem 0001.mp3. Tento soubor může mít cokoli, co se vám líbí, v mém případě je to 15 minut zpěvu ptáků (bude to smyčkované), a díky tomu bude moje ráno úžasné. Všimněte si, že na napájení je obrovský kondenzátor a na sériové lince mezi odpory 1 kOhm ESP32 a DFplayer - jsou volitelné, ale pomáhají snižovat hluk.

Uložení nastavení do EEPROM. Všechna nastavení jsou zapsána do EEPROM a načtena při spuštění. Umožňuje používat lampu alespoň s funkcí alarmu bez připojeného ovladače.

Vykreslování některých informací na obrazovku OLED. Můj Heltec ESP32 má vestavěnou obrazovku SSD1306 128X64 I2C. Jsou na něm vykresleny všechny podstatné informace. Vím, krabice vypadá ošklivě, právě jsem 3D věci vytiskl a vyřízl otvory a okna vrtákem. Rychlé, špinavé, ale funguje to!

Krok 5: Ovládací panely

Kontrolní panel
Kontrolní panel
Kontrolní panel
Kontrolní panel

To je jádro projektu. Raspberry Pi s originálním 7 displejem, na kterém běží nějaké rozhraní Kivy.

Zde je úplný zdrojový kód.

Vlastnosti

Napsáno v Pythonu. Miluji Kivy, je to framework Pythonu pro uživatelská rozhraní. Velmi jednoduché, ale flexibilní a efektivní (používá spoustu C kódu uvnitř pro vysoký výkon a hardwarovou akceleraci).

Počasí. Ukažte aktuální teplotu a tlak venku. Pokud připojíte dálkové čidlo - také vnitřní teplotu. Také požaduje a analyzuje předpověď počasí na následujících 12 hodin a poskytuje rady ohledně pravděpodobnosti deště.

Ovladač SunriseLamp. Další panel zobrazuje některé základní informace o alarmu a umožňuje upravit jas. Pokud přejdete do nastavení, můžete nakonfigurovat libovolný parametr lampy, včetně plánu alarmů, maximální hlasitosti zvuku atd.

Screensaver. Renders Game of Life na obrazovce po určité době nečinnosti.

Dříve toho bylo víc, ale další věci se zdály být zbytečné.

Instalace

Nainstaloval jsem vše ručně na Raspbian a nyní mohu říci: neopakujte své chyby. Použijte KivyPie, má vše předinstalované.

Kromě toho postupujte podle instalačního průvodce v úložišti kódů.

Krok 6: Užijte si to

Osobně jsem se zařízením spokojený. Přes den to používám jako hlavní osvětlení doma a ráno mě to probudí, je to úžasné.

Vím, že pokyny nejsou příliš podrobné a popisné. Pokud někdo dělá totéž a má problémy - rád pomůžu!

Doporučuje: