Taula de continguts:

Llum intel·ligent de rellotge despertador reciclat: 8 passos (amb imatges)
Llum intel·ligent de rellotge despertador reciclat: 8 passos (amb imatges)

Vídeo: Llum intel·ligent de rellotge despertador reciclat: 8 passos (amb imatges)

Vídeo: Llum intel·ligent de rellotge despertador reciclat: 8 passos (amb imatges)
Vídeo: [21] В проливной день выйдите из города и идите в глухой лес/Сон в машине/Кемпинг 2024, Juliol
Anonim
Llum intel·ligent de rellotge despertador reciclat
Llum intel·ligent de rellotge despertador reciclat
Llum intel·ligent de rellotge despertador reciclat
Llum intel·ligent de rellotge despertador reciclat
Llum intel·ligent de rellotge despertador reciclat
Llum intel·ligent de rellotge despertador reciclat

En aquest projecte faig un cicle de despertador completament trencat. La cara del rellotge és substituïda per 12 LEDs, il·luminats per una tira LED al voltant de la vora del rellotge. Els 12 LED indiquen l'hora i la tira LED està programada per actuar com una alarma i augmentar la brillantor a l'hora establerta. Tot està controlat per un Raspberry Pi Zero que permet innombrables possibilitats d’integració i expansió, com la sincronització automàtica de l’alarma de llum amb l’alarma del telèfon o el parpelleig dels LEDs quan rebeu un correu electrònic.

El projecte utilitza components relativament econòmics o reutilitzats: l’únic que vaig acabar comprant va ser el regulador de tensió. Tota la resta que em passava per allà, com ara un tall de tira de LED. Aquest instructiu us guiarà a través de com he donat una nova vida al meu rellotge trencat i espero que us pugui inspirar a millorar el vostre compte.

Pas 1: parts

Parts
Parts
Parts
Parts
Parts
Parts

Per controlar tot, utilitzarem un Raspberry Pi Zero ja que és petit, costa molt poc i es pot connectar a WiFi, cosa que significa que no necessitem rellotge en temps real i, per tant, podem actualitzar fàcilment el codi des d’un ordinador portàtil. Tret que tingueu un Pi Zero W, ens connectarem a una xarxa WiFi mitjançant un dongle USB WiFi.

Aquí hi ha una llista de les parts que he utilitzat, però la majoria de coses es poden canviar per alternatives adequades. Per exemple, en lloc d'un Raspberry Pi, podeu utilitzar un Arduino amb un rellotge en temps real per controlar el projecte.

Peces utilitzades

  • Un vell despertador
  • 30cm de tira LED càlida de color blanc
  • 1x targeta micro SD Raspberry Pi Zero +
  • 1 x USB Dongle WiFi + convertidor micro USB a USB
  • 12x LEDs
  • Resistències de 12x 330ohm (utilitzeu-les més altes si voleu LEDs més atenuats)
  • 1x TIP31a (o un altre transistor de potència npn o MOSFET)
  • 1x 1k resistència
  • 1 convertidor de dòlars ajustable DC-DC LM2596 (baixa 12V per 5V per al Raspberry Pi)
  • 1 alimentació de 12v (+ forma d’entrar al vostre projecte)
  • 10cm x 10cm de fusta per a la cara del rellotge (hauria de ser suficientment fina per muntar-hi els LED)
  • Diverses peces de filferro de diferents colors

Coses útils per tenir

  • Soldador + soldador
  • Cola calenta
  • Multímetre
  • Taula de pa
  • Clavilles femenines
  • Lector o convertidor de targetes Micro SD
  • Un ordinador
  • Adaptador Mini HDMI + pantalla HDMI si voleu utilitzar l'entorn d'escriptori del Pi

Pas 2: Configuració del Raspberry Pi

Configuració del Raspberry Pi
Configuració del Raspberry Pi
Configuració del Raspberry Pi
Configuració del Raspberry Pi

Sistema operatiu

Com que el Raspberry Pi no es connectarà a una pantalla, vaig optar per utilitzar Raspbian Buster Lite que no inclou un entorn d’escriptori. Si sou més recent de Raspberry Pi, us recomanem que us quedeu amb el Raspbian Buster estàndard que ve amb un escriptori. Si no esteu segur de com instal·lar el vostre sistema operatiu, aquest és un recurs fantàstic. Tots dos sistemes operatius es poden descarregar des del lloc web Raspberry Pi.

De moment, alimenteu el Pi mitjançant la seva entrada d’alimentació Micro USB. Connecteu també el dongle USB WiFi.

Parlant amb el Raspberry Pi

Un cop empaquetat tot, és bastant difícil accedir al Pi si voleu canviar el codi, etc. L'ús de SSH permet utilitzar la connexió al Pi i controlar-lo des d'un altre ordinador. Això no està activat per defecte, però ho podem fer simplement creant una carpeta anomenada ssh a la partició d'arrencada de la vostra targeta SD. Si ja heu iniciat la sessió al vostre Pi, també podeu fer-ho escrivint sudo raspi-config al Terminal i navegant a Opcions d’interfície> SSH i escollint Sí per activar-lo.

Ara podeu connectar-vos al vostre Pi en un altre ordinador. A Mac o Linux podeu utilitzar la vostra aplicació de terminal, però a la majoria de versions de Windows haurà d’instal·lar un client SSH com PuTTY. Connecteu-vos al Pi escrivint ssh pi @ on el nom d’amfitrió és substituït pel nom de l’adreça IP del vostre Pi. El nom d'amfitrió per defecte és raspberrypi.local. Us demanarà una contrasenya que, si encara no l’heu canviat, és raspberry.

Instal·lació del material necessari

Primer assegureu-vos que tot estigui al dia executant sudo apt update i, a continuació, sudo apt full-upgrade.

Per assegurar-nos del que necessitem per controlar els pins GPIO al tipus Pi sudo apt-get install python-rpi.gpio i sudo apt-get install python3-rpi.gpio. Aquests ja haurien d’estar instal·lats a la versió completa de Raspbian.

El codi

Aquí teniu el codi que heu de descarregar perquè tot funcioni. Si feu servir un entorn d'escriptori, enganxeu-los a la carpeta Documents.

Si utilitzeu la línia d'ordres de SSH, aneu a la carpeta d'inici escrivint cd ~ / Documents i prement Intro. Feu un fitxer nou anomenat test1.py amb nano test1.py. Això obrirà l'editor de text nano on podeu enganxar el codi del fitxer test1.py descarregat. CTRL-O i premeu Retorn per desar el fitxer i CTRL-X per sortir de l'editor. Repetiu el procés per a la resta de fitxers.

Pas 3: Instal·lació de la tira LED

Instal·lació de la tira LED
Instal·lació de la tira LED
Instal·lació de la tira LED
Instal·lació de la tira LED

Primer, introduïu la tira LED al rellotge per veure quant necessiteu, marqueu aquesta longitud i talleu la tira al següent punt de tall, tal com es mostra. És molt més fàcil soldar cables a la tira abans que la tira s’enganxi al seu lloc. Aquesta és una guia bastant bona sobre com fer-ho, però si no esteu segur, només hauria de practicar la soldadura de la peça de la qual acabeu de tallar la tira. Soldeu un cable al punt de soldadura positiu i un cable al negatiu. Assegureu-vos de provar que la tira LED funcioni abans de posar-la al rellotge.

Com que la tira LED que he utilitzat s’havia utilitzat abans que perdés el seu suport autoadhesiu, vaig haver d’utilitzar cola calenta per fixar la tira al voltant de la vora del rellotge. Si teniu un excés de longitud, cobriu el punt on s’uneixen els cables. És possible que vulgueu instal·lar la tira més endavant, però em va semblar més fàcil tenir-la amagada al rellotge.

Pas 4: Control de la tira LED

Control de la tira LED
Control de la tira LED

Connexió de la tira LED

La tira LED funciona en 12V, de manera que no es pot alimentar directament des del Pi. Per controlar-los utilitzarem un transistor de potència (per exemple, TIP31a) connectat fins al Pi, tal com es mostra a dalt. Recomanaria primer comprovar que tot funcioni en una taula de treball.

  • Connecteu GPIO 19 a la base mitjançant una resistència de 1 k
  • L'emissor hauria d'estar connectat a GND
  • Connecteu el col·lector al terminal negatiu de la tira LED
  • Connecteu el terminal de la tira LED positiva a + 12V

Proves

A la línia d'ordres, accediu a la carpeta de documents (cd ~ / Documents) i escriviu python test1.py i introduïu. Hauríeu de veure com augmenta i disminueix la brillantor de la tira LED. Per sortir del programa, premeu CTRL-C. Podeu editar el fitxer (nano test1.py) per canviar la velocitat i la brillantor del programa.

importar RPi. GPIO com a GPIOimportar el temps GPIO.setmode (GPIO. BCM) # Utilitzeu el pinout BCM GPIO.setwarnings (fals) # Ignoreu les advertències sobre els pins que s’utilitzen per a altres coses ledStripPin = 19 # La tira LED es condueix des d’aquest pin GPIO.setup (ledStripPin, GPIO. OUT) # Estableix ledStripPin com a sortida pwm = GPIO. PWM (ledStripPin, 100) # PWM a ledStripPin amb freqüència 100Hz dutyCycle = 0 # Lluminositat inicial com a percentatge pwm.start (dutyCycle) intenta: mentre que True: per dutyCycle a l'interval (0, 101, 1): # Fade up pwm. ChangeDutyCycle (dutyCycle) time.sleep (0,05) per a dc a l'interval (95, -1, -1): # Fade down pwm. ChangeDutyCycle (dc) time.sleep (0,05), excepte KeyboardInterrupt: # Premeu CTRL-C per sortir i, a continuació,: pwm.stop () # Atureu el pwm GPIO.cleanup () # Netejar els pins GPIO

Pas 5: fer la cara del rellotge

Fer la cara del rellotge
Fer la cara del rellotge
Fer la cara del rellotge
Fer la cara del rellotge
Fer la cara del rellotge
Fer la cara del rellotge

Talla el tros de fusta del rellotge cap avall a la mida perquè encaixi amb el rellotge. Vaig fer que el meu descansés a uns 3cm de la part davantera. Traieu 12 forats del diàmetre dels vostres LED (normalment de 3 mm o 5 mm) a 30 graus l’un de l’altre. Liureu la cara frontal cap avall i apliqueu un acabat que vulgueu. Des de la part posterior, col·loqueu els LED perquè apuntin cap a la part frontal. Vaig utilitzar cola calenta per mantenir els LEDs al seu lloc amb el terminal positiu (cable més llarg) cap a l'interior. La mida de la cara del meu rellotge significava que podia soldar tots els terminals negatius junts (vegeu més amunt), de manera que només calia un cable per connectar els 12 LED a GND. A continuació, soldeu un cable a cada LED.

Si voleu provar-ho en una placa de taula, primer recordeu-vos d’utilitzar una resistència (330ohm és bastant estàndard) en sèrie amb cada LED abans de connectar-lo a un dels pins GPIO Pi. Juga amb el valor de la resistència que fas servir per obtenir un nivell de brillantor amb el qual estiguis satisfet. Un t-cobbler és realment útil per trencar els passadors del Pi a una taula de treball, tot i que haureu de soldar els passadors de capçalera. Utilitzeu test2.py (executeu-lo amb python test2.py) però assegureu-vos que primer editeu el programa i introduïu els pins GPIO del Pi que heu utilitzat per a cada LED.

importar RPi. GPIO com a GPIO

temps d'importació GPIO.setmode (GPIO. BCM) # Utilitzeu el pinout BCM GPIO.setwarnings (fals) # Ignoreu les advertències sobre els pins que s'utilitzen per a altres coses # Substituïu un, dos, … amb el número de pin corresponent hourPin = [un, dos, tres, quatre, cinc, sis, set, vuit, nou, deu, onze, dotze] # Els pins als quals es connecten els LED d'1-12 per a i en l'interval (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Definiu tots els hourPins com a sortides GPIO.output (hourPin , 0) # Assegureu-vos que tots els LED estan apagats proveu: mentre que True: per a l’interval (0, 12) GPIO.output (hourPin , 1): time.sleep (0,05) per a l’interval (0, 12) GPIO.output (hourPin , 0): time.sleep (0,05) excepte KeyboardInterrupt: # Premeu CTRL-C per sortir i llavors: GPIO.cleanup () # Neteja els pins GPIO

Pas 6: alimentació del Pi

Alimentació del Pi
Alimentació del Pi

Necessitem una manera senzilla d’aconseguir 5V al Pi Zero per poder desfer-nos del cable micro USB que hem utilitzat per alimentar-lo fins ara. Hi ha una sèrie de solucions que redueixen 12V a 5V, com ara un regulador de tensió lineal LM7805, però no són molt eficients, així que, en canvi, vaig optar per utilitzar el convertidor de dòlar ajustable més eficient mitjançant el xip LM2596. Tingueu en compte que haureu de girar el potenciòmetre fins que la tensió de sortida es redueixi a 5V segons sigui necessari, de manera que necessiteu alguna manera de mesurar el voltatge.

Utilitzar el LM2596 és senzill: connecteu el + 12V a IN +, la terra a IN-. El Pi es pot connectar directament a 5V connectant OUT + a un dels pins de 5V del Pi, però assegureu-vos que heu canviat el voltatge de sortida a 5V abans de fer això o fregireu el vostre Pi.

Pas 7: completeu el circuit i l'embalatge

Completeu el circuit i el packaging
Completeu el circuit i el packaging
Completeu el circuit i el packaging
Completeu el circuit i el packaging
Completeu el circuit i el packaging
Completeu el circuit i el packaging
Completeu el circuit i el packaging
Completeu el circuit i el packaging

Ara hem cobert els tres elements del circuit que es mostren junts al circuit general anterior. Per estalviar espai i fer que el circuit sigui més net, col·loqueu el circuit a la placa de tires o al tauler prototip. Primer soldar els components més petits, les resistències, després el transistor de potència, els connectors i, finalment, els cables. Planifiqueu el circuit abans de soldar per assegurar-vos que teniu espai per a tot.

Vaig connectar-ho tot en un PCB de prototipatge i vaig utilitzar pins de capçalera femella perquè el Pi pogués muntar-se directament al PCB. Els LED de la cara del rellotge es connecten a través de resistències d’un costat de la placa i he mantingut espai a l’altre costat de la placa per al transistor de potència i lliure per a qualsevol altre circuit que vulgueu afegir més endavant.

Col·loqueu la cara del rellotge al rellotge i assegureu-vos que tots els aparells electrònics hi càpiguen. Tot estava molt ajustat per a mi, de manera que és possible que hàgiu de fer una mica de reordenació. Connecteu la font d'alimentació i executeu test1.py i test2.py des de SSH per comprovar que tot funciona abans de connectar la part posterior.

Pas 8: pengeu el codi + Finalitza

Pengeu el codi + Finalitza
Pengeu el codi + Finalitza
Pengeu el codi + Finalitza
Pengeu el codi + Finalitza
Pengeu el codi + Finalitza
Pengeu el codi + Finalitza

El codi

Finalment, si encara no ho heu fet, carregueu el codi i adapteu-lo com vulgueu (mitjançant nano filename.py). L’avantatge de connectar-se al Pi mitjançant SSH és que podeu actualitzar el codi sense obrir el rellotge.

Aquests programes python del pas 2 fan el següent:

  • light_clock_simple.py simplement mostra l'hora en els LED i s'esvaeix cap amunt i cap avall de la tira de LED en determinats moments
  • light_clock_pwm.py és el mateix que l’anterior, però també permet reduir la brillantor dels LED i mostra els minuts a una brillantor diferent de les hores. Haureu de jugar amb els nivells de brillantor de tots dos, de manera que es nota el contrast entre tots dos

Aquests haurien de proporcionar una base sòlida per afegir al codi, per exemple, és possible que vulgueu afegir un botó per posposar l'alarma de llum.

Per iniciar el programa quan arrenca el Pi, hem d'afegir '@reboot nohup python light_clock_pwm.py &' al final del fitxer crontab que es pot obrir des del terminal amb crontab -e. Reinicieu el Raspberry Pi per comprovar que funcioni amb sudo shutdown -r ara.

Increments potencials

Aquí hi ha algunes idees de funcionalitats addicionals que es podrien afegir

  • Afegir un botó de posposició
  • Afegir un mode de llum
  • Connexió a IFTTT (per exemple, la llum es pot encendre quan l'alarma del telèfon s'apaga / parpelleja quan es rep el correu electrònic)
  • Afegint capacitat tàctil, és a dir, converteix el rellotge en un llum tàctil

Podeu notar quan utilitzeu PWM que, de vegades, sobretot amb una brillantor inferior, el LED parpelleja una mica. Això es deu al fet que el Pi utilitza programari PWM, de manera que els processos de la CPU poden afectar el cicle de treball. Tenir menys processos en execució ajuda amb això, així que vaig utilitzar el sistema operatiu reduït Raspbian Lite. El PWM de maquinari també està disponible en uns quants pins, de manera que si el parpelleig està demostrant un problema, potser hauríem de tenir en compte.

Espero que hagueu trobat aquesta informació instructiva i us sentiu inspirats a fer un rellotge despertador antic o a utilitzar elements del codi per al vostre propi projecte.

Desafiament LED Speed Strip
Desafiament LED Speed Strip
Desafiament LED Speed Strip
Desafiament LED Speed Strip

Accèssit al LED Strip Speed Challenge

Recomanat: