Sommario:

Smart Light per sveglia riciclata: 8 passaggi (con immagini)
Smart Light per sveglia riciclata: 8 passaggi (con immagini)

Video: Smart Light per sveglia riciclata: 8 passaggi (con immagini)

Video: Smart Light per sveglia riciclata: 8 passaggi (con immagini)
Video: UNA GIOSTRA SI STACCA A ROMA! 2024, Novembre
Anonim
Luce intelligente per sveglia riciclata
Luce intelligente per sveglia riciclata
Luce intelligente per sveglia riciclata
Luce intelligente per sveglia riciclata
Luce intelligente per sveglia riciclata
Luce intelligente per sveglia riciclata

In questo progetto ho riciclato una sveglia completamente rotta. Il quadrante dell'orologio è sostituito da 12 LED, illuminati da una striscia LED intorno al bordo dell'orologio. I 12 LED indicano l'ora e la striscia LED è programmata per fungere da sveglia, portandola alla massima luminosità all'ora impostata. Tutto è controllato da un Raspberry Pi Zero che consente innumerevoli possibilità di integrazione ed espansione come la sincronizzazione automatica dell'allarme luminoso con l'allarme del telefono o il lampeggio dei LED quando si riceve un'e-mail.

Il progetto utilizza componenti relativamente economici o riutilizzati: l'unica cosa che ho finito per acquistare è stato il regolatore di tensione. Tutto il resto che mi è capitato di avere in giro, come un ritaglio di striscia LED. Questo Instructable ti guiderà attraverso come ho dato una nuova vita al mio orologio rotto e, si spera, potrebbe ispirarti a riciclare qualcosa di tuo.

Passaggio 1: parti

Parti
Parti
Parti
Parti
Parti
Parti

Per controllare tutto utilizzeremo un Raspberry Pi Zero in quanto è piccolo, costa pochissimo e può essere connesso al WiFi, il che significa che non abbiamo bisogno di un orologio in tempo reale e possiamo quindi aggiornare facilmente il codice in remoto da un laptop. A meno che tu non abbia un Pi Zero W, ci collegheremo a una rete WiFi utilizzando un dongle WiFi USB.

Ecco un elenco delle parti che ho usato, ma la maggior parte delle cose può essere sostituita con alternative adatte. Ad esempio invece di un Raspberry Pi potresti usare un Arduino con un orologio in tempo reale per controllare il progetto.

Parti usate

  • Una vecchia sveglia
  • 30 cm di striscia LED bianco caldo
  • 1x Raspberry Pi Zero + scheda micro SD
  • 1x dongle WiFi USB + convertitore da micro USB a USB
  • 12 LED
  • Resistori 12x 330 ohm (usare più alti se si desidera LED più deboli)
  • 1x TIP31a (o altro transistor di potenza npn o MOSFET)
  • 1x resistenza da 1k
  • 1x convertitore buck regolabile DC-DC LM2596 (riduce 12V per 5V per Raspberry Pi)
  • 1x alimentatore 12v (+ modo di entrare nel tuo progetto)
  • 10 cm x 10 cm di legno per il quadrante dell'orologio (dovrebbe essere adeguatamente sottile per montare i LED)
  • Vari pezzi di filo di colore diverso

Cose utili da avere

  • Saldatore + saldatura
  • Colla calda
  • Multimetro
  • tagliere
  • Perni di intestazione femmina
  • Lettore o convertitore di schede Micro SD
  • Un computer
  • Adattatore mini HDMI + schermo HDMI se si desidera utilizzare l'ambiente desktop del Pi

Passaggio 2: configurazione del Raspberry Pi

Configurazione del Raspberry Pi
Configurazione del Raspberry Pi
Configurazione del Raspberry Pi
Configurazione del Raspberry Pi

Sistema operativo

Poiché il Raspberry Pi non sarà collegato a uno schermo, ho scelto di utilizzare Raspbian Buster Lite che non viene fornito con un ambiente desktop. Se non hai mai utilizzato Raspberry Pi, potresti voler attenerti al Raspbian Buster standard fornito con un desktop. Se non sei sicuro di come installare il tuo sistema operativo, questa è un'ottima risorsa. Entrambi i sistemi operativi possono essere scaricati dal sito Web Raspberry Pi.

Per il momento, alimenta il Pi tramite il suo ingresso di alimentazione Micro USB. Collega anche il dongle WiFi USB.

Parlando con il Raspberry Pi

Una volta che tutto è impacchettato, è piuttosto difficile accedere al Pi se si desidera modificare il codice, ecc. L'uso di SSH consente di connettersi al Pi e controllarlo da un altro computer. Questo non è attivato per impostazione predefinita, ma possiamo farlo semplicemente creando una cartella chiamata ssh nella partizione di avvio della tua scheda SD. Se hai già effettuato l'accesso al tuo Pi, puoi farlo anche digitando sudo raspi-config nel Terminale e navigando su Opzioni di interfaccia> SSH e scegliendo Sì per abilitarlo.

Ora puoi connetterti al tuo Pi su un altro computer. Su Mac o Linux puoi usare la tua applicazione terminale ma sulla maggior parte delle versioni di Windows dovrai installare un client SSH come PuTTY. Connettiti al Pi digitando ssh pi@ dove hostname viene sostituito con il nome host dell'indirizzo IP del tuo Pi. Il nome host predefinito è raspberrypi.local. Ti chiederà una password che, se non l'hai ancora cambiata, è raspberry.

Installazione delle cose necessarie

Prima assicurati che tutto sia aggiornato eseguendo sudo apt update e poi sudo apt full-upgrade.

Per essere sicuri di cosa abbiamo bisogno per controllare i pin GPIO sul tipo Pi sudo apt-get install python-rpi.gpio e sudo apt-get install python3-rpi.gpio. Questi dovrebbero essere già installati sulla versione completa di Raspbian.

Il codice

Ecco il codice da scaricare per far funzionare tutto. Se stai utilizzando un ambiente desktop, incollali nella cartella Documenti.

Se stai utilizzando la riga di comando di SSH, vai alla tua cartella home digitando cd ~/Documents e premendo invio. Crea un nuovo file chiamato test1.py con nano test1.py. Questo aprirà l'editor di testo nano dove puoi incollare il codice del file test1.py scaricato. CTRL-O e premi invio per salvare il file e CTRL-X per uscire dall'editor. Ripetere il processo per i file rimanenti.

Passaggio 3: installazione della striscia LED

Installazione della striscia LED
Installazione della striscia LED
Installazione della striscia LED
Installazione della striscia LED

Per prima cosa inserisci la striscia LED nell'orologio per vedere quanto ti serve, segna questa lunghezza e taglia la striscia nel punto di taglio successivo come mostrato. È molto più facile saldare i fili alla striscia prima che la striscia si blocchi in posizione. Questa è una guida abbastanza buona su come farlo, ma se non sei sicuro mi limiterò a esercitarmi sulla saldatura sul pezzo da cui hai appena tagliato la striscia. Saldare un filo al punto di saldatura positivo e un filo al negativo. Assicurati di testare il funzionamento della striscia LED prima di inserirla nell'orologio.

Dato che la striscia LED che ho usato era stata usata prima che perdesse il suo supporto autoadesivo, ho dovuto usare la colla a caldo per fissare la striscia attorno al bordo del bordo dell'orologio. Se hai una lunghezza eccessiva, copri il punto in cui sono attaccati i fili. Potresti voler installare la striscia in un secondo momento, ma ho trovato più facile tenerla nascosta nell'orologio.

Passaggio 4: controllo della striscia LED

Controllo della striscia LED
Controllo della striscia LED

Collegamento della striscia LED

La striscia LED funziona a 12V, quindi non può essere alimentata direttamente dal Pi. Per controllarli utilizzeremo un transistor di potenza (es. TIP31a) collegato al Pi come mostrato sopra. Consiglierei prima di verificare che tutto funzioni su una breadboard.

  • Collega GPIO 19 alla base tramite un resistore da 1k
  • L'emettitore deve essere collegato a GND
  • Collegare il collettore al terminale negativo della striscia LED
  • Collegare il terminale positivo della striscia LED a +12V

test

Nella riga di comando, vai alla cartella dei documenti (cd ~/Documents) e digita python test1.py e inserisci. Dovresti vedere la striscia LED aumentare e diminuire di luminosità. Per uscire dal programma premere CTRL-C. Puoi modificare il file (nano test1.py) per cambiare la velocità e la luminosità nel programma.

import RPi. GPIO as GPIOimport time GPIO.setmode(GPIO. BCM) # Usa il pinout BCM GPIO.setwarnings(False) # Ignora gli avvisi sui pin utilizzati per altre cose ledStripPin = 19 # La striscia LED è pilotata da questo pin GPIO.setup (ledStripPin, GPIO. OUT) # Imposta ledStripPin come uscita pwm = GPIO. PWM(ledStripPin, 100) # PWM su ledStripPin con frequenza 100Hz dutyCycle = 0 # Luminosità iniziale in percentuale pwm.start(dutyCycle) try: while True: for dutyCycle in range(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.sleep(0.05) tranne KeyboardInterrupt: # Premi CTRL-C per uscire, quindi: pwm.stop() # Arresta il pwm GPIO.cleanup() # Pulisci i pin GPIO

Passaggio 5: creare il quadrante dell'orologio

Fare il quadrante dell'orologio
Fare il quadrante dell'orologio
Fare il quadrante dell'orologio
Fare il quadrante dell'orologio
Fare il quadrante dell'orologio
Fare il quadrante dell'orologio

Taglia il pezzo di legno per il tuo orologio a faccia in giù in modo che si adatti al tuo orologio. Il mio l'ho fatto riposare a circa 3 cm dal davanti. Pratica 12 fori del diametro dei tuoi LED (di solito 3 mm o 5 mm) distanziati di 30 gradi l'uno dall'altro. Carteggiare la parte anteriore a faccia in giù e applicare una finitura a scelta. Dal lato posteriore posizionare i LED in modo che puntino verso la parte anteriore. Ho usato la colla a caldo per mantenere i LED in posizione con il terminale positivo (filo più lungo) rivolto verso l'interno. La dimensione del mio quadrante dell'orologio significava che potevo saldare tutti i terminali negativi insieme (vedi sopra), quindi era necessario un solo filo per collegare tutti i 12 LED a GND. Quindi, saldare un filo a ciascun LED.

Se vuoi testarlo su una breadboard, ricordati prima di usare un resistore (330 ohm è abbastanza standard) in serie con ciascun LED prima di collegarlo a uno dei pin Pi GPIO. Gioca con il valore del resistore che usi per ottenere un livello di luminosità di cui sei soddisfatto. Un t-cobbler è davvero utile per rompere i pin del Pi su una breadboard, anche se dovrai saldare i pin dell'intestazione per questo. Usa test2.py (esegui usando python test2.py) ma assicurati di modificare prima il programma e inserire i pin GPIO di Pi che hai usato per ciascun LED.

importa RPi. GPIO come GPIO

import time GPIO.setmode(GPIO. BCM) # Usa il pinout BCM GPIO.setwarnings(False) # Ignora gli avvisi sui pin utilizzati per altre cose # Sostituisci uno, due, … con il numero di pin corrispondente hourPin = [uno, due, tre, quattro, cinque, sei, sette, otto, nove, dieci, undici, dodici] # I pin a cui sono collegati i LED da 1-12 per i nell'intervallo (0, 12): GPIO.setup(hourPin, GPIO. OUT) # Imposta tutti gli hourPin come output GPIO.output(hourPin, 0) # Assicurati che tutti i LED siano spenti try: while True: for i in range(0, 12) GPIO.output(hourPin, 1): time.sleep(0.05) for i in range(0, 12) GPIO.output(hourPin, 0): time.sleep(0.05) tranne KeyboardInterrupt: # Premi CTRL-C per uscire e quindi: GPIO.cleanup() # Pulisci i pin GPIO

Passaggio 6: alimentazione del Pi

Alimentare il Pi
Alimentare il Pi

Abbiamo bisogno di un modo semplice per portare 5V al Pi Zero in modo da poterci sbarazzare del cavo micro USB che abbiamo usato per alimentarlo finora. Esistono numerose soluzioni che riducono da 12 V a 5 V come un regolatore di tensione lineare LM7805, ma queste non sono molto efficienti, quindi ho scelto di utilizzare il convertitore buck regolabile più efficiente utilizzando il chip LM2596. NB con questo dovrai ruotare il potenziometro fino a quando la tensione di uscita non si riduce a 5V come richiesto, quindi avrai bisogno di un modo per misurare la tensione.

Usare l'LM2596 è semplice: collegare il +12V a IN+, la massa a IN-. Il Pi può essere collegato direttamente a 5V collegando OUT+ a uno dei pin 5V del Pi, ma assicurati di aver cambiato la tensione di uscita a 5V prima di farlo o friggerai il tuo Pi!

Passaggio 7: completare il circuito e il confezionamento

Completa il circuito e il confezionamento
Completa il circuito e il confezionamento
Completa il circuito e il confezionamento
Completa il circuito e il confezionamento
Completa il circuito e il confezionamento
Completa il circuito e il confezionamento
Completa il circuito e il confezionamento
Completa il circuito e il confezionamento

Ora abbiamo coperto tutti e tre gli elementi del circuito che sono mostrati insieme nel circuito generale sopra. Per risparmiare spazio e rendere il circuito più ordinato, posiziona il tuo circuito su una scheda a strisce o su una scheda prototipo. Saldare prima i componenti più piccoli, le resistenze, poi il transistor di potenza, eventuali connettori e infine i fili. Pianifica il tuo circuito prima di saldare per assicurarti di avere spazio per tutto.

Ho collegato tutto su un PCB di prototipazione e ho usato pin di intestazione femmina in modo che il Pi potesse essere montato direttamente sul PCB. I LED sul quadrante dell'orologio sono collegati tramite resistori su un lato della scheda e ho tenuto spazio sull'altro lato della scheda per il transistor di potenza e libero per qualsiasi altro circuito che potrei voler aggiungere in seguito.

Attacca il quadrante dell'orologio all'orologio e assicurati che tutti i componenti elettronici si adattino. Tutto era abbastanza stretto per me, quindi potrebbe essere necessario riorganizzare. Collega l'alimentatore ed esegui test1.py e test2.py da SSH per verificare che tutto funzioni prima di collegare la parte posteriore.

Passaggio 8: carica il codice + Fine

Carica il codice + Fine
Carica il codice + Fine
Carica il codice + Fine
Carica il codice + Fine
Carica il codice + Fine
Carica il codice + Fine

Il codice

Infine, se non lo hai già fatto, carica il codice e adattalo come preferisci (usando nano filename.py). Il vantaggio della connessione al Pi su SSH è che puoi aggiornare il codice senza aprire l'orologio.

Questi programmi Python del passaggio 2 fanno quanto segue:

  • light_clock_simple.py visualizza semplicemente l'ora sui LED e fa dissolvere su e giù la striscia LED in determinati momenti
  • light_clock_pwm.py è come sopra ma permette anche di ridurre la luminosità dei led e visualizza i minuti con una luminosità diversa dalle ore. Dovrai giocare con i livelli di luminosità di entrambi in modo che il contrasto tra i due sia evidente

Questi dovrebbero fornire una solida base per l'aggiunta al codice, ad esempio potresti voler aggiungere un pulsante per posticipare l'allarme luminoso.

Per avviare il programma all'avvio del Pi dobbiamo aggiungere ' @reboot nohup python light_clock_pwm.py & 'alla fine del file crontab che può essere aperto dal terminale con crontab -e. Riavvia il tuo Raspberry Pi per verificare che funzioni con sudo shutdown -r now.

Potenziali aggiunte

Ecco alcune idee di funzionalità extra che potrebbero essere aggiunte

  • Aggiunta di un pulsante snooze
  • Aggiunta di una modalità lampada
  • Connessione a IFTTT (ad es. la luce potrebbe accendersi quando la sveglia del telefono si spegne/lampeggia quando viene ricevuta l'e-mail)
  • Aggiunta della capacità di tocco, ad esempio trasformare l'orologio in una lampada tattile

Si può notare quando si utilizza il PWM che a volte, specialmente con una luminosità inferiore, il LED sfarfalla un po'. Questo perché il Pi utilizza il software PWM, quindi i processi della CPU possono influenzare il ciclo di lavoro. Avere meno processi in esecuzione aiuta con questo, quindi ho usato il sistema operativo ridotto Raspbian Lite. PWM hardware è disponibile anche su alcuni pin, quindi se lo sfarfallio si rivela un problema, potrebbe essere qualcosa da esaminare.

Spero che tu abbia trovato questo Instructable informativo e ti sia sentito ispirato a riciclare una vecchia sveglia o a utilizzare elementi del codice per il tuo progetto.

Sfida sulla velocità delle strisce LED
Sfida sulla velocità delle strisce LED
Sfida sulla velocità delle strisce LED
Sfida sulla velocità delle strisce LED

Secondo premio nella sfida della velocità delle strisce LED

Consigliato: