Obsah:

Inteligentné svetlo upcyklovaného budíka: 8 krokov (s obrázkami)
Inteligentné svetlo upcyklovaného budíka: 8 krokov (s obrázkami)

Video: Inteligentné svetlo upcyklovaného budíka: 8 krokov (s obrázkami)

Video: Inteligentné svetlo upcyklovaného budíka: 8 krokov (s obrázkami)
Video: TOP 10 Tajné funkce mobilu o kterých 90% lidí neví 2024, November
Anonim
Inteligentné svetlo s upcyklovaným budíkom
Inteligentné svetlo s upcyklovaným budíkom
Inteligentné svetlo s upcyklovaným budíkom
Inteligentné svetlo s upcyklovaným budíkom
Inteligentné svetlo s upcyklovaným budíkom
Inteligentné svetlo s upcyklovaným budíkom

V tomto projekte upcyklujem úplne pokazený budík. Ciferník je nahradená 12 diódami LED, osvetlenými pásikom LED okolo okraja hodín. 12 LED diód udáva čas a páska LED je naprogramovaná tak, aby pôsobila ako alarm a v nastavený čas sa rozsvietila na plný jas. Všetko je riadené Raspberry Pi Zero, ktoré umožňuje nespočetné možnosti integrácie a rozšírenia, ako je automatická synchronizácia svetelného alarmu s alarmom telefónu alebo blikanie diód LED pri prijatí e -mailu.

Projekt používa relatívne lacné alebo opakovane používané komponenty - jediné, čo som nakoniec kúpil, bol regulátor napätia. Všetko ostatné, čo som náhodou ležal, ako napríklad prerušený LED pás. Tento návod vás prevedie tým, ako som svojim zlomeným hodinám dal nový život, a dúfajme, že vás inšpiruje k upcyklovaniu niečoho vlastného.

Krok 1: Diely

Časti
Časti
Časti
Časti
Časti
Časti

Aby sme mohli ovládať všetko, použijeme Raspberry Pi Zero, pretože je malý, stojí veľmi málo a je možné ho pripojiť k sieti Wi -Fi, čo znamená, že nepotrebujeme hodiny v reálnom čase, a preto môžeme kód ľahko aktualizovať na diaľku z prenosného počítača. Pokiaľ nemáte Pi Zero W, pripojíme sa k sieti WiFi pomocou USB WiFi kľúča.

Tu je zoznam použitých dielov, ale väčšinu vecí je možné vymeniť za vhodné alternatívy. Napríklad namiesto Raspberry Pi môžete na ovládanie projektu použiť Arduino s hodinami reálneho času.

Použité diely

  • Starý budík
  • 30 cm teplého bieleho LED pásu
  • 1x karta Raspberry Pi Zero + micro SD
  • 1x USB WiFi dongle + prevodník z micro USB na USB
  • 12x LED diódy
  • 12x 330ohm odpory (použite vyššie, ak chcete stmievateľné LED diódy)
  • 1x TIP31a (alebo iný výkonový tranzistor npn alebo MOSFET)
  • 1x 1k odpor
  • 1x LM2596 DC-DC nastaviteľný buck prevodník (pre Raspberry Pi zníži napätie 12V na 5V)
  • 1x napájací zdroj 12 V (+ spôsob zapojenia do vášho projektu)
  • Drevený ciferník s rozmermi 10 cm x 10 cm (mal by byť dostatočne tenký na namontovanie diód LED)
  • Rôzne kusy rôznofarebného drôtu

Užitočné veci mať

  • Spájkovačka + spájka
  • Horúce lepidlo
  • Multimeter
  • Breadboard
  • Ženské kolíkové hlavičky
  • Čítačka alebo prevodník kariet Micro SD
  • Počítač
  • Mini HDMI adaptér + obrazovka HDMI, ak chcete používať desktopové prostredie Pi

Krok 2: Nastavenie Raspberry Pi

Nastavenie Raspberry Pi
Nastavenie Raspberry Pi
Nastavenie Raspberry Pi
Nastavenie Raspberry Pi

Operačný systém

Pretože Raspberry Pi nebude pripojený k obrazovke, rozhodol som sa použiť Raspbian Buster Lite, ktorý nie je dodávaný s desktopovým prostredím. Ak ste s Raspberry Pi novší, možno budete chcieť použiť štandardný Raspbian Buster, ktorý sa dodáva s počítačom. Ak si nie ste istí, ako nainštalovať operačný systém, je to skvelý zdroj. Oba operačné systémy je možné stiahnuť z webovej stránky Raspberry Pi.

V tejto chvíli napájajte Pi pomocou zdroja napájania Micro USB. Pripojte aj USB WiFi dongle.

Rozhovor s Raspberry Pi

Akonáhle je všetko zabalené, je dosť ťažké získať prístup k Pi, ak chcete zmeniť kód atď. Použitie SSH vám umožní použiť pripojenie k Pi a ovládať ho z iného počítača. Toto nie je predvolene zapnuté, ale môžeme to urobiť jednoduchým vytvorením priečinka ssh v zavádzacom oddiele vašej karty SD. Ak ste sa už do svojho Pi prihlásili, môžete to urobiť aj tak, že na terminál napíšete sudo raspi-config a prejdete na Možnosti rozhrania> SSH a zvolením Áno ho povolíte.

Teraz sa môžete k svojmu Pi pripojiť na inom počítači. Na počítačoch Mac alebo Linux môžete používať svoju koncovú aplikáciu, ale vo väčšine verzií systému Windows budete musieť nainštalovať klienta SSH, napríklad PuTTY. Pripojte sa k Pi zadaním ssh pi@, kde názov hostiteľa je nahradený názvom hostiteľa IP adresy vášho Pi. Predvolený názov hostiteľa je raspberrypi.local. Požiada vás o heslo, ktoré, ak ste ho ešte nezmenili, je malina.

Potrebná inštalácia vecí

Najprv sa uistite, že je všetko aktuálne, spustením sudo apt update a potom sudo apt full-upgrade.

Aby sme sa uistili, že potrebujeme ovládať piny GPIO na type Pi sudo apt-get install python-rpi.gpio a sudo apt-get install python3-rpi.gpio. Tie by už mali byť nainštalované v plnej verzii Raspbian.

Kód

Tu je kód na stiahnutie, aby všetko fungovalo. Ak používate desktopové prostredie, vložte ich do priečinka Dokumenty.

Ak používate príkazový riadok SSH, prejdite do svojho domovského priečinka zadaním cd ~/Documents a stlačením klávesu Enter. Vytvorte nový súbor s názvom test1.py pomocou programu nano test1.py. Otvorí sa nano textový editor, do ktorého môžete vložiť kód stiahnutého súboru test1.py. CTRL-O a stlačením klávesu Enter súbor uložíte a CTRL-X ukončíte editor. Opakujte postup pre zostávajúce súbory.

Krok 3: Inštalácia pásky LED

Inštalácia LED pásky
Inštalácia LED pásky
Inštalácia LED pásky
Inštalácia LED pásky

Najprv vysuňte LED pásik na hodinách, aby ste zistili, koľko budete potrebovať, označte si túto dĺžku a odstrihnite pás v nasledujúcom bode strihu, ako je znázornené na obrázku. Je oveľa jednoduchšie spájkovať drôty s pásikom, než sa pásik zasekne na svojom mieste. Toto je celkom dobrý návod, ako to urobiť, ale ak si nie ste istí, zacvičím si na spájkovaní na kúsku, z ktorého ste práve odstrihli pásik. Spájajte jeden vodič na kladný bod spájky a jeden vodič na záporný. Pred vložením do hodiniek si najskôr vyskúšajte, či váš LED pás funguje.

Pretože LED pásik, ktorý som použil, bol použitý skôr, ako stratil samolepiaci podklad, a tak som musel použiť horúce lepidlo na upevnenie pásika okolo okraja hodín. Ak máte nadbytočnú dĺžku, zakryte bod, kde sú pripevnené drôty. Možno budete chcieť pás nainštalovať neskôr, ale pre mňa bolo jednoduchšie nechať ho zastrčený v hodinách.

Krok 4: Ovládanie pásu LED

Ovládanie LED pásika
Ovládanie LED pásika

Pripojenie LED pásika

LED pás beží na 12 V, takže ho nemožno napájať priamo z Pi. Na ich ovládanie použijeme výkonový tranzistor (napr. TIP31a) zapojený do Pi, ako je uvedené vyššie. Odporúčam najskôr skontrolovať, či to všetko funguje na doske.

  • Pripojte GPIO 19 k základni pomocou rezistora 1k
  • Vysielač by mal byť pripojený k GND
  • Pripojte kolektor k zápornému pólu LED pásky
  • Pripojte kladný pól svorky LED na +12V

Testovanie

Na príkazovom riadku nagivate do priečinka s dokumentmi (cd ~/Documents) napíšte python test1.py a zadajte. Mali by ste vidieť, ako sa LED pás zvyšuje a znižuje jas. Program ukončíte stlačením klávesov CTRL-C. V súbore (nano test1.py) môžete upraviť rýchlosť a jasy programu.

importujte RPi. GPIO ako GPIOimportový čas GPIO.setmode (GPIO. BCM) # Použite BCM pinout GPIO.setwarnings (False) # Ignorujte upozornenia na piny používané pre iné veci ledStripPin = 19 # LED pásik je poháňaný z tohto kolíka GPIO.setup (ledStripPin, GPIO. OUT) # Nastaviť ledStripPin ako výstup pwm = GPIO. PWM (ledStripPin, 100) # PWM na ledStripPin s frekvenciou 100 Hz dutyCycle = 0 # Počiatočný jas v percentách pwm.start (dutyCycle) skúste: kým True: pre dutyCycle v rozsahu (0, 101, 1): # Fade up pwm. ChangeDutyCycle (dutyCycle) time.sleep (0,05) for dc in range (95, -1, -1): # Fade down pwm. ChangeDutyCycle (dc) time.spánok (0,05) okrem prerušenia klávesnice: # Ukončite stlačením klávesu CTRL-C a potom: pwm.stop () # Zastavte pwm GPIO.cleanup () # Vyčistite kolíky GPIO

Krok 5: Vytvorenie ciferníka

Výroba ciferníka
Výroba ciferníka
Výroba ciferníka
Výroba ciferníka
Výroba ciferníka
Výroba ciferníka

Odrežte kus dreva pre hodiny tak, aby sa zmestil do vašich hodín. Svoju som nechal odpočívať asi 3 cm odpredu. Vyvŕtajte 12 otvorov s priemerom vašich LED diód (zvyčajne 3 mm alebo 5 mm) v odstupe 30 stupňov od seba. Prednú stranu obrúste lícom nadol a naneste povrchovú úpravu podľa vlastného výberu. Zo zadnej strany umiestnite diódy LED tak, aby smerovali dopredu. Použil som horúce lepidlo, aby LED diódy držali na svojom mieste tak, aby kladný pól (dlhší vodič) smeroval dovnútra. Veľkosť môjho ciferníka znamenala, že som mohol spájkovať všetky záporné póly dohromady (pozri vyššie), takže na pripojenie všetkých 12 LED diód k GND bol potrebný iba jeden vodič. Ďalej ku každej dióde LED spájkujte drôt.

Ak to chcete vyskúšať na doske, najskôr nezabudnite použiť rezistor (330 ohmov je celkom štandardný) v sérii s každou LED diódou, než ho pripojíte k jednému z pinov Pi GPIO. Hrajte sa s hodnotou odporu, ktorý používate, aby ste dosiahli úroveň jasu, s ktorou ste spokojní. T-cobbler je skutočne užitočný pri rozbíjaní pinov Pi na doske, aj keď na to budete musieť spájkovať kolíky záhlavia. Použite test2.py (spustite pomocou pythonu test2.py), ale uistite sa, že najskôr upravíte program a zadáte GPIO piny Pi, ktoré ste použili pre každú LED.

importujte RPi. GPIO ako GPIO

čas importu GPIO.setmode (GPIO. BCM) # Použite BCM pinout GPIO.setwarnings (False) # Ignorujte upozornenia na piny, ktoré sa používajú na iné účely # Nahraďte jeden, dva,… zodpovedajúcim počtom pinov hourPin = [jeden, dva, tri, štyri, päť, šesť, sedem, osem, deväť, desať, jedenásť, dvanásť] # Kolíky, ku ktorým sú LED diódy pripojené od 1 do 12 pre i v rozsahu (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Nastaviť všetky hourPiny ako výstupy GPIO.output (hourPin , 0) # Uistite sa, že sú všetky LED zhasnuté, skúste: while True: for i in range (0, 12) GPIO.output (hourPin , 1): time.sleep (0,05) pre i v rozsahu (0, 12) GPIO.output (hourPin , 0): time.sleep (0,05) okrem KeyboardInterrupt: # Stlačením CTRL-C ukončíte a potom: GPIO.cleanup () # Vyčistite kolíky GPIO

Krok 6: Napájanie Pi

Napájanie Pi
Napájanie Pi

Potrebujeme jednoduchý spôsob, ako dostať 5 V na Pi Zero, aby sme sa mohli zbaviť kábla micro USB, ktorý sme doteraz používali na jeho napájanie. Existuje niekoľko riešení, ktoré znižujú napätie 12 V na 5 V, ako napríklad lineárny regulátor napätia LM7805, ale nie sú príliš účinné, takže som sa namiesto toho rozhodol použiť účinnejší nastaviteľný prevodník dolárov pomocou čipu LM2596. S týmto budete musieť krútiť potenciometrom, kým sa výstupné napätie nezníži na 5 V podľa potreby, takže budete potrebovať nejaký spôsob merania napätia.

Použitie LM2596 je jednoduché: zapojte +12V do IN +, uzemnenie do IN-. Pi môže byť pripojený priamo k 5V pripojením OUT+ k jednému z 5V pinov Pi, ale uistite sa, že ste zmenili výstupné napätie na 5V predtým, ako to urobíte, inak budete Pi opekať!

Krok 7: Dokončite obvod a balenie

Dokončite obvod a balenie
Dokončite obvod a balenie
Dokončite obvod a balenie
Dokončite obvod a balenie
Dokončite obvod a balenie
Dokončite obvod a balenie
Dokončite obvod a balenie
Dokončite obvod a balenie

Teraz sme pokryli všetky tri prvky obvodu, ktoré sú zobrazené spoločne v celkovom obvode vyššie. Aby ste ušetrili miesto a aby bol obvod úhľadnejší, umiestnite svoj obvod na pásovú alebo prototypovú dosku. Najprv spájkujte najmenšie súčiastky, odpory, potom výkonový tranzistor, akékoľvek konektory a nakoniec vodiče. Pred spájkovaním si naplánujte svoj obvod, aby ste sa presvedčili, že máte priestor na všetko.

Všetko som zapojil do prototypu DPS a použil som zásuvkové kolíky, aby sa Pi mohol pripojiť priamo na DPS. LED diódy na ciferníku sú pripojené cez odpory na jednej strane dosky a na druhej strane dosky som ponechal priestor pre výkonový tranzistor a voľný pre všetky ďalšie obvody, ktoré by som mohol neskôr chcieť pridať.

Pripevnite ciferník k hodinám a uistite sa, že všetka elektronika do seba zapadne. Všetko mi celkom sedelo, takže možno budete musieť urobiť nejaké preskupenie. Pripojte napájanie a spustite test1.py a test2.py zo SSH a pred pripevnením chrbta skontrolujte, či všetko funguje.

Krok 8: Nahrajte kód + Dokončiť

Nahrajte kód + Dokončiť
Nahrajte kód + Dokončiť
Nahrajte kód + Dokončiť
Nahrajte kód + Dokončiť
Nahrajte kód + Dokončiť
Nahrajte kód + Dokončiť

Kód

Nakoniec, ak ste to ešte neurobili, nahrajte kód a upravte ho podľa seba (pomocou nano filename.py). Výhodou pripojenia k Pi cez SSH je, že kód môžete aktualizovať bez otvárania hodín.

Tieto programy pythonu z kroku 2 robia nasledovné:

  • light_clock_simple.py jednoducho zobrazuje hodinu na diódach LED a v určitých časoch mizne hore a dole na páse LED
  • light_clock_pwm.py je rovnaký ako vyššie, ale tiež umožňuje zníženie jasu diód LED a zobrazuje minúty s iným jasom ako hodiny. Budete sa musieť pohrať s úrovňami jasu oboch, aby bol kontrast medzi týmito dvoma nápadný

Mali by poskytnúť pevný základ pre pridanie do kódu, napríklad by ste mohli chcieť pridať tlačidlo na odloženie svetelného alarmu.

Na spustenie programu pri štarte Pi potrebujeme pridať „@reboot nohup python light_clock_pwm.py &“na koniec súboru crontab, ktorý je možné otvoriť z terminálu pomocou crontab -e. Reštartujte svoj Raspberry Pi a skontrolujte, či teraz funguje so sudo shutdown -r.

Možné dodatky

Tu je niekoľko nápadov na ďalšie funkcie, ktoré by bolo možné pridať

  • Pridanie tlačidla odložiť
  • Pridanie režimu žiarovky
  • Pripojenie k IFTTT (napr. Svetlo sa môže rozsvietiť, keď sa vypne budík telefónu/bliká pri prijatí e -mailu)
  • Rozširuje kapacitu dotykových funkcií, tj robí z hodín dotykové svetlo

Pri použití PWM si môžete všimnúť, že občas, najmä pri nižšom jasu, LED dióda trochu bliká. Dôvodom je, že Pi používa softvér PWM, takže procesy CPU môžu ovplyvniť pracovný cyklus. Keďže s tým beží menej procesov, pomohlo mi to, a tak som použil zredukovaný operačný systém Raspbian Lite. Hardvérový PWM je k dispozícii aj na niekoľkých kolíkoch, takže ak problém predstavuje blikanie, možno by ste sa mali na to pozrieť.

Dúfam, že ste našli tento návod, ktorý je informatívny, a buď sa inšpirujete k upcyklovaniu starého budíka alebo použijete prvky kódu pre svoj vlastný projekt.

Rýchlosť LED diódy
Rýchlosť LED diódy
Rýchlosť LED diódy
Rýchlosť LED diódy

Druhá cena v súťaži LED Strip Speed Challenge

Odporúča: