Indholdsfortegnelse:

Upcycled vækkeur Smart Light: 8 trin (med billeder)
Upcycled vækkeur Smart Light: 8 trin (med billeder)

Video: Upcycled vækkeur Smart Light: 8 trin (med billeder)

Video: Upcycled vækkeur Smart Light: 8 trin (med billeder)
Video: Многофункциональное беспроводное зарядное устройство с будильником, 15 Вт, RGB-подсветка. 2024, November
Anonim
Upcycled vækkeur smart lys
Upcycled vækkeur smart lys
Upcycled vækkeur smart lys
Upcycled vækkeur smart lys
Upcycled vækkeur smart lys
Upcycled vækkeur smart lys

I dette projekt cykler jeg op med et fuldstændig ødelagt vind-vækkeur. Urskiven erstattes af 12 lysdioder, belyst af en LED -strimmel rundt om urets kant. De 12 lysdioder fortæller klokkeslættet, og LED -strimlen er programmeret til at fungere som en alarm og når fuld lysstyrke på det indstillede tidspunkt. Alt styres af en Raspberry Pi Zero, der giver mulighed for utallige integrations- og udvidelsesmuligheder såsom automatisk synkronisering af lysalarmen med din telefonalarm eller blinkende lysdioder, når du modtager en e -mail.

Projektet bruger relativt billige eller genbrugte komponenter - det eneste jeg endte med at købe var spændingsregulatoren. Alt andet havde jeg tilfældigvis liggende, f.eks. En afskåret LED-strimmel. Denne instruktionsbog vil guide dig gennem, hvordan jeg gav mit knuste ur et nyt liv og forhåbentlig kan inspirere dig til at cykle noget eget.

Trin 1: Dele

Dele
Dele
Dele
Dele
Dele
Dele

For at styre alt vil vi bruge en Raspberry Pi Zero, da den er lille, koster meget lidt og kan tilsluttes WiFi, hvilket betyder, at vi ikke har brug for et ur i realtid og derfor nemt kan opdatere koden eksternt fra en bærbar computer. Medmindre du har en Pi Zero W, opretter vi forbindelse til et WiFi -netværk ved hjælp af en USB WiFi -dongle.

Her er en liste over de dele, jeg brugte, men de fleste ting kan byttes ud til passende alternativer. For eksempel i stedet for en Raspberry Pi kan du bruge en Arduino med et ur i realtid til at styre projektet.

Dele brugt

  • Et gammelt vækkeur
  • 30 cm varmhvid LED -strimmel
  • 1x Raspberry Pi Zero + micro SD -kort
  • 1x USB WiFi -dongle + mikro USB til USB -konverter
  • 12x lysdioder
  • 12x 330ohm modstande (brug højere, hvis du vil have lysere lysdioder)
  • 1x TIP31a (eller anden npn effekttransistor eller MOSFET)
  • 1x 1k modstand
  • 1x LM2596 DC-DC justerbar bukkonverter (trin ned 12V til 5V til Raspberry Pi)
  • 1x 12v strømforsyning (+ måde at komme ind på dit projekt)
  • 10 cm x 10 cm træ til urskiven (skal være passende tynd til at montere dine lysdioder i)
  • Forskellige stykker af tråd i forskellige farver

Nyttige ting at have

  • Loddejern + loddetin
  • Varm lim
  • Multimeter
  • Brødbræt
  • Kvinde header pins
  • Micro SD -kortlæser eller konverter
  • En computer
  • Mini HDMI -adapter + HDMI -skærm, hvis du vil bruge Pi's skrivebordsmiljø

Trin 2: Opsætning af Raspberry Pi

Opsætning af Raspberry Pi
Opsætning af Raspberry Pi
Opsætning af Raspberry Pi
Opsætning af Raspberry Pi

Operativ system

Fordi Raspberry Pi ikke vil være forbundet til en skærm, valgte jeg at bruge Raspbian Buster Lite, som ikke leveres med et skrivebordsmiljø. Hvis du er nyere til Raspberry Pi, vil du måske holde dig til standard Raspbian Buster, der leveres med et skrivebord. Hvis du ikke er sikker på, hvordan du installerer dit operativsystem, er dette en fantastisk ressource. Begge operativsystemer kan downloades fra Raspberry Pi -webstedet.

I øjeblikket skal du tænde for Pi via dens Micro USB -strømindgang. Tilslut også USB WiFi -donglen.

Taler til Raspberry Pi

Når alt er pakket ind, er det ret svært at få adgang til Pi, hvis du vil ændre koden osv. Brug af SSH lader brug oprette forbindelse til Pi og styre den fra en anden computer. Dette er ikke slået til som standard, men vi kan gøre ved simpelthen at lave en mappe kaldet ssh i bootpartitionen på dit SD -kort. Hvis du allerede har logget ind på din Pi, kan du også gøre dette ved at skrive sudo raspi-config i terminalen og navigere til grænsefladeindstillinger> SSH og vælge Ja for at aktivere det.

Nu kan du oprette forbindelse til din Pi på en anden computer. På Mac eller Linux kan du bruge din terminalapplikation, men på de fleste versioner af Windows skal du installere en SSH -klient, f.eks. PuTTY. Opret forbindelse til Pi ved at skrive ssh pi@, hvor værtsnavn erstattes med værtsnavnet på din Pi's IP -adresse. Standardværtsnavnet er raspberrypi.local. Det vil bede dig om en adgangskode, som, hvis du ikke har ændret den endnu, er hindbær.

Det er nødvendigt at installere ting

Sørg først for, at alt er opdateret ved at køre sudo apt update og derefter sudo apt full-upgrade.

For at være sikker på, hvad vi har brug for til at styre GPIO-benene på Pi-typen sudo apt-get install python-rpi.gpio og sudo apt-get install python3-rpi.gpio. Disse burde allerede være installeret på den fulde version af Raspbian.

Koden

Her er koden til download for at få det hele til at fungere. Hvis du bruger et skrivebordsmiljø, skal du indsætte disse i mappen Dokumenter.

Hvis du bruger kommandolinjen i SSH, skal du navigere til din hjemmemappe ved at skrive cd ~/Documents og trykke på enter. Opret en ny fil kaldet test1.py med nano test1.py. Dette åbner nano -teksteditoren, hvor du kan indsætte koden for den downloadede test1.py -fil. CTRL-O, og tryk på enter for at gemme filen og CTRL-X for at afslutte editoren. Gentag processen for de resterende filer.

Trin 3: Installation af LED Strip

Installation af LED Strip
Installation af LED Strip
Installation af LED Strip
Installation af LED Strip

Pop først LED -strimlen i uret for at se, hvor meget du skal bruge, marker denne længde og skær strimlen ved det næste snitpunkt som vist. Det er meget lettere at lodde ledninger til strimlen, før strimlen sætter sig fast. Dette er en ret god guide til, hvordan du gør dette, men hvis du er i tvivl, ville jeg bare øve på loddetilslutningen på det stykke, du lige har skåret din strimmel fra. Lod en tråd til det positive loddepunkt og en ledning til den negative. Sørg for at teste din LED -strimmel, før du sætter den i dit ur.

Da LED -strimlen, jeg brugte, var blevet brugt, før den havde mistet sin selvklæbende bagside, så jeg måtte bruge varm lim til at fastgøre strimlen rundt om kanten af urfælgen. Hvis du har for stor længde, skal du dække det punkt, hvor ledningerne er fastgjort. Du vil måske installere båndet senere, men jeg fandt det lettere at have det gemt i uret.

Trin 4: Styring af LED Strip

Styring af LED Strip
Styring af LED Strip

Tilslutning af LED -båndet

LED -stripen kører på 12V, så den kan ikke drives direkte fra Pi'en. For at styre dem bruger vi en effekttransistor (f.eks. TIP31a) forbundet til Pi som vist ovenfor. Jeg vil anbefale først at kontrollere, at alt fungerer på et brødbræt.

  • Tilslut GPIO 19 til basen via en 1k modstand
  • Emitteren skal tilsluttes GND
  • Tilslut kollektoren til den negative terminal på LED -strimlen
  • Tilslut den positive LED -stripterminal til +12V

Test

I kommandolinjen nagivate til din dokumentmappe (cd ~/Documents) og skriv python test1.py og indtast. Du bør se LED -strimlen stige og falde i lysstyrke. Tryk på CTRL-C for at afslutte programmet. Du kan redigere filen (nano test1.py) for at ændre hastighed og lysstyrker i programmet.

importer RPi. GPIO som GPIOimporttid GPIO.setmode (GPIO. BCM) # Brug BCM pinout GPIO.setwarnings (False) # Ignorer advarsler om ben, der bruges til andre ting ledStripPin = 19 # LED -strimmel drives fra denne pin GPIO.setup (ledStripPin, GPIO. OUT) # Indstil ledStripPin som output pwm = GPIO. PWM (ledStripPin, 100) # PWM på ledStripPin med frekvens 100Hz dutyCycle = 0 # Indledende lysstyrke som procent pwm.start (dutyCycle) prøv: mens True: for dutyCycle i området (0, 101, 1): # Fade up pwm. ChangeDutyCycle (dutyCycle) time.sleep (0,05) for DC i området (95, -1, -1): # Fade down pwm. ChangeDutyCycle (dc) time.sleep (0,05) undtagen KeyboardInterrupt: # Tryk på CTRL-C for at afslutte, og derefter: pwm.stop () # Stop pwm GPIO.cleanup () # Ryd op i GPIO-benene

Trin 5: Gør uret

Gør uret
Gør uret
Gør uret
Gør uret
Gør uret
Gør uret

Skær træstykket til dit ur med forsiden nedad, så det passer ind i dit ur. Jeg fik min til at hvile cirka 3 cm fra forsiden. Bor 12 huller i diameter på dine lysdioder (normalt 3 mm eller 5 mm) med 30 grader afstand fra hinanden. Sand forsiden nedad og påfør en finish efter eget valg. Fra bagsiden placeres lysdioderne, så de peger igennem til forsiden. Jeg brugte varm lim til at holde lysdioderne på plads med den positive terminal (længere ledning) indad. Størrelsen på mit urskive betød, at jeg kunne lodde alle de negative terminaler sammen (se ovenfor), så der var kun brug for en ledning for at forbinde alle 12 lysdioder til GND. Derefter loddes en ledning til hver LED.

Hvis du vil teste dette på et brødbræt, skal du først huske at bruge en modstand (330ohm er temmelig standard) i serie med hver LED, før du slutter den til en af Pi GPIO -benene. Spil med værdien af modstand, du bruger til at få et lysstyrkeniveau, du er tilfreds med. En t-skomager er virkelig nyttig til at bryde Pi's pins til et brødbræt, selvom du skal lodde headerstifterne til dette. Brug test2.py (kør ved hjælp af python test2.py), men sørg for først at redigere programmet og indtaste Pi's GPIO -ben, du har brugt til hver LED.

importer RPi. GPIO som GPIO

importtid GPIO.setmode (GPIO. BCM) # Brug BCM pinout GPIO.setwarnings (Falsk) # Ignorer advarsler om ben, der bruges til andre ting # Udskift en, to, … med tilsvarende pin -nummer hourPin = [en, to, tre, fire, fem, seks, syv, otte, ni, ti, elleve, tolv] # Stifterne, lysdioderne er forbundet til fra 1-12 for i inden for området (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Indstil alle hourPins som output GPIO.output (hourPin , 0) # Sørg for, at alle lysdioder er slukket, prøv: mens True: for i inden for område (0, 12) GPIO.output (hourPin , 1): time.sleep (0,05) for i inden for området (0, 12) GPIO.output (hourPin , 0): time.sleep (0,05) undtagen KeyboardInterrupt: # Tryk på CTRL-C for at afslutte, og derefter: GPIO.cleanup () # Ryd op i GPIO -benene

Trin 6: Tænd for Pi

Drift af Pi
Drift af Pi

Vi har brug for en nem måde at få 5V til Pi Zero på, så vi kan slippe af med mikro -USB -kablet, vi har brugt til at drive det hidtil. Der er en række løsninger, der træder ned 12V til 5V, såsom en LM7805 lineær spændingsregulator, men disse er ikke særlig effektive, så i stedet valgte jeg at bruge den mere effektive justerbare bukkonverter ved hjælp af LM2596 -chippen. NB med dette skal du vride potentiometeret, indtil udgangsspændingen reduceres til 5V efter behov, så du har brug for en eller anden måde at måle spænding.

Det er enkelt at bruge LM2596: Tilslut +12V til IN +, jord til IN-. Pi kan tilsluttes direkte til 5V ved at tilslutte OUT+ til en af Pi's 5V ben, men sørg for at du har ændret udgangsspændingen til 5V, før du gør dette, eller du vil stege din Pi!

Trin 7: Fuldfør kredsløbet og emballagen

Gennemfør kredsløbet og emballagen
Gennemfør kredsløbet og emballagen
Gennemfør kredsløbet og emballagen
Gennemfør kredsløbet og emballagen
Gennemfør kredsløbet og emballagen
Gennemfør kredsløbet og emballagen
Gennemfør kredsløbet og emballagen
Gennemfør kredsløbet og emballagen

Vi har nu dækket alle tre elementer i kredsløbet, der er vist sammen i det samlede kredsløb ovenfor. For at spare plads og få kredsløbet pænere, skal du sætte dit kredsløb på stripkort eller prototypebord. Først loddes de mindste komponenter, modstandene, derefter effekttransistoren, eventuelle stik og til sidst ledningerne. Planlæg dit kredsløb, før du lodder for at sikre, at du har plads til alt.

Jeg tilsluttede alt på et prototype PCB og brugte kvindelige header pins, så Pi kunne montere direkte på PCB. Lysdioderne på urskiven er forbundet via modstande på den ene side af brættet, og jeg har holdt plads på den anden side af brættet til effekttransistoren og fri til alle andre kredsløb, jeg måske vil tilføje senere.

Sæt urskiven på uret, og sørg for, at elektronikken alle passer ind. Alt var en ret stram pasform for mig, så du skal muligvis omarrangere. Tilslut strømforsyningen, og kør test1.py og test2.py fra SSH for at kontrollere, at alt fungerer, før du fastgør bagsiden.

Trin 8: Upload koden + Afslut

Upload koden + Afslut
Upload koden + Afslut
Upload koden + Afslut
Upload koden + Afslut
Upload koden + Afslut
Upload koden + Afslut

Koden

Endelig, hvis du ikke allerede har gjort det, skal du uploade koden og tilpasse den som du vil (ved hjælp af nano filnavn.py). Fordelen ved at oprette forbindelse til Pi over SSH er, at du kan opdatere koden uden at åbne uret.

Disse python -programmer fra trin 2 gør følgende:

  • light_clock_simple.py viser simpelthen timen på lysdioderne og falmer op og ned af LED -strimlen på bestemte tidspunkter
  • light_clock_pwm.py er det samme som ovenfor, men gør det også muligt at reducere lysdiodernes lysstyrke og viser minutterne med en anden lysstyrke end timerne. Du bliver nødt til at lege med begge lysstyrkeniveauer, så kontrasten mellem de to er mærkbar

Disse bør give et solidt grundlag for at tilføje til koden, for eksempel vil du måske tilføje en knap til at slumre lysalarmen.

For at starte programmet, når Pi starter, skal vi tilføje '@reboot nohup python light_clock_pwm.py &' til slutningen af crontab -filen, som kan åbnes fra terminalen med crontab -e. Genstart din Raspberry Pi for at kontrollere, at den fungerer med sudo shutdown -r nu.

Potentielle tilføjelser

Her er nogle ideer om ekstra funktionalitet, der kan tilføjes

  • Tilføjelse af en snooze -knap
  • Tilføjelse af en lampetilstand
  • Opretter forbindelse til IFTTT (f.eks. Kan lyset tænde, når din telefonalarm slukker/blinker, når e -mail modtages)
  • Tilføjelse af kapacitet berøringsevne, dvs. gøre uret til en berøringslampe

Du kan bemærke, når du bruger PWM, at LED'en til tider, især med lavere lysstyrke, blinker lidt. Dette skyldes, at Pi bruger software PWM, så CPU -processer kan påvirke driftscyklussen. At have færre processer, der kører, hjælper med dette, så jeg brugte nedskåret operativsystem Raspbian Lite. Hardware PWM er også tilgængelig på et par stifter, så hvis flimmer viser et problem, kan dette være noget at undersøge.

Jeg håber, at du har fundet denne instruktive informative og enten føler dig inspireret til at cykle et gammelt vækkeur op eller bruge elementer af koden til dit eget projekt.

LED Strip Speed Challenge
LED Strip Speed Challenge
LED Strip Speed Challenge
LED Strip Speed Challenge

Anden præmie i LED Strip Speed Challenge

Anbefalede: