Innholdsfortegnelse:

Upcycled Alarm Clock Smart Light: 8 trinn (med bilder)
Upcycled Alarm Clock Smart Light: 8 trinn (med bilder)

Video: Upcycled Alarm Clock Smart Light: 8 trinn (med bilder)

Video: Upcycled Alarm Clock Smart Light: 8 trinn (med bilder)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Juli
Anonim
Upcycled vekkerklokke smart lys
Upcycled vekkerklokke smart lys
Upcycled vekkerklokke smart lys
Upcycled vekkerklokke smart lys
Smart lys fra vekkerklokken
Smart lys fra vekkerklokken

I dette prosjektet sykler jeg en fullstendig ødelagt oppvekker. Urskiven erstattes av 12 lysdioder, opplyst av en LED -stripe rundt klokkens kant. De 12 lysdiodene forteller tiden og LED -stripen er programmert til å fungere som en alarm, og når full lysstyrke på det angitte tidspunktet. Alt styres av en Raspberry Pi Zero som muliggjør utallige integrerings- og utvidelsesmuligheter, for eksempel automatisk synkronisering av lysalarmen med telefonalarmen eller blinkende lysdioder når du mottar en e -post.

Prosjektet bruker relativt billige eller gjenbrukte komponenter - det eneste jeg endte med å kjøpe var spenningsregulatoren. Alt annet hadde jeg tilfeldigvis liggende, for eksempel en avskåret LED-stripe. Denne instruksen vil guide deg gjennom hvordan jeg ga et nytt liv til min ødelagte klokke, og forhåpentligvis kan inspirere deg til å sykle noe eget.

Trinn 1: Deler

Deler
Deler
Deler
Deler
Deler
Deler

For å kontrollere alt kommer vi til å bruke en Raspberry Pi Zero da den er liten, koster veldig lite og kan kobles til WiFi, noe som betyr at vi ikke trenger den i sanntidsklokke og derfor enkelt kan oppdatere koden eksternt fra en bærbar datamaskin. Med mindre du har en Pi Zero W, kobler vi til et WiFi -nettverk ved hjelp av en USB WiFi -dongle.

Her er en liste over delene jeg brukte, men det meste kan byttes ut for passende alternativer. For eksempel i stedet for en Raspberry Pi kan du bruke en Arduino med en sanntidsklokke for å kontrollere prosjektet.

Deler brukt

  • En gammel vekkerklokke
  • 30 cm varmhvit LED -stripe
  • 1x Raspberry Pi Zero + micro SD -kort
  • 1x USB WiFi -dongle + mikro USB til USB -omformer
  • 12x lysdioder
  • 12x 330ohm motstander (bruk høyere hvis du vil ha lysere lysdioder)
  • 1x TIP31a (eller annen npn -effekttransistor eller MOSFET)
  • 1x 1k motstand
  • 1x LM2596 DC-DC justerbar bukkonverter (ned 12V for 5V for Raspberry Pi)
  • 1x 12v strømforsyning (+ måte å komme inn på prosjektet ditt)
  • 10 cm x 10 cm tre til urskiven (skal være passe tynn for å montere lysdiodene dine i)
  • Ulike biter av tråd i forskjellige farger

Nyttige ting å ha

  • Loddejern + loddetinn
  • Varmt lim
  • Multimeter
  • Brødbrett
  • Kvinne header pins
  • Micro SD -kortleser eller omformer
  • En datamaskin
  • Mini HDMI -adapter + HDMI -skjerm hvis du vil bruke Pi -skrivebordsmiljøet

Trinn 2: Konfigurere Raspberry Pi

Sette opp Raspberry Pi
Sette opp Raspberry Pi
Sette opp Raspberry Pi
Sette opp Raspberry Pi

Operativsystem

Fordi Raspberry Pi ikke vil være koblet til en skjerm, valgte jeg å bruke Raspbian Buster Lite som ikke kommer med et skrivebordsmiljø. Hvis du er nyere for Raspberry Pi, kan det være lurt å holde deg til standard Raspbian Buster som følger med et skrivebord. Hvis du ikke er sikker på hvordan du installerer operativsystemet, er dette en flott ressurs. Begge operativsystemene kan lastes ned fra Raspberry Pi -nettstedet.

For øyeblikket, slå på Pi via mikro -USB -inngangen. Koble også til USB WiFi -dongelen.

Snakker med Raspberry Pi

Når alt er pakket er det ganske vanskelig å få tilgang til Pi hvis du vil endre koden osv. Ved å bruke SSH kan du bruke koble til Pi og styre den fra en annen datamaskin. Dette er ikke slått på som standard, men vi kan gjøre det ved å lage en mappe som heter ssh i oppstartspartisjonen på SD -kortet. Hvis du allerede har logget deg på Pi, kan du også gjøre dette ved å skrive sudo raspi-config i Terminal og navigere til Grensesnittalternativer> SSH og velge Ja for å aktivere den.

Nå kan du koble til Pi på en annen datamaskin. På Mac eller Linux kan du bruke terminalprogrammet, men på de fleste versjoner av Windows må du installere en SSH -klient som PuTTY. Koble til Pi ved å skrive ssh pi@ der vertsnavnet er erstattet med vertsnavnet til IP -adressen til Pi. Standard vertsnavn er raspberrypi.local. Det vil be deg om et passord som, hvis du ikke har endret det ennå, er bringebær.

Det er nødvendig å installere ting

Sørg først for at alt er oppdatert ved å kjøre sudo apt update og deretter sudo apt full-upgrade.

For å være sikker på hva vi trenger for å kontrollere GPIO-pinnene på Pi-typen sudo apt-get install python-rpi.gpio og sudo apt-get install python3-rpi.gpio. Disse bør allerede være installert på fullversjonen av Raspbian.

Koden

Her er koden du kan laste ned for å få alt til å fungere. Hvis du bruker et skrivebordsmiljø, limer du dem inn i Dokumenter -mappen.

Hvis du bruker kommandolinjen til SSH, navigerer du til hjemmemappen ved å skrive cd ~/Documents og trykke enter. Lag en ny fil som heter test1.py med nano test1.py. Dette åpner nano -tekstredigeringsprogrammet der du kan lime inn koden til den nedlastede test1.py -filen. CTRL-O og trykk enter for å lagre filen og CTRL-X for å avslutte redaktøren. Gjenta prosessen for de resterende filene.

Trinn 3: Installere LED -stripen

Installere LED -stripen
Installere LED -stripen
Installere LED -stripen
Installere LED -stripen

Slå først LED -stripen i klokken for å se hvor mye du trenger, merk denne lengden og klipp av stripen ved neste skjæringspunkt som vist. Det er mye lettere å lodde ledninger til stripen før stripen setter seg fast. Dette er en ganske god guide til hvordan du gjør dette, men hvis du er usikker, ville jeg bare øve på loddetinnet på stykket du nettopp har klippet stripen din fra. Lodd en ledning til det positive loddepunktet og en ledning til den negative. Sørg for at du tester LED -stripen din før du setter den i klokken.

Siden LED -stripen jeg brukte hadde blitt brukt før den hadde mistet sin selvklebende bakside, så jeg måtte bruke varmt lim for å fikse stripen rundt kanten på klokkeranden. Hvis du har for lang lengde, dekker du punktet der ledningene er festet. Det kan være lurt å installere stripen senere, men jeg fant det lettere å ha den gjemt i klokken.

Trinn 4: Kontroll av LED -stripen

Kontroll av LED -stripen
Kontroll av LED -stripen

Koble til LED -stripen

LED -stripen går på 12V, så den kan ikke drives fra Pi direkte. For å kontrollere dem bruker vi en effekttransistor (f.eks. TIP31a) koblet til Pi som vist ovenfor. Jeg vil anbefale å først sjekke at alt fungerer på et brødbrett.

  • Koble GPIO 19 til basen gjennom en 1k motstand
  • Emitteren skal være koblet til GND
  • Koble kollektoren til den negative terminalen på LED -stripen
  • Koble den positive LED -stripen til +12V

Testing

I kommandolinjen, naviger til dokumentmappen (cd ~/Documents) og skriv python test1.py og skriv inn. Du bør se LED -stripen øke og redusere i lysstyrke. Trykk på CTRL-C for å avslutte programmet. Du kan redigere filen (nano test1.py) for å endre hastigheten og lysstyrken i programmet.

importer RPi. GPIO som GPIOimporttid GPIO.setmode (GPIO. BCM) # Bruk BCM pinout GPIO.setwarnings (False) # Ignorer advarsler om pins som brukes til andre ting ledStripPin = 19 # LED -stripe drives fra denne pin GPIO.setup (ledStripPin, GPIO. OUT) # Sett ledStripPin som utgang pwm = GPIO. PWM (ledStripPin, 100) # PWM på ledStripPin med frekvens 100Hz dutyCycle = 0 # Innledende lysstyrke som prosent 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) unntatt KeyboardInterrupt: # Trykk CTRL-C for å avslutte, og deretter: pwm.stop () # Stopp pwm GPIO.cleanup () # Rydd opp GPIO-pinnene

Trinn 5: Lag urskiven

Gjør uret
Gjør uret
Gjør uret
Gjør uret
Gjør uret
Gjør uret

Klipp treverket for klokken med forsiden ned i størrelse slik at det passer inn i klokken. Jeg fikk min til å hvile omtrent 3 cm fra forsiden. Bor 12 hull med diameteren på lysdiodene dine (vanligvis 3 mm eller 5 mm) 30 grader fra hverandre. Sand forsiden ned og påfør en finish du ønsker. Fra baksiden plasserer du lysdiodene slik at de peker gjennom til forsiden. Jeg brukte varmt lim for å holde lysdiodene på plass med den positive terminalen (lengre ledning) vendt innover. Størrelsen på klokkeflaten min betydde at jeg kunne lodde alle de negative terminalene sammen (se ovenfor), så bare en ledning var nødvendig for å koble alle 12 lysdiodene til GND. Deretter loddes en ledning til hver LED.

Hvis du vil teste dette på et brødbrett, må du først huske å bruke en motstand (330ohm er ganske standard) i serie med hver LED før du kobler den til en av Pi GPIO -pinnene. Spill med verdien av motstanden du bruker for å få et lysstyrkenivå du er fornøyd med. En t-skomaker er veldig nyttig for å bryte ut Pi-pinnene til et brødbrett, selv om du må lodde toppnålene for dette. Bruk test2.py (kjør med python test2.py), men sørg for at du først redigerer programmet og skriver inn Pi's GPIO -pinner du har brukt for hver LED.

importer RPi. GPIO som GPIO

importtid GPIO.setmode (GPIO. BCM) # Bruk BCM pinout GPIO.setwarnings (False) # Ignorer advarsler om pins som brukes til andre ting # Erstatt en, to, … med tilsvarende pin -nummer hourPin = [en, to, tre, fire, fem, seks, syv, åtte, ni, ti, elleve, tolv] # Pinnene lysdiodene er koblet til fra 1-12 for i i området (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Sett alle hourPins som utganger GPIO.output (hourPin , 0) # Sørg for at alle lysdioder er slukket, prøv: while True: for i in range (0, 12) GPIO.output (hourPin , 1): time.sleep (0,05) for i i området (0, 12) GPIO.output (hourPin , 0): time.sleep (0,05) unntatt KeyboardInterrupt: # Trykk CTRL-C for å avslutte, og deretter: GPIO.cleanup () # Rydd opp GPIO -pinnene

Trinn 6: Slå på Pi

Drar Pi
Drar Pi

Vi trenger en enkel måte å få 5V til Pi Zero, slik at vi kan bli kvitt mikro -USB -kabelen vi har brukt for å drive den så langt. Det er en rekke løsninger som går ned 12V til 5V, for eksempel en LM7805 lineær spenningsregulator, men disse er ikke veldig effektive, så i stedet valgte jeg å bruke den mer effektive justerbare bukkomformeren ved hjelp av LM2596 -brikken. NB med dette må du vri potensiometeret til utgangsspenningen reduseres til 5V etter behov, så du trenger en måte å måle spenning på.

Å bruke LM2596 er enkelt: koble +12V til IN +, jordet til IN-. Pi kan kobles direkte til 5V ved å koble OUT+ til en av Pi's 5V pins, men sørg for at du har endret utgangsspenningen til 5V før du gjør dette, ellers steker du Pi!

Trinn 7: Fullfør kretsen og emballasjen

Fullfør kretsen og emballasjen
Fullfør kretsen og emballasjen
Fullfør kretsen og emballasjen
Fullfør kretsen og emballasjen
Fullfør kretsen og emballasjen
Fullfør kretsen og emballasjen
Fullfør kretsen og emballasjen
Fullfør kretsen og emballasjen

Vi har nå dekket alle tre elementene i kretsen som er vist sammen i den totale kretsen ovenfor. For å spare plass og gjøre kretsen penere, sett kretsen på stripebrett eller prototypekort. Først loddes de minste komponentene, motstandene, deretter effekttransistoren, eventuelle kontakter og til slutt ledningene. Planlegg kretsen din før du lodder for å sikre at du har plass til alt.

Jeg koblet alt sammen på en prototypende kretskort og brukte kvinnelige toppnål, slik at Pi kunne festes direkte på kretskortet. Lysdiodene på urskiven er koblet gjennom motstander på den ene siden av brettet, og jeg har beholdt plass på den andre siden av brettet for effekttransistoren og ledig for andre kretser jeg kanskje vil legge til senere.

Fest urskiven til klokken og sørg for at elektronikken passer inn. Alt passet ganske godt for meg, så du må kanskje omorganisere. Koble til strømforsyningen og kjør test1.py og test2.py fra SSH for å kontrollere at alt fungerer før du fester baksiden.

Trinn 8: Last opp koden + Fullfør

Last opp koden + Fullfør
Last opp koden + Fullfør
Last opp koden + Fullfør
Last opp koden + Fullfør
Last opp koden + Fullfør
Last opp koden + Fullfør

Koden

Til slutt, hvis du ikke allerede har gjort det, kan du laste opp koden og tilpasse den som du vil (ved hjelp av nano filnavn.py). Fordelen med å koble til Pi over SSH er at du kan oppdatere koden uten å åpne klokken.

Disse python -programmene fra trinn 2 gjør følgende:

  • light_clock_simple.py viser ganske enkelt timen på lysdiodene og blekner opp og ned LED -stripen til bestemte tider
  • light_clock_pwm.py er det samme som ovenfor, men lar også lysstyrken til lysdiodene reduseres og viser minuttene med en annen lysstyrke enn timene. Du må leke med lysstyrkenivåene til begge, så kontrasten mellom de to er merkbar

Disse bør gi et solid grunnlag for å legge til koden, for eksempel vil du kanskje legge til en knapp for å slumre lysalarmen.

For å starte programmet når Pi starter, må vi legge til '@reboot nohup python light_clock_pwm.py &' til enden av crontab -filen som kan åpnes fra terminalen med crontab -e. Start Raspberry Pi på nytt for å sjekke at den fungerer med sudo shutdown -r nå.

Potensielle tillegg

Her er noen ideer om ekstra funksjonalitet som kan legges til

  • Legger til en snooze -knapp
  • Legger til en lampemodus
  • Koble til IFTTT (f.eks. Kan lyset tennes når telefonalarmen går/blinker når e -post mottas)
  • Å legge til berøringskapasitet, dvs. gjøre klokken til en berøringslampe

Du kan merke når du bruker PWM at LED -lampene til tider, spesielt med lavere lysstyrke, blinker litt. Dette er fordi Pi bruker programvare PWM, slik at CPU -prosesser kan påvirke driftssyklusen. Å ha færre prosesser som kjører hjelp med dette, så jeg brukte renset operativsystem Raspbian Lite. Hardware PWM er også tilgjengelig på noen få pins, så hvis flimmer viser et problem, kan dette være noe å se på.

Jeg håper du har funnet denne lærerike informative og enten føler deg inspirert til å sykle en gammel vekkerklokke eller bruke elementer av koden til ditt eget prosjekt.

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

Andre premie i LED Strip Speed Challenge

Anbefalt: