Tartalomjegyzék:

Fényes, szabályozható napkelte lámpa: 6 lépés
Fényes, szabályozható napkelte lámpa: 6 lépés

Videó: Fényes, szabályozható napkelte lámpa: 6 lépés

Videó: Fényes, szabályozható napkelte lámpa: 6 lépés
Videó: 24 часа в японском поезде с ночным спальным местом, места первого класса (полный тур) 2024, Július
Anonim
Fényes, szabályozható Napkelte lámpa
Fényes, szabályozható Napkelte lámpa
Fényes, szabályozható Napkelte lámpa
Fényes, szabályozható Napkelte lámpa

Felébredtél valaha 7 órakor, a szokásos időben, amikor fel kell ébredned a munkához, és a sötétségben találtad magad? A tél szörnyű idő, nem? Fel kell ébrednie az éjszaka közepén (különben miért olyan sötét?), Le kell szakítania magát az ágyról, és féltudatos testét a zuhany alá kell küldenie.

A projekt célja az egyik probléma - a reggeli sötétség - megoldása.

Sok olcsó napfelkelte -lámpa van a környéken, de mindegyik alacsony fogyasztású és halvány. Inkább olyanok, mint egy éjszakai lámpa, aminek állítólag jobban kell aludnia. Egyáltalán nem az, amit szeretnék.

Ugyanakkor, ha csak bekapcsolja az erős fényt, azonnal felébred, de nem elég gyengéden. A két megközelítés kombinációját akarom - gyenge fényerő mellett, lassan teljes sebességre, majd egy igazi riasztó megszólal, és már nem vagy olyan álmos. Tegyünk hozzá egy kis madárdalot, és minden reggel a mennyben ébredsz!

1. lépés: Lámpa tömb

Lámpa tömb
Lámpa tömb
Lámpa tömb
Lámpa tömb

Először is magára a lámpára van szükségünk. Van egy elég nagy szobám, fehér falakkal és mennyezettel, ezért 7 GU10 LED -es lámpát kerestem, mindegyik 6W -os, több mint 40W tiszta teljesítményt! Ez elég ahhoz, hogy úgy érezze, már nappal van. Ezenkívül nappali helyiségvilágításként is használható.

Teljesen mindegy, hogy hogyan szereljük össze, melyik lámpát milyen foglalattal használjuk. Minden, ami számít - ezeknek szabályozható lámpáknak kell lenniük!

Az én esetemben van egy fa deszka 7 GU10 foglalattal, mindegyik össze van kötve. Később beteszem egy műanyag dobozba.

2. lépés: A tompítás elmélete

Sötétítés elmélete
Sötétítés elmélete

Elméletben nincs különbség elmélet és gyakorlat között. A gyakorlatban van.

Úgy tűnt, hogy az ESP32/Arduino vezérlőjének szabályozása nem olyan egyszerű, mint képzeltem. Megkaptam az egyik RobotDyn AC Light Dimmer modult. A gyártó ehhez könyvtárat javasol. Nem működik az ESP32-en (és nagyon nehéz alkalmazkodni, mert sok alacsony szintű ATMega-specifikus rendszerleíró adatbázis-hozzáférést használ), amolyan az Arduino Nano-n, ami rettenetes villogást eredményez az alacsony és közepes fényerő mellett. Ezért egy kis időt töltöttem azzal, hogy megvizsgáljam, hogyan működik mindez, és saját utat választottam.

Egy kis elmélet

A kiválasztott fényerő -szabályozó modul nagyon népszerű TRIAC: BTA16 -ot használ. Rengeteg cikk van róla. Itt megpróbálom összefoglalni.

A TRIAC egy modul, amely pozitív vagy negatív bemeneti feszültséget tud továbbítani a kimenetre, vagy blokkolhatja azt. Alapértelmezés szerint mindent blokkol. Annak érdekében, hogy kinyissuk, magas jelet kell adnunk a kapu bemenetén 100 nekünk. Ezután nyitva marad, amíg az áram nullára nem csökken, ami akkor történik, amikor egy bemeneti feszültség megváltoztatja a jelet, és keresztezi a nulla feszültséget. Ezután a következő ciklusban további 100 us pulzust kell végeznünk, és így tovább. Ha kiválasztjuk, hogy mikor adjunk impulzust, akkor szabályozjuk a fényerőt: tedd meg a legelején, és közel 100% -os lesz az erőátvitel. Tedd meg később, és halvány lesz. Nézze meg a fenti diagramot, magyarázza meg.

Ahhoz, hogy impulzusokat generáljunk a ciklus ugyanazon pontján, pontosan tudnunk kell, mikor kezdődik. Ezért van az, hogy a fényerő-szabályozó modul Zero-Cross érzékelővel van felszerelve. Ez csak egy jelet emel (amelyet hardvermegszakításként fogunk fel az Arduino-ban) minden alkalommal, amikor a feszültség átlépi a nullát.

3. lépés: A fényerő csökkentése

Halványító gyakorlat
Halványító gyakorlat

Igen, így ébredne fel, ha a lámpája nem halványul, és minden 40 W -os energiát az álmos szemébe helyez.

Gyakori problémák

Számos problémát kell megoldanunk.

Pislákoló.

A mikrovezérlő időzítésének nagyon pontosnak kell lennie a kapu kimenetének be- és kikapcsolásakor. A RobotDyn könyvtár azt javasolja, hogy minden 100us időzítő megszakítással rendelkezzen, és csak az időzítőn változtatja meg a kapu szintjét. Ez azt jelenti, hogy +/- 50 mikroszekundum lehet az optimális értéktől. Nagy fényerő mellett jó eredményt ad, de alacsony fényerő mellett sokat villog. Továbbá, ha a mikrokontroller sok mindent csinál, csökkenti az idő pontosságát, ezért ideális esetben dedikált mikrokontrollert kell használni a fényerő -szabályozóhoz.

Minimális fényerő. A LED-ek beépített teljesítményátalakítóval rendelkeznek, amely nem hajlandó működni, ha nincs elegendő teljesítmény. Úgy tűnt, hogy a lámpáim 10-11%-tól kezdve jól működnek.

Még ezzel az értékkel is néhány lámpám nem volt hajlandó induláskor világítani. Még akkor is, ha később növelik a fényerőt, sötétek maradnak. Ezért, amikor OFF állapotból pozitív fényerőre állunk, 5 ciklusos bemelegedési periódussal kezdjük, amikor teljes energiát adunk a lámpáknak. Ezután folytatjuk a kívánt fényerővel. Szinte észrevehetetlen, de tényleg segít.

50/60 Hz hálózati frekvencia. Tudnia kell, mennyit kell várnia a következő nulla előtt. Ez elég egyszerű - csak nézzük az időkülönbséget két utolsó megszakítás között.

Fokozatosan változik a fényerő. Az ESP32 elég lassú, egy triviális HTTP vagy akár WebSocket kérés feldolgozása 0,5 másodpercet vesz igénybe, ezért ne várjon sima fényerő -átmenetet, ezt valahogy a dimmer szintjén kell megvalósítani. Éppen ezért, amikor új fényerőt kap egy soros portról, csak beállítja a célt, majd lassan közeledik az idő múlásával.

A megoldás

Itt van az egyszerű Arduino kódom a dimmerhez. Vár egy parancsot (egy bájt az új fényerővel) a soros bemenetről, kezeli a Zero-Cross megszakításokat, vezérli a TRIAC-ot, kezelve a fenti problémákat.

4. lépés: Lámpavezérlő (ESP32)

Lámpavezérlő (ESP32)
Lámpavezérlő (ESP32)
Lámpavezérlő (ESP32)
Lámpavezérlő (ESP32)

Itt van az összes összetevő csatlakozási sémája. Az ESP32 kártya nagyon különbözik attól, amit használok (Heltec), ezért a kiválasztott csapok kissé furcsán néznek ki, de ennek ellenére jól kell működnie. Nyugodtan használjon különböző csapokat a projektben.

Itt van a kód, ami mindent irányít. Elég egyenes.

A főbb jellemzők

Vezérelhető. A lámpa csatlakozik a WiFi -hez, elindítja a WebSocket szervert a 81 -es porton, és várja a parancsokat. A parancs formátuma

Egyelőre csak két parancs támogatott: a "set_brightness" és az "update_settings", amelyek… eléggé leíróak.

Idő megszerzése az NTP-ből. Nem akarom túlbonyolítani a dolgokat, és valós idejű órát adni a sémához. Rendelkezünk internet -hozzáféréssel, ami azt jelenti, hogy valamilyen NTP szerverről lekérhetjük a valós időt, majd a rendszer időzítői segítségével nyomon követhetjük az aktuális időt.

Napkelte riasztás. Egy ébresztést állíthat be. Valójában ez: a minimális fényerővel kezdődik, és 10 perc alatt fokozatosan a teljes fényerőre emelkedik. Aztán pár órán át rajta marad. Ezután 60 másodpercen belül fokozatosan kikapcsol.

A fenti paraméterek konfigurálhatók.

Madarak énekelnek. A DFPlayer mini zenét játszik le. Számos útmutató létezik hozzá, de lényegében csak egy FAT32 formátumú MicroSD kártyát kell csatlakoztatnia egy 0001.mp3 nevű fájllal. Ebben a fájlban bármi lehet, ami tetszik, az én esetemben 15 perc madarak énekelnek (hurokba kerülnek), és elképesztővé teszi a reggelemet. Vegye figyelembe, hogy hatalmas kondenzátor van a tápellátásban, és 1 kOhm ellenállás a soros vonalon ESP32 és DFplayer - ezek opcionálisak, de segítenek csökkenteni a zajt.

A beállítások tárolása az EEPROM -ban. Minden beállítás be van írva az EEPROM -ba, és betöltődik az indításkor. Lehetővé teszi a lámpa legalább riasztási funkcióval történő használatát csatlakoztatott vezérlő nélkül.

Néhány információ megjelenítése az OLED képernyőn. A Heltec ESP32 beépített SSD1306 128X64 I2C képernyővel rendelkezik. Minden lényeges információ megjelenik rajta. Tudom, a doboz csúnyán néz ki, most 3D-ben kinyomtattam néhány dolgot, és fúróval vágtam ki a lyukakat és az ablakokat. Gyors, piszkos, de működik!

5. lépés: Vezérlőpult

Kezelőpanel
Kezelőpanel
Kezelőpanel
Kezelőpanel

Ez a projekt lényege. Egy Raspberry Pi eredeti 7 hüvelykes kijelzővel, néhány Kivy előlappal.

Itt a teljes forráskód.

A jellemzői

Pythonban írtam. Imádom Kivyt, ez a felhasználói felületek Python keretrendszere. Nagyon egyszerű, mégis rugalmas és hatékony (sok C -kódot használ a nagy teljesítmény és a hardveres gyorsítás érdekében).

Időjárás. Jelenítse meg a külső hőmérsékletet és nyomást. Ha távoli érzékelőt csatlakoztat - a belső hőmérsékletet is. Ez is kéri és elemzi az időjárás -előrejelzést a következő 12 órára, és tanácsot ad az eső valószínűségéről.

SunriseLamp vezérlő. Egy másik panel néhány alapvető információt jelenít meg a riasztásról, és lehetővé teszi a fényerő beállítását. Ha belép a beállításokba, konfigurálhatja a lámpa bármely paraméterét, beleértve a riasztási ütemtervet, a maximális hangerőt és így tovább.

Képernyővédő. Renders Életjáték a képernyőn bizonyos inaktivitás után.

Régebben több is volt, de más dolgok haszontalannak tűntek.

Telepítés

Mindent manuálisan telepítettem a Raspbianra, és most azt mondhatom: ne ismételje meg a hibáimat. Használja a KivyPie-t, minden előre telepítve van.

Ezenkívül kövesse a telepítési útmutatót a kódtárban.

6. lépés: Élvezze

Személy szerint elégedett vagyok a készülékkel. Otthon fő világításként használom napközben, és lehetővé teszi, hogy reggel felébredjek, csodálatos.

Tudom, hogy az utasítások nem túl részletesek és leíróak. Ha valaki ugyanezt csinálja és problémái vannak - szívesen segítek!

Ajánlott: