Obsah:

Žádná modrá lampa: 4 kroky
Žádná modrá lampa: 4 kroky

Video: Žádná modrá lampa: 4 kroky

Video: Žádná modrá lampa: 4 kroky
Video: TOP 4 LIDÉ Z BUDOUCNOSTI, KTEŘÍ NÁS PŘIŠLI VAROVAT 2024, Červenec
Anonim
Žádná modrá lampa
Žádná modrá lampa
Žádná modrá lampa
Žádná modrá lampa
Žádná modrá lampa
Žádná modrá lampa
Žádná modrá lampa
Žádná modrá lampa

Tento Lazy Old Geek (L. O. G.) pracuje na projektu Blue Light:

www.instructables.com/id/Blue-Light-Projec…

www.instructables.com/id/Blue-Light-Projec…

Jako další krok jsem chtěl lampu, která bude přes den jasná a večer/v noci nebude mít žádné modré světlo.

Designový hardware:

Rozhodl jsem se použít RTC (hodiny v reálném čase) k ovládání časů pro změny světla.

Vybral jsem DS3231, protože má lepší přesnost udržování času než DS1307. DS3231 může být 5v nebo 3,3v.

Pro světlo použiji LED řetězec WS2812B. Ty mají jednoduché třívodičové rozhraní a ovladatelné červené, zelené a modré LED diody. WS2812B jsou 5v zařízení.

Pro mikrokontrolér použiji Pro Micro, 5v 16MHz.

Zatímco WS2812B bude pravděpodobně pracovat s 3,3 V, je lepší použít 5V Arduino.

Pro Micro je levné Arduino využívající mikrokontrolér Atmega32U4.

Lampa bude mít vypínač pro zapnutí nebo vypnutí lampy.

K ovládání jasu bude potenciometr.

Designový software:

DS3231 RTC by řídil načasování, má záložní baterii, takže by měl udržet čas, i když dojde ke ztrátě napájení.

Během dne by byly rozsvíceny všechny LED diody RGB, které lze ovládat potem až do plné intenzity.

Podvečer modré LED diody zhasnou, červená a zelená na max.

Jak večer postupuje, červená a zelená LED dioda zhasne, s preferencí červené před zelenou (Moje testování v části 2 naznačuje, že zelené LED diody mají v sobě nějakou modrou).

Asi po 22:00 všechny LED diody zhasnou.

PROBLÉM:

Zpět k modulu DS3231 RTC jsem koupil svůj od Aliexpressu, jako jsem to udělal u ostatních komponent.

Účelem je pracovat s nabíjecí baterií LIR2032 a nabíjet ji. Zkusil jsem to. Asi po dni byla baterie vybitá.

Po nějakém hledání na internetu jsem našel tento článek.

www.onetransistor.eu/2019/07/zs042-ds3231-…

Souhlasím s touto analýzou, ale domníval jsem se, že LIR2032 bude účtovat přiměřeně, ale ne nadměrně. Zjevně jsem se mýlil. Můj DS3231, i když také označen jako ZS-042, jak je v článku, se mírně lišil od jeho, ale téměř stejný. Odpojil jsem tedy diodu viděnou na obrázku a nainstaloval baterii CR2032. Bez diody se modul nepokusí nabít baterii. Nyní DS3231 drží správný čas i při odpojeném napájení a baterie by měla být dobrá po mnoho let.

Požadavky na napájení:

WS2812B je řada RGB LED nazývaná někdy také NeoPixels. Každý NeoPixel vyžaduje maximálně 60 mA. Používám 12 pixelů Neo, takže potřebuji 0,72 A. Používám adaptér 2A USB, takže mám spoustu proudu.

Krok 1: PCB BlueLamp

PCB BlueLamp
PCB BlueLamp
PCB BlueLamp
PCB BlueLamp

Takže jak obvykle dělám, použil jsem k rozložení a vytvoření PCB bezplatný software Eagle Cadsoft (nyní Autodesk).

www.autodesk.com/products/eagle/free-downl…

Schéma Eagle a desky jsou připojeny společně se schématem na obrázku.

Jedna poznámka ke schématu, odporu 330 ohmů a kondenzátoru 10 000 uFd jsou doporučení průvodce neopixelem společnosti Adafruit:

learn.adafruit.com/adafruit-neopixel-uberg…

Přepínací tlačítko, které jsem použil „Tlačítko hořáku“, bylo odtud:

www.aliexpress.com/item/32904942704.html?s…

Potenciometr 10K (B103) odtud:

www.aliexpress.com/item/32672253655.html?s…

Krok 2: Sestavení lampy

Sestavení lampy
Sestavení lampy
Sestavení lampy
Sestavení lampy

Náhodou jsem měl těžkou základnu z lampy, kterou jsem koupil. Měl na sobě velký kulatý špendlík. Vzal jsem kus PVC trubky, která se na něj vešla. Bylo to trochu volné, tak jsem vzal šroub a pár matic, abych to mohl utáhnout. (viz obrázek)

WS2812B lze zkrátit na požadovaný počet NeoPixelů. Pruh, který jsem koupil, má mezi NeoPixely široké mezery. Chtěl jsem, aby to bylo trochu jasnější, a tak jsem nařezal dva 6 pruhů NeoPixel a nechal je paralelně mírně odsazené. Pásy WS2812B lze stříhat mezi NeoPixely. V tomto případě jsem potřeboval změnu o 180 stupňů, tak jsem pásek přestřihl a protáhl propojovacími dráty. Pokud to někdy uděláte, ujistěte se, že signály a směrové šipky jsou správné. (Viz obrázek)

Tento WS2812B má také vodiče a konektor (tento konektor je konektor JST-SM 3pin, pokud jej chcete použít jinde). Protože tento konektor již byl, jen jsem připájel vodiče k mé desce plošných spojů. U tohoto WS2812B je červený vodič 5v, zelený je signál a bílý je kostra.

Jakmile jsem vyrobil desku plošných spojů, na dno jsem dal pásku a přilepil ji k základně. Poté jsem zapojil Pro Micro a DS3231.

Krok 3: Skica Arduino

Skica Arduino
Skica Arduino

Ačkoli jsem si koupil svůj Pro Micro z Aliexpress.com, k uvedení Arduina do provozu jsem použil následující informace:

learn.sparkfun.com/tutorials/pro-micro--fi…

K instalaci knihovny pro DS3231 používám tuto:

github.com/PaulStoffregen/DS1307RTC

Stáhněte si soubor ZIP

Otevřete Arduino, vyberte „Skica“„Zahrnout knihovnu“„Přidat knihovnu.zip“

Nainstalujte následující pomocí stejné metody

Knihovna času PaulStoffregen

github.com/PaulStoffregen/Time

Knihovna časových pásem

github.com/JChristensen/Timezone

Po dokončení spusťte Arduino.

V části Nástroje desky vyberte „Sparkfun Pro Micro“

Klikněte znovu na Nástroje, dojde k výběru procesoru

Možná budete muset změnit „Atmega32U4 (5V 16Mhz)“

UPOZORNĚNÍ: Pokud jste nedbalí jako já, omylem jsem vybral „Atmega32U4 (3,3 V 8 MHz)“. Toto to ‚zazdilo‘, takže to Arduino neviděl. Obvykle se snažím přečíst si nové věci, než jsem je dostal, a vzpomněl jsem si na něco, co se stalo:

learn.sparkfun.com/tutorials/pro-micro--fi…

V této příručce je část nazvaná „Jak oživit‚ cihlového ‘Pro Micro“Jak uvádí, je to složitý postup, ale podařilo se mi obnovit ten můj.

Pro informaci: Pokud vás zajímá, proč existují dvě verze s různým napětím a rychlostí, Atmega32U4 (stejný jako Atmega328) bude fungovat dobře při 5 V s hodinami 16 MHz. Ale při 3,3 V specifikace designu říká, že 16MHz hodiny nebudou fungovat, proto mají hodiny na 8 MHz. Obecně řečeno, software Arduino se postará o jakékoli problémy s načasováním.

RTC TIP: Většina softwaru napsaného pro DS1307 bude fungovat s DS3231, protože mají velmi podobný software.

Letní čas

Chtěl jsem zavést DST, takže jsem nemusel dvakrát ročně přeprogramovat lampu. Pracoval jsem na tom několik dní. Nenašel jsem žádná dobrá jednoduchá vysvětlení, jak fungovaly Time, TimeLib a RTClib.

Vlastně jsem napsal nějaký DST kód pro svůj IPClock:

www.instructables.com/id/NO-MORE-SPRING-FO…

který fungoval pro internetový čas, ale nemohl jsem ho nechat pracovat pro čas RTC.

Nakonec jsem narazil na následující od JChristensena:

forum.arduino.cc/index.php?topic=96891.0

github.com/JChristensen/Timezone

Abyste to mohli použít, musíte nejprve nastavit RTC na UTC (Coordinated Universal Time), to je čas v Greenwichi v Anglii. Nevěděl jsem, jak to udělat, ale našel jsem tento článek:

www.justavapor.com/archives/2482

Přepsali jsme to na Mountain time (přiloženo) UTCtoRTC.ino

Poté jsem časové pásmo začlenil do svého náčrtu. Abych byl upřímný, netestoval jsem to, takže jen za předpokladu, že to funguje.

Můj náčrt je připojen MTS_BlueLamp.ino.

Krok 4: Závěr

Závěr
Závěr

Nahoře jsem udělal malý háček pro svou obličejovou masku CPAP. Pověsil jsem to na svoji starou lampu do postele.

S touto lampou jsem v podstatě velmi spokojený. Přes den plně jasno a večer a v noci žádná modrá.

Jedna věc, která se mi nelíbí, je, že ji nemohu použít po 22:00. a před 17 hod.

Také jsem zjistil, že nepoužívám zapínání/vypínání, protože obvykle používám pouze stmívač.

V budoucnu možná přepíšu skicu a změním tlačítko na naplánovaný nebo neplánovaný (plné zapnutí). Ale se svými špatnými kódovacími schopnostmi bych mohl chvíli počkat.

Doporučuje: