Innehållsförteckning:

Upcycled väckarklocka Smart Light: 8 steg (med bilder)
Upcycled väckarklocka Smart Light: 8 steg (med bilder)

Video: Upcycled väckarklocka Smart Light: 8 steg (med bilder)

Video: Upcycled väckarklocka Smart Light: 8 steg (med bilder)
Video: Многофункциональное беспроводное зарядное устройство с будильником, 15 Вт, RGB-подсветка. 2024, November
Anonim
Upcyklad väckarklocka Smart Light
Upcyklad väckarklocka Smart Light
Upcyklad väckarklocka Smart Light
Upcyklad väckarklocka Smart Light
Upcyklad väckarklocka Smart Light
Upcyklad väckarklocka Smart Light

I detta projekt cyklar jag upp en helt trasig väckarklocka. Urtavlan ersätts av 12 lysdioder, upplysta av en LED -remsa runt klockans kant. De 12 lysdioderna indikerar klockan och LED -remsan är programmerad att fungera som ett larm och når full ljusstyrka vid den inställda tiden. Allt styrs av en Raspberry Pi Zero som möjliggör otaliga integrations- och expansionsmöjligheter som att automatiskt synkronisera ljuslarmet med ditt telefonlarm eller blinka lysdioderna när du får ett e -postmeddelande.

Projektet använder relativt billiga eller återanvända komponenter - det enda jag slutade köpa var spänningsregulatorn. Allt annat råkade jag ha legat omkring, till exempel en avskuren LED-remsa. Denna instruktionsbok guidar dig genom hur jag gav ett nytt liv åt min trasiga klocka och förhoppningsvis kan inspirera dig att cykla upp något eget.

Steg 1: Delar

Delar
Delar
Delar
Delar
Delar
Delar

För att styra allt kommer vi att använda en Raspberry Pi Zero eftersom den är liten, kostar väldigt lite och kan anslutas till WiFi vilket innebär att vi inte behöver en realtidsklocka och därför enkelt kan uppdatera koden på distans från en bärbar dator. Om du inte har en Pi Zero W ansluter vi till ett WiFi -nätverk med en USB WiFi -dongel.

Här är en lista över de delar jag använde men det mesta kan bytas ut mot lämpliga alternativ. Till exempel istället för en Raspberry Pi kan du använda en Arduino med en realtidsklocka för att styra projektet.

Delar som används

  • En gammal väckarklocka
  • 30 cm varmvit LED -remsa
  • 1x Raspberry Pi Zero + micro SD -kort
  • 1x USB WiFi -dongel + mikro USB till USB -omvandlare
  • 12x lysdioder
  • 12x 330ohm motstånd (använd högre om du vill ha dimmer -lysdioder)
  • 1x TIP31a (eller annan npn -effekttransistor eller MOSFET)
  • 1x 1k motstånd
  • 1x LM2596 DC-DC justerbar buck-omvandlare (steg ner 12V för 5V för Raspberry Pi)
  • 1x 12v strömförsörjning (+ sätt att komma in i ditt projekt)
  • 10 cm x 10 cm trä för urtavlan (ska vara tillräckligt tunn för att montera dina lysdioder i)
  • Olika bitar av tråd i olika färger

Användbara saker att ha

  • Lödkolv + löd
  • Varmt lim
  • Multimeter
  • Bakbord
  • Kvinnliga huvudstiften
  • Micro SD -kortläsare eller omvandlare
  • En dator
  • Mini HDMI -adapter + HDMI -skärm om du vill använda Pi: s skrivbordsmiljö

Steg 2: Konfigurera Raspberry Pi

Konfigurera Raspberry Pi
Konfigurera Raspberry Pi
Konfigurera Raspberry Pi
Konfigurera Raspberry Pi

Operativ system

Eftersom Raspberry Pi inte kommer att vara ansluten till en skärm valde jag att använda Raspbian Buster Lite som inte levereras med en stationär miljö. Om du är nyare för Raspberry Pi kanske du vill hålla dig till standard Raspbian Buster som levereras med ett skrivbord. Om du inte är säker på hur du installerar ditt operativsystem är det här en bra resurs. Båda operativsystemen kan laddas ner från Raspberry Pi -webbplatsen.

För tillfället, slå på Pi via dess Micro USB -strömingång. Anslut också USB WiFi -dongeln.

Pratar med Raspberry Pi

När allt är förpackat är det ganska svårt att komma åt Pi om du vill ändra koden etc. Med SSH kan du använda ansluta till Pi och styra den från en annan dator. Detta är inte aktiverat som standard men vi kan göra genom att helt enkelt skapa en mapp som heter ssh i startpartitionen på ditt SD -kort. Om du redan har loggat in på din Pi kan du också göra detta genom att skriva sudo raspi-config i terminalen och navigera till gränssnittsalternativ> SSH och välja Ja för att aktivera det.

Nu kan du ansluta till din Pi på en annan dator. På Mac eller Linux kan du använda din terminalapplikation men i de flesta versioner av Windows måste du installera en SSH -klient som PuTTY. Anslut till Pi genom att skriva ssh pi@ där värdnamnet ersätts med värdnamnet för din Pi: s IP -adress. Standardvärdnamnet är raspberrypi.local. Det kommer att be dig om ett lösenord som, om du inte har ändrat det ännu, är hallon.

Behöver installera saker

Kontrollera först att allt är uppdaterat genom att köra sudo apt update och sedan sudo apt full-upgrade.

För att vara säker på vad vi behöver för att styra GPIO-stiften på Pi-typen sudo apt-get install python-rpi.gpio och sudo apt-get install python3-rpi.gpio. Dessa bör redan installeras på den fullständiga versionen av Raspbian.

Koden

Här är koden att ladda ner för att allt ska fungera. Om du använder en skrivbordsmiljö klistrar du in dessa i mappen Dokument.

Om du använder kommandoraden för SSH navigerar du till din hemmapp genom att skriva cd ~/Documents och trycka på enter. Skapa en ny fil som heter test1.py med nano test1.py. Detta öppnar nano -textredigeraren där du kan klistra in koden för den nedladdade filen test1.py. CTRL-O och tryck på enter för att spara filen och CTRL-X för att avsluta redigeraren. Upprepa processen för de återstående filerna.

Steg 3: Installera LED -remsan

Installera LED -remsan
Installera LED -remsan
Installera LED -remsan
Installera LED -remsan

Poppa först LED -remsan i klockan för att se hur mycket du behöver, markera den här längden och klipp av remsan vid nästa skärningspunkt som visas. Det är mycket lättare att löda trådar till remsan innan remsan fastnar på plats. Det här är en ganska bra guide om hur du gör detta, men om du är osäker skulle jag bara träna på lödfästet på stycket du precis har klippt din remsa från. Löd en tråd till den positiva lödpunkten och en tråd till den negativa. Se till att du testar din LED -remsa fungerar innan du sätter den i klockan.

Eftersom LED -remsan jag använde hade använts innan den hade tappat sin självhäftande baksida så jag var tvungen att använda varmt lim för att fixa remsan runt kanten på klockfältet. Om du har för lång längd, täck den punkt där ledningarna är fästa. Du kanske vill installera remsan senare men jag tyckte att det var lättare att ha den undanstoppad i klockan.

Steg 4: Kontroll av LED -remsan

Styrning av LED -remsan
Styrning av LED -remsan

Anslutning av LED -remsan

LED -remsan går på 12V så den kan inte drivas direkt från Pi. För att styra dem använder vi en effekttransistor (t.ex. TIP31a) ansluten till Pi enligt ovan. Jag skulle rekommendera att först kontrollera att allt fungerar på en brödbräda.

  • Anslut GPIO 19 till basen genom ett 1k -motstånd
  • Sändaren ska vara ansluten till GND
  • Anslut kollektorn till den negativa terminalen på LED -remsan
  • Anslut den positiva LED -stripen till +12V

Testning

I kommandoraden nagivera till din dokumentmapp (cd ~/Documents) och skriv python test1.py och ange. Du bör se LED -remsan öka och minska i ljusstyrka. För att avsluta programmet, tryck på CTRL-C. Du kan redigera filen (nano test1.py) för att ändra hastighet och ljusstyrka i programmet.

importera RPi. GPIO som GPIOimporttid GPIO.setmode (GPIO. BCM) # Använd BCM pinout GPIO.setwarnings (False) # Ignorera varningar om pins som används för andra saker ledStripPin = 19 # LED -remsa drivs från denna pin GPIO.setup (ledStripPin, GPIO. OUT) # Ställ in ledStripPin som utgång pwm = GPIO. PWM (ledStripPin, 100) # PWM på ledStripPin med frekvens 100Hz dutyCycle = 0 # Initial ljusstyrka i procent pwm.start (dutyCycle) försök: medan True: för dutyCycle i intervall (0, 101, 1): # Fade up pwm. ChangeDutyCycle (dutyCycle) time.sleep (0,05) för DC i intervall (95, -1, -1): # Fade down pwm. ChangeDutyCycle (dc) tid.sleep (0,05) utom KeyboardInterrupt: # Tryck på CTRL-C för att avsluta och sedan: pwm.stop () # Stoppa pwm GPIO.cleanup () # Rensa GPIO-stiften

Steg 5: Gör urtavlan

Att göra urtavlan
Att göra urtavlan
Att göra urtavlan
Att göra urtavlan
Att göra urtavlan
Att göra urtavlan

Skär träbiten för din klocka med framsidan nedåt så att den passar in i din klocka. Jag fick mitt att vila cirka 3 cm från framsidan. Borra 12 hål med diametern på dina lysdioder (vanligtvis 3 mm eller 5 mm) med 30 graders avstånd från varandra. Slipa framsidan nedåt och applicera en finish du väljer. Placera lysdioderna från baksidan så att de pekar framåt. Jag använde varmt lim för att hålla lysdioderna på plats med den positiva terminalen (längre tråd) inåt. Storleken på min urtavla innebar att jag kunde löda alla negativa terminaler tillsammans (se ovan) så bara en tråd behövdes för att ansluta alla 12 lysdioder till GND. Löd sedan en tråd till varje lysdiod.

Om du vill testa detta på en brödbräda, kom först ihåg att använda ett motstånd (330ohm är ganska standard) i serie med varje LED innan du ansluter det till en av Pi GPIO -stiften. Lek med värdet av motstånd du använder för att få en ljusstyrka som du är nöjd med. En t-skomakare är verkligen användbar för att bryta ut Pi-stiften till en brödbräda, även om du måste löda huvudstiften för detta. Använd test2.py (kör med python test2.py) men se till att du först redigerar programmet och anger Pi: s GPIO -stift som du har använt för varje lysdiod.

importera RPi. GPIO som GPIO

importtid GPIO.setmode (GPIO. BCM) # Använd BCM pinout GPIO.setwarnings (False) # Ignorera varningar om stift som används för andra saker # Ersätt en, två, … med motsvarande PIN -nummer hourPin = [en, två, tre, fyra, fem, sex, sju, åtta, nio, tio, elva, tolv] # Stiften som lysdioderna är anslutna till från 1-12 för i inom intervall (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Ställ in alla hourPins som utgångar GPIO.output (hourPin , 0) # Se till att alla lysdioder är släckta försök: medan True: för i inom intervall (0, 12) GPIO.output (hourPin , 1): time.sleep (0,05) för i inom intervallet (0, 12) GPIO.output (hourPin , 0): time.sleep (0,05) utom KeyboardInterrupt: # Tryck på CTRL-C för att avsluta, och sedan: GPIO.cleanup () # Rensa GPIO -stiften

Steg 6: Strömförsörjning av Pi

Driva Pi
Driva Pi

Vi behöver ett enkelt sätt att få 5V till Pi Zero så att vi kan bli av med mikro -USB -kabeln som vi har använt för att driva den hittills. Det finns ett antal lösningar som går ner 12V till 5V, till exempel en LM7805 linjär spänningsregulator, men dessa är inte särskilt effektiva, så istället valde jag att använda den mer effektiva justerbara buck -omvandlaren med LM2596 -chipet. OBS med detta måste du vrida potentiometern tills utspänningen reduceras till 5V efter behov så du behöver ett sätt att mäta spänning.

Att använda LM2596 är enkelt: anslut +12V till IN +, jordat till IN-. Pi kan anslutas direkt till 5V genom att ansluta OUT+ till en av Pi: s 5V -stift men se till att du har ändrat utspänningen till 5V innan du gör detta eller så steker du din Pi!

Steg 7: Slutför kretsen och förpackningen

Slutför kretsen och förpackningen
Slutför kretsen och förpackningen
Slutför kretsen och förpackningen
Slutför kretsen och förpackningen
Slutför kretsen och förpackningen
Slutför kretsen och förpackningen
Slutför kretsen och förpackningen
Slutför kretsen och förpackningen

Vi har nu täckt alla tre elementen i kretsen som visas tillsammans i den övergripande kretsen ovan. För att spara utrymme och göra kretsen snyggare sätter du kretsen på bandplatta eller prototypkort. Löd först de minsta komponenterna, motstånden, sedan effekttransistorn, eventuella kontakter och slutligen ledningarna. Planera din krets innan du lödar för att se till att du har plats för allt.

Jag kopplade upp allt på ett prototypande kretskort och använde kvinnliga huvudstiften så att Pi kunde montera direkt på kretskortet. Lysdioderna på urtavlan är anslutna genom motstånd på ena sidan av kortet och jag har hållit plats på den andra sidan av kortet för effekttransistorn och fri för alla andra kretsar som jag kanske vill lägga till senare.

Fäst urtavlan på klockan och se till att elektroniken passar in. Allt passade ganska tätt för mig så du kan behöva göra om. Anslut strömförsörjningen och kör test1.py och test2.py från SSH för att kontrollera att allt fungerar innan du sätter på baksidan.

Steg 8: Ladda upp koden + Slutför

Ladda upp koden + slutför
Ladda upp koden + slutför
Ladda upp koden + slutför
Ladda upp koden + slutför
Ladda upp koden + slutför
Ladda upp koden + slutför

Koden

Slutligen, om du inte redan har gjort det, ladda upp koden och anpassa den som du vill (med nano filnamn.py). Fördelen med att ansluta till Pi över SSH är att du kan uppdatera koden utan att öppna klockan.

Dessa pythonprogram från steg 2 gör följande:

  • light_clock_simple.py visar helt enkelt timmen på lysdioderna och bleknar upp och ner på LED -remsan vid vissa tidpunkter
  • light_clock_pwm.py är detsamma som ovan men gör det också möjligt att minska ljusstyrkan på lysdioderna och visar minuter med en annan ljusstyrka än timmarna. Du måste leka med båda ljusstyrkan så att kontrasten mellan de två märks

Dessa bör ge en solid grund för att lägga till koden, till exempel kan du lägga till en knapp för att snooze ljuslarmet.

För att starta programmet när Pi startar måste vi lägga till '@reboot nohup python light_clock_pwm.py &' i slutet av crontab -filen som kan öppnas från terminalen med crontab -e. Starta om din Raspberry Pi för att kontrollera att den fungerar med sudo shutdown -r nu.

Potentiella tillägg

Här är några idéer om extra funktioner som kan läggas till

  • Lägger till en snooze -knapp
  • Lägger till ett lampläge
  • Ansluter till IFTTT (t.ex. lampan kan tändas när telefonlarmet slocknar/blinkar när e -post tas emot)
  • Lägga till kapacitet beröring kapacitet dvs göra klockan till en peklampa

Du kanske märker när du använder PWM att LED -lampan ibland, särskilt med lägre ljusstyrka, blinkar lite. Detta beror på att Pi använder programvara PWM så att CPU -processer kan påverka arbetscykeln. Att ha färre processer som kör hjälp med detta så jag använde avklippt operativsystem Raspbian Lite. Hårdvara PWM finns också på några stift så om flimmer visar ett problem kan det vara något att titta på.

Jag hoppas att du har hittat den här instruktiva informationen och antingen känner dig inspirerad att cykla upp en gammal väckarklocka eller använda delar av koden för ditt eget projekt.

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

Andra pris i LED Strip Speed Challenge

Rekommenderad: