Cuprins:
- Pasul 1: Piese
- Pasul 2: Configurarea Raspberry Pi
- Pasul 3: Instalarea benzii LED
- Pasul 4: Controlul benzii LED
- Pasul 5: Realizarea feței ceasului
- Pasul 6: Alimentarea Pi
- Pasul 7: Finalizați circuitul și ambalarea
- Pasul 8: Încărcați codul + Finalizare
Video: Lumina inteligentă a ceasului cu alarmă reciclat: 8 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
În acest proiect, am reciclat un ceas cu alarmă de lichidare complet rupt. Fața ceasului este înlocuită de 12 LED-uri, iluminate de o bandă LED în jurul marginii ceasului. Cele 12 LED-uri indică ora și banda LED este programată să acționeze ca o alarmă, ajungând la luminozitate maximă la ora setată. Totul este controlat de un Raspberry Pi Zero care permite nenumărate posibilități de integrare și extindere, cum ar fi sincronizarea automată a alarmei luminoase cu alarma telefonului sau intermitentul LED-urilor atunci când primiți un e-mail.
Proiectul folosește componente relativ ieftine sau refolosite - singurul lucru pe care am ajuns să-l cumpăr a fost regulatorul de tensiune. Orice altceva mi s-a întâmplat să am întins în jur, cum ar fi o decupare a benzii LED. Acest Instructable vă va ghida prin modul în care am dat o nouă viață ceasului meu rupt și, sperăm, vă poate inspira să faceți ceva propriu.
Pasul 1: Piese
Pentru a controla totul, vom folosi un Raspberry Pi Zero deoarece este mic, costă foarte puțin și poate fi conectat la WiFi, ceea ce înseamnă că nu avem nevoie de ceas în timp real și, prin urmare, putem actualiza cu ușurință codul de la distanță de pe un laptop. Dacă nu aveți un Pi Zero W, ne vom conecta la o rețea WiFi folosind un dongle USB WiFi.
Iată o listă a pieselor pe care le-am folosit, dar cele mai multe lucruri pot fi schimbate pentru alternative adecvate. De exemplu, în locul unui Raspberry Pi, puteți utiliza un Arduino cu un ceas în timp real pentru a controla proiectul.
Piese utilizate
- Un vechi ceas cu alarmă
- 30cm de bandă LED albă caldă
- 1x card Raspberry Pi Zero + micro SD
- 1 x USB WiFi dongle + micro USB la USB convertor
- 12x LED-uri
- 12x rezistențe 330ohm (utilizați mai mare dacă doriți LED-uri mai slabe)
- 1x TIP31a (sau alt tranzistor de putere npn sau MOSFET)
- 1x rezistor 1k
- 1x LM2596 convertor DC-DC reglabil (redus 12V pentru 5V pentru Raspberry Pi)
- 1x sursă de alimentare 12v (+ modalitate de a intra în proiect)
- 10cm x 10cm lemn pentru fața ceasului (ar trebui să fie suficient de subțire pentru a vă monta LED-urile)
- Diverse bucăți de sârmă de culoare diferită
Lucruri utile de avut
- Fier de lipit + lipit
- Lipici fierbinte
- Multimetru
- Pană de pâine
- Pinii antetului feminin
- Cititor sau convertor de carduri Micro SD
- Un calculator
- Mini adaptor HDMI + ecran HDMI dacă doriți să utilizați mediul desktop Pi
Pasul 2: Configurarea Raspberry Pi
Sistem de operare
Deoarece Raspberry Pi nu va fi conectat la un ecran, am ales să folosesc Raspbian Buster Lite care nu vine cu un mediu desktop. Dacă sunteți mai nou în Raspberry Pi, vă recomandăm să respectați Raspbian Buster standard care vine cu un desktop. Dacă nu sunteți sigur cum să instalați sistemul de operare, aceasta este o resursă excelentă. Ambele sisteme de operare pot fi descărcate de pe site-ul web Raspberry Pi.
Pentru moment, alimentați Pi prin intrarea sa de alimentare Micro USB. Conectați și dongle-ul USB WiFi.
Vorbind cu Raspberry Pi
Odată ce totul este împachetat, este destul de greu să accesați Pi-ul dacă doriți să schimbați codul etc. Utilizarea SSH vă permite să vă conectați la Pi și să-l controlați de pe alt computer. Acest lucru nu este activat în mod implicit, dar o putem face prin simpla realizare a unui folder numit ssh în partiția de boot a cardului SD. Dacă v-ați conectat deja la Pi, puteți face acest lucru tastând sudo raspi-config în Terminal și navigând la Opțiuni de interfațare> SSH și alegând Da pentru a o activa.
Acum vă puteți conecta la Pi pe un alt computer. Pe Mac sau Linux puteți utiliza aplicația terminală, dar pe majoritatea versiunilor de Windows va trebui să instalați un client SSH, cum ar fi PuTTY. Conectați-vă la Pi tastând ssh pi @ unde este hostname înlocuiește cu numele de gazdă al adresei IP a Pi. Numele de gazdă implicit este raspberrypi.local. Vă va cere o parolă care, dacă nu ați schimbat-o încă, este zmeură.
Instalarea lucrurilor necesare
Mai întâi asigurați-vă că totul este actualizat executând sudo apt update și apoi sudo apt full-upgrade.
Pentru a ne asigura că trebuie să controlăm pinii GPIO de pe tipul sudo apt-get install python-rpi.gpio și sudo apt-get install python3-rpi.gpio. Acestea ar trebui să fie deja instalate pe versiunea completă a Raspbian.
Codul
Iată codul de descărcat pentru ca totul să funcționeze. Dacă utilizați un mediu desktop, lipiți-le în folderul Documente.
Dacă utilizați linia de comandă a SSH, navigați la folderul de acasă tastând cd ~ / Documents și apăsând Enter. Creați un fișier nou numit test1.py cu nano test1.py. Aceasta va deschide editorul de text nano unde puteți lipi codul fișierului descărcat test1.py. CTRL-O și apăsați Enter pentru a salva fișierul și CTRL-X pentru a părăsi editorul. Repetați procesul pentru fișierele rămase.
Pasul 3: Instalarea benzii LED
Mai întâi introduceți banda LED în ceas pentru a vedea cât de mult veți avea nevoie, marcați această lungime și tăiați banda la următorul punct de tăiere, așa cum se arată. Este mult mai ușor să lipiți firele pe bandă înainte ca banda să se blocheze în loc. Acesta este un ghid destul de bun despre cum să faceți acest lucru, dar dacă nu sunteți sigur, aș practica doar îmbinarea lipită pe piesa din care tocmai v-ați tăiat banda. Lipiți un fir până la punctul de lipire pozitiv și un fir la negativ. Asigurați-vă că testați banda LED funcționează înainte de a o lipi în ceas.
Deoarece banda LED pe care am folosit-o a fost folosită înainte de a-și pierde suportul autoadeziv, a trebuit să folosesc adeziv fierbinte pentru a fixa banda în jurul marginii jantei ceasului. Dacă aveți o lungime excesivă, acoperiți punctul în care sunt atașate firele. Poate doriți să instalați banda mai târziu, dar mi s-a părut mai ușor să o ascundeți în ceas.
Pasul 4: Controlul benzii LED
Conectarea benzii LED
Banda LED funcționează pe 12V, deci nu poate fi alimentată direct de la Pi. Pentru a le controla, vom folosi un tranzistor de putere (de exemplu, TIP31a) conectat până la Pi așa cum se arată mai sus. Aș recomanda mai întâi să verificați dacă toate acestea funcționează pe o placă de calcul.
- Conectați GPIO 19 la bază printr-un rezistor de 1k
- Emițătorul ar trebui să fie conectat la GND
- Conectați colectorul la borna negativă a benzii LED
- Conectați borna pozitivă a benzii LED la + 12V
Testarea
În linia de comandă accesați folderul de documente (cd ~ / Documents) și tastați python test1.py și introduceți. Ar trebui să vedeți banda LED crescând și scăzând în luminozitate. Pentru a părăsi programul, apăsați CTRL-C. Puteți edita fișierul (nano test1.py) pentru a modifica viteza și luminozitatea din program.
import RPi. GPIO ca GPIOimport timp GPIO.setmode (GPIO. BCM) # Utilizați pinout-ul BCM GPIO.setwarnings (Fals) # Ignorați avertismentele despre pinii utilizați pentru alte lucruri ledStripPin = 19 # LED strip este condus de la acest pin GPIO.setup (ledStripPin, GPIO. OUT) # Setați ledStripPin ca ieșire pwm = GPIO. PWM (ledStripPin, 100) # PWM pe ledStripPin cu frecvență 100Hz dutyCycle = 0 # Luminozitate inițială ca procent pwm.start (dutyCycle) încercați: în timp ce True: pentru dutyCycle în intervalul (0, 101, 1): # Fade up pwm. ChangeDutyCycle (dutyCycle) time.sleep (0.05) pentru dc în intervalul (95, -1, -1): # Fade down pwm. ChangeDutyCycle (dc) time.sleep (0.05), cu excepția KeyboardInterrupt: # Apăsați CTRL-C pentru a ieși, apoi: pwm.stop () # Opriți pwm GPIO.cleanup () # Curățați pinii GPIO
Pasul 5: Realizarea feței ceasului
Tăiați bucata de lemn pentru ceas cu fața în jos pentru a se potrivi în ceas. Am făcut-o pe a mea să se odihnească la aproximativ 3cm de față. Găuriți 12 găuri cu diametrul LED-urilor dvs. (de obicei 3mm sau 5mm) la 30 de grade unul față de celălalt. Șlefuiți fața cu fața în jos și aplicați un finisaj la alegere. Din partea din spate așezați LED-urile astfel încât să indice spre față. Am folosit adeziv fierbinte pentru a menține LED-urile în poziție cu terminalul pozitiv (fir mai lung) orientat spre interior. Dimensiunea feței mele de ceas însemna că aș putea lipi toate terminalele negative împreună (vezi mai sus), astfel încât a fost nevoie de un singur fir pentru a conecta toate cele 12 LED-uri la GND. Apoi, lipiți un fir la fiecare LED.
Dacă doriți să testați acest lucru pe o placă de reținere, mai întâi nu uitați să utilizați un rezistor (330ohm este destul de standard) în serie cu fiecare LED înainte de al conecta la unul dintre pinii GPIO Pi. Joacă-te cu valoarea rezistenței pe care o folosești pentru a obține un nivel de luminozitate cu care ești mulțumit. Un t-cobbler este cu adevărat util pentru a rupe pinii Pi într-o placă de rulare, deși va trebui să lipiți pinii antetului pentru acest lucru. Utilizați test2.py (rulați utilizând python test2.py), dar asigurați-vă că editați mai întâi programul și introduceți pinii GPIO ai lui Pi pe care i-ați folosit pentru fiecare LED.
importați RPi. GPIO ca GPIO
timp de import GPIO.setmode (GPIO. BCM) # Folosiți pinout-ul BCM GPIO.setwarnings (Fals) # Ignorați avertismentele despre pinii folosiți pentru alte lucruri # Înlocuiți unul, doi, … cu numărul de pin corespunzător hourPin = [unul, doi, trei, patru, cinci, șase, șapte, opt, nouă, zece, unsprezece, doisprezece] # Pinii la care LED-urile sunt conectate de la 1-12 pentru i în intervalul (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Setați toate hourPins ca ieșiri GPIO.output (hourPin , 0) # Asigurați-vă că toate LED-urile sunt oprite încercați: în timp ce True: pentru i în intervalul (0, 12) GPIO.output (hourPin , 1): time.sleep (0.05) pentru i în intervalul (0, 12) GPIO.output (hourPin , 0): time.sleep (0.05) cu excepția KeyboardInterrupt: # Apăsați CTRL-C pentru a ieși și apoi: GPIO.cleanup () # Curățați pinii GPIO
Pasul 6: Alimentarea Pi
Avem nevoie de o modalitate ușoară de a duce 5V la Pi Zero, astfel încât să putem scăpa de cablul micro USB pe care l-am folosit pentru al alimenta până acum. Există o serie de soluții care scad 12V la 5V, cum ar fi un regulator de tensiune liniar LM7805, dar acestea nu sunt foarte eficiente, așa că am ales să folosesc convertorul reglabil mai eficient cu ajutorul cipului LM2596. NB Cu aceasta va trebui să răsuciți potențiometrul până când tensiunea de ieșire este redusă la 5V, după cum este necesar, astfel încât veți avea nevoie de o modalitate de măsurare a tensiunii.
Utilizarea LM2596 este simplă: conectați + 12V la IN +, împământare la IN-. Pi poate fi conectat direct la 5V prin conectarea OUT + la unul dintre pinii 5V ai lui Pi, dar asigurați-vă că ați schimbat tensiunea de ieșire la 5V înainte de a face acest lucru sau vă veți prăji Pi-ul!
Pasul 7: Finalizați circuitul și ambalarea
Acum am acoperit toate cele trei elemente ale circuitului care sunt prezentate împreună în circuitul general de mai sus. Pentru a economisi spațiu și a face ca circuitul să fie mai curat, puneți-vă circuitul pe placa de benzi sau pe placa prototip. Mai întâi lipiți cele mai mici componente, rezistențele, apoi tranzistorul de putere, orice conectori și, în cele din urmă, firele. Planificați-vă circuitul înainte de a lipi pentru a vă asigura că aveți spațiu pentru toate.
Am conectat totul pe un PCB de prototipare și am folosit știfturi feminine, astfel încât Pi să se poată monta direct pe PCB. LED-urile de pe fața ceasului sunt conectate prin rezistențe pe o parte a plăcii și am păstrat spațiu pe cealaltă parte a plăcii pentru tranzistorul de putere și liber pentru orice alte circuite pe care aș dori să le adaug mai târziu.
Atașați fața ceasului la ceas și asigurați-vă că toate componentele electronice se potrivesc. Totul a fost destul de strâns pentru mine, așa că este posibil să trebuiască să faceți o rearanjare. Conectați sursa de alimentare și rulați test1.py și test2.py de la SSH pentru a verifica dacă totul funcționează înainte de a atașa partea din spate.
Pasul 8: Încărcați codul + Finalizare
Codul
În cele din urmă, dacă nu ați făcut-o deja, încărcați codul și adaptați-l după cum doriți (folosind nano filename.py). Avantajul conectării la Pi prin SSH este că puteți actualiza codul fără a deschide ceasul.
Aceste programe python de la Pasul 2 fac următoarele:
- light_clock_simple.py afișează pur și simplu ora pe LED-uri și se estompează în sus și în jos pe banda LED la anumite ore
- light_clock_pwm.py este același ca mai sus, dar permite și reducerea luminozității LED-urilor și afișează minutele la o luminozitate diferită de cea a orelor. Va trebui să vă jucați cu nivelurile de luminozitate ale ambelor, astfel încât contrastul dintre cele două este vizibil
Acestea ar trebui să ofere o bază solidă pentru adăugarea la cod, de exemplu, poate doriți să adăugați un buton pentru a amâna alarma luminii.
Pentru a lansa programul când boot-ul Pi trebuie să adăugăm „@reboot nohup python light_clock_pwm.py &” la sfârșitul fișierului crontab care poate fi deschis de la terminal cu crontab -e. Reporniți Raspberry Pi pentru a verifica dacă funcționează cu sudo shutdown -r acum.
Adăugări potențiale
Iată câteva idei de funcționalități suplimentare care ar putea fi adăugate
- Adăugarea unui buton de amânare
- Adăugarea unui mod lampă
- Conectarea la IFTTT (de exemplu, lumina se poate aprinde atunci când alarma telefonului se stinge / clipește la primirea e-mailului)
- Adăugarea capacității tactile adică transformă ceasul într-o lampă tactilă
Este posibil să observați când utilizați PWM că, uneori, în special cu luminozitate mai mică, LED-ul pâlpâie puțin. Acest lucru se datorează faptului că Pi utilizează software PWM, astfel încât procesele CPU pot afecta ciclul de funcționare. Având mai puține procese care rulează ajută la acest lucru, așa că am folosit sistemul de operare Raspbian Lite. Hardware PWM este, de asemenea, disponibil pe câțiva pini, deci dacă pâlpâirea se dovedește a fi o problemă, ar putea fi ceva de luat în considerare.
Sper că ați găsit acest instrument instructiv și fie că vă simțiți inspirați să ridicați un ceas cu alarmă vechi, fie să folosiți elemente ale codului pentru propriul dvs. proiect.
Premiul II la LED Strip Speed Challenge
Recomandat:
Lumină LED cu birou inteligent - Iluminare inteligentă cu Arduino - Spațiul de lucru Neopixels: 10 pași (cu imagini)
Lumină LED cu birou inteligent | Iluminare inteligentă cu Arduino | Neopixels Workspace: Acum câteva zile petrecem mult timp acasă, studiem și lucrăm virtual, așa că de ce să nu ne îmbunătățim spațiul de lucru cu un sistem de iluminare personalizat și inteligent bazat pe LED-urile Arduino și Ws2812b. Aici vă arăt cum vă construiți Smart Lumina LED de birou care
Replica ceasului clădirii ficatului „George” din Liverpool: 13 pași (cu imagini)
Replica ceasului „The George” Liverpool Building Liver Clock: Fiind din Liverpool, sunt extrem de mândră de unde sunt și pentru cât îmi amintesc că am fost fascinat de 1 clădire din oraș, Royal Liver Building și, în special, este ceas uimitor. Acest ceas este renumit pentru că este cel mai mare
Programarea ceasului: Asistentul dvs. de productivitate virtuală .: 6 pași (cu imagini)
Programare ceas: Asistentul tău de productivitate virtuală: Sunt un amânător profesionist! Această blocare m-a pus într-o buclă de timp, în care cotidianul zboară doar fără nici o muncă productivă. Pentru a-mi depăși amânarea, am creat acest ceas simplu și rapid, care îmi programează munca. Acum pot pur și simplu să rămân la
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: 10 pași (cu imagini)
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: Ți-ai dorit vreodată un ceas inteligent? Dacă da, aceasta este soluția pentru dvs.! Am creat Smart Alarm Clock, acesta este un ceas pe care îl puteți schimba ora alarmei conform site-ului web. Când alarma se declanșează, se va auzi un sunet (buzzer) și 2 lumini vor
Lumina inteligentă: 7 pași (cu imagini)
Lumina inteligentă: Bună ziua, producătorilor, doriți să știți de ce facturile lunare de energie electrică sunt „atât de mari”? Acest lucru se datorează faptului că, atunci când o persoană din cameră iese din cameră în grabă, el sau ea lasă, fără să știe, luminile și ventilatoarele pornite. Există multe soluții pentru a rezolva