INHOUDSOPGAWE:

Opgemaakte wekker slim lig: 8 stappe (met foto's)
Opgemaakte wekker slim lig: 8 stappe (met foto's)

Video: Opgemaakte wekker slim lig: 8 stappe (met foto's)

Video: Opgemaakte wekker slim lig: 8 stappe (met foto's)
Video: Zeitgeist Addendum 2024, Desember
Anonim
Opgemaakte wekker slim lig
Opgemaakte wekker slim lig
Opgemaakte wekker slim lig
Opgemaakte wekker slim lig
Opgemaakte wekker slim lig
Opgemaakte wekker slim lig

In hierdie projek ry ek 'n heeltemal gebroke opwindende wekker. Die horlosie word vervang deur 12 LED's, verlig deur 'n LED -strook om die rand van die klok. Die 12 LED's gee die tyd aan en die LED -strook is geprogrammeer om as 'n alarm op te tree en word op die vasgestelde tyd tot volle helderheid. Alles word beheer deur 'n Raspberry Pi Zero, wat talle integrasie- en uitbreidingsmoontlikhede moontlik maak, soos om die ligalarm outomaties met u telefoonalarm te sinchroniseer of die LED's te flits as u 'n e -pos ontvang.

Die projek gebruik relatief goedkoop of hergebruikte komponente - die enigste ding wat ek uiteindelik gekoop het, was die spanningsreguleerder. Al die ander dinge het ek toevallig gelê, soos 'n afgesnyde LED-strook. Hierdie instruksie sal u lei hoe ek 'n nuwe lewe aan my stukkende horlosie gegee het, en u hopelik kan inspireer om iets van u eie te maak.

Stap 1: Onderdele

Dele
Dele
Dele
Dele
Dele
Dele

Om alles te beheer, gaan ons 'n Raspberry Pi Zero gebruik, aangesien dit klein is, baie min kos en aan WiFi gekoppel kan word. Tensy u 'n Pi Zero W het, maak ons met 'n WiFi WiFi -dongle verbinding met 'n WiFi -netwerk.

Hier is 'n lys van die dele wat ek gebruik het, maar die meeste dinge kan geruil word vir geskikte alternatiewe. Byvoorbeeld, in plaas van 'n Raspberry Pi, kan u 'n Arduino met 'n intydse klok gebruik om die projek te beheer.

Onderdele gebruik

  • 'N Ou wekker
  • 30 cm warm wit LED -strook
  • 1x Raspberry Pi Zero + mikro SD -kaart
  • 1x USB WiFi -dongle + mikro -USB na USB -omskakelaar
  • 12x LED's
  • 12x 330ohm weerstande (gebruik hoër as u dowwer LED's wil hê)
  • 1x TIP31a (of ander npn -kragtransistor of MOSFET)
  • 1x 1k weerstand
  • 1x LM2596 DC-DC verstelbare boksomskakelaar (trap af 12V vir 5V vir die Raspberry Pi)
  • 1x 12V kragtoevoer (+ manier om by u projek aan te sluit)
  • 10 cm x 10 cm hout vir die horlosie (moet redelik dun wees om jou LED's in te monteer)
  • Verskeie stukke draad van verskillende kleure

Nuttige dinge om te hê

  • Soldeerbout + soldeer
  • Warm gom
  • Multimeter
  • Broodbord
  • Vroulike kopstukke
  • Micro SD kaartleser of omskakelaar
  • N rekenaar
  • Mini HDMI -adapter + HDMI -skerm as u die lessenaaromgewing van die Pi wil gebruik

Stap 2: Die opstel van die Raspberry Pi

Die opstel van die Raspberry Pi
Die opstel van die Raspberry Pi
Die opstel van die Raspberry Pi
Die opstel van die Raspberry Pi

Bedryfstelsel

Omdat die Raspberry Pi nie aan 'n skerm gekoppel is nie, het ek gekies om Raspbian Buster Lite te gebruik, wat nie by 'n lessenaaromgewing kom nie. As u 'n nuwer weergawe van Raspberry Pi het, is dit die beste om by die standaard Raspbian Buster te hou wat 'n lessenaar bevat. As u nie seker is hoe u u bedryfstelsel moet installeer nie, is dit 'n uitstekende bron. Beide bedryfstelsels kan afgelaai word vanaf die Raspberry Pi -webwerf.

Voer die Pi op die oomblik aan via sy mikro -USB -ingang. Koppel ook die USB WiFi -dongle aan.

Praat met die Raspberry Pi

Sodra alles verpak is, is dit redelik moeilik om toegang tot die Pi te kry as u die kode wil verander, ens. Deur SSH te gebruik, kan u verbinding maak met die Pi en dit vanaf 'n ander rekenaar beheer. Dit is nie standaard aangeskakel nie, maar ons kan dit doen deur eenvoudig 'n gids met die naam ssh in die opstartpartisie van u SD -kaart te maak. As u reeds by u Pi aangemeld het, kan u dit ook doen deur sudo raspi-config in die Terminal te tik en na Interfacing Options> SSH te gaan en Ja te kies om dit in te skakel.

Nou kan u op 'n ander rekenaar met u Pi koppel. Op Mac of Linux kan u u terminale toepassing gebruik, maar op die meeste weergawes van Windows moet u 'n SSH -kliënt soos PuTTY installeer. Koppel aan die Pi deur tik ssh pi@ waar gasheernaam vervang word deur die gasheernaam van IP -adres van u Pi. Die standaard gasheernaam is raspberrypi.local. Dit sal u vra vir 'n wagwoord wat, as u dit nog nie verander het nie, framboos is.

Dit is nodig om goed te installeer

Maak eers seker dat alles op datum is deur sudo apt update uit te voer en dan sudo apt full-upgrade.

Om seker te maak wat ons nodig het om die GPIO-penne op die Pi-tipe te beheer sudo apt-get install python-rpi.gpio en sudo apt-get install python3-rpi.gpio. Dit behoort reeds op die volledige weergawe van Raspbian geïnstalleer te wees.

Die kode

Hier is die kode om af te laai om alles te laat werk. As u 'n lessenaaromgewing gebruik, plak dit in u Documents -lêergids.

As u die opdragreël van SSH gebruik, navigeer u na u tuisgids deur cd ~/Documents in te tik en op enter te druk. Maak 'n nuwe lêer genaamd test1.py met nano test1.py. Dit maak die nano -teksredakteur oop waar u die kode van die afgelaaide test1.py -lêer kan plak. CTRL-O en druk enter om die lêer te stoor en CTRL-X om die redakteur te verlaat. Herhaal die proses vir die oorblywende lêers.

Stap 3: Installeer die LED -strook

Die installering van die LED Strip
Die installering van die LED Strip
Die installering van die LED Strip
Die installering van die LED Strip

Druk eers die LED -strook in die horlosie om te sien hoeveel u benodig, merk hierdie lengte en sny die strook by die volgende snypunt soos aangedui. Dit is baie makliker om drade aan die strook te soldeer voordat die strook vasgesteek word. Dit is 'n baie goeie gids oor hoe u dit moet doen, maar as u nie seker is nie, oefen ek net op die soldeerverbinding op die stuk waaruit u die strook gesny het. Soldeer een draad tot by die positiewe soldeerpunt en een draad aan die negatiewe. Kontroleer of u LED -strook werk voordat u dit in u horlosie steek.

Aangesien die LED -strook wat ek gebruik het, gebruik is voordat dit sy selfklevende agterkant verloor het, moes ek warm gom gebruik om die strook om die rand van die klokrand vas te maak. As u te lank is, bedek die punt waar die drade vasgemaak is. Miskien wil u die strook later installeer, maar ek vind dit makliker om dit in die klok weg te steek.

Stap 4: Beheer van die LED -strook

Die beheer van die LED -strook
Die beheer van die LED -strook

Verbind die LED -strook

Die LED -strook werk op 12V, dus kan nie direk van die Pi aangedryf word nie. Om dit te beheer, gebruik ons 'n kragtransistor (bv. TIP31a) wat aan die Pi gekoppel is, soos hierbo getoon. Ek beveel aan dat u eers kyk of alles op 'n broodbord werk.

  • Koppel GPIO 19 aan die basis deur 'n 1k -weerstand
  • Die emitter moet aan GND gekoppel wees
  • Koppel die versamelaar aan die negatiewe aansluiting van die LED -strook
  • Koppel die positiewe LED -strookaansluiting aan +12V

Toets

In die opdragreël, navigeer na u dokumentmap (cd ~/Documents) en tik python test1.py en voer in. U moet die LED -strook sien toeneem en afneem in helderheid. Druk CTRL-C om die program te verlaat. U kan die lêer (nano test1.py) wysig om die snelheid en helderheid in die program te verander.

voer RPi. GPIO in as GPIO invoer tyd GPIO.setmode (GPIO. BCM) # Gebruik die BCM pinout GPIO.setwarnings (Onwaar) # Ignoreer waarskuwings oor penne wat vir ander goed gebruik word ledStripPin = 19 # LED -strook word uit hierdie pen gedryf GPIO.setup (ledStripPin, GPIO. OUT) # Stel ledStripPin in as 'n uitset pwm = GPIO. PWM (ledStripPin, 100) # PWM op ledStripPin met frekwensie 100Hz dutyCycle = 0 # Aanvanklike helderheid as persentasie pwm.start (dutyCycle) probeer: terwyl waar: vir dutyCycle in range (0, 101, 1): # Fade up pwm. ChangeDutyCycle (dutyCycle) time.sleep (0.05) for dc in range (95, -1, -1): # Fow down pwm. ChangeDutyCycle (dc) time.slaap (0,05) behalwe KeyboardInterrupt: # Druk CTRL-C om op te hou, en dan: pwm.stop () # Stop die pwm GPIO.cleanup () # Maak die GPIO-penne skoon

Stap 5: Maak die horlosie

Maak die horlosie
Maak die horlosie
Maak die horlosie
Maak die horlosie
Maak die horlosie
Maak die horlosie

Sny die stuk hout vir u horlosie in grootte sodat dit in u horlosie pas. Ek het myne ongeveer 3 cm van die voorkant laat rus. Boor 12 gate met die deursnee van u LED's (gewoonlik 3 mm of 5 mm) op 30 grade afstand van mekaar. Skuur die voorkant na onder en pas 'n afwerking van u keuse toe. Plaas die LED's aan die agterkant sodat hulle na die voorkant wys. Ek het warm gom gebruik om die LED's op hul plek te hou met die positiewe terminaal (langer draad) na binne. Die grootte van my horlosie het beteken dat ek al die negatiewe terminale saam kon soldeer (sien hierbo), dus was slegs een draad nodig om al 12 LED's aan GND te koppel. Soldeer dan 'n draad aan elke LED.

As u dit op 'n broodbord wil toets, moet u eers 'n weerstand (330ohm is redelik standaard) met elke LED gebruik voordat u dit aan een van die Pi GPIO -penne koppel. Speel met die waarde van die weerstand wat u gebruik om 'n helderheidsvlak te kry waarmee u tevrede is. 'N T-skoenmaker is baie handig om die penne van die Pi na 'n broodbord uit te breek, alhoewel u die kopstukke hiervoor moet soldeer. Gebruik test2.py (hardloop met behulp van python test2.py), maar maak seker dat u eers die program wysig en die Pi se GPIO -penne wat u vir elke LED gebruik het, invoer.

voer RPi. GPIO in as GPIO

invoer tyd GPIO.setmode (GPIO. BCM) # Gebruik die BCM pinout GPIO.setwarnings (Onwaar) # Ignoreer waarskuwings oor penne wat vir ander goed gebruik word # Vervang een, twee, … met ooreenstemmende speldgetal uurPin = [een, twee, drie, vier, vyf, ses, sewe, agt, nege, tien, elf, twaalf] # Die penne waarmee die LED's gekoppel is van 1-12 vir i in bereik (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Stel al die hourPins as uitsette GPIO.output (hourPin , 0) # Maak seker dat alle LED's af is, probeer: terwyl True: for i in bereik (0, 12) GPIO.output (hourPin , 1): time.sleep (0.05) vir i in range (0, 12) GPIO.output (hourPin , 0): time.sleep (0.05) behalwe KeyboardInterrupt: # Druk CTRL-C om af te sluit, en dan: GPIO.cleanup () # Maak die GPIO -penne skoon

Stap 6: Skakel die Pi aan

Voed die Pi
Voed die Pi

Ons benodig 'n maklike manier om 5V na die Pi Zero te kry, sodat ons ontslae kan raak van die mikro -USB -kabel wat ons tot dusver gebruik het. Daar is 'n aantal oplossings wat 12V tot 5V verlaag, soos 'n LM7805 lineêre spanningsreguleerder, maar dit is nie baie doeltreffend nie, so ek het verkies om die meer doeltreffende verstelbare boksomskakelaar te gebruik met die LM2596 -chip. Let daarop dat u die potensiometer moet draai totdat die uitsetspanning na 5V verminder word, soos benodig, sodat u 'n manier nodig het om spanning te meet.

Die gebruik van die LM2596 is eenvoudig: koppel die +12V aan IN +, grond aan IN-. Die Pi kan direk aan 5V gekoppel word deur OUT+ aan een van die Pi se 5V -penne te koppel, maar maak seker dat u die uitgangsspanning na 5V verander het voordat u dit doen, anders braai u u Pi!

Stap 7: Voltooi die kring en verpakking

Voltooi die kring en verpakking
Voltooi die kring en verpakking
Voltooi die kring en verpakking
Voltooi die kring en verpakking
Voltooi die kring en verpakking
Voltooi die kring en verpakking
Voltooi die kring en verpakking
Voltooi die kring en verpakking

Ons het nou al drie elemente van die stroombaan behandel wat saam in die algehele stroombaan hierbo getoon word. Om ruimte te bespaar en die kring netjieser te maak, plaas u kring op 'n strookbord of prototipe. Soldeer eers die kleinste komponente, die weerstande, dan die kragtransistor, enige verbindings en laastens die drade. Beplan u kring voordat u soldeer om seker te maak dat u plek vir alles het.

Ek het alles op 'n prototipe PCB gekoppel en vroulike koppenne gebruik sodat die Pi direk op die PCB kon sit. Die LED's op die horlosiekant is verbind deur weerstande aan die een kant van die bord, en ek het ruimte aan die ander kant van die bord gehou vir die kragtransistor en is vry vir enige ander stroombane wat ek later wil byvoeg.

Heg die horlosie aan die horlosie vas en maak seker dat die elektronika alles inpas. Alles was redelik styf vir my, sodat u miskien 'n bietjie moes herrangskik. Koppel die kragtoevoer aan en voer test1.py en test2.py van SSH af om te kyk of alles werk voordat die agterkant vasgemaak word.

Stap 8: Laai die kode + Voltooi op

Laai die kode + afwerking op
Laai die kode + afwerking op
Laai die kode + afwerking op
Laai die kode + afwerking op
Laai die kode + afwerking op
Laai die kode + afwerking op

Die kode

Laastens, as u dit nog nie gedoen het nie, laai die kode op en pas dit aan soos u wil (met behulp van nano filename.py). Die voordeel van die verbinding met die Pi via SSH is dat u die kode kan bywerk sonder om die klok oop te maak.

Hierdie luislangprogramme uit Stap 2 doen die volgende:

  • light_clock_simple.py wys eenvoudig die uur op die LED's en vervaag op en af die LED -strook op sekere tye
  • light_clock_pwm.py is dieselfde as hierbo, maar kan ook die helderheid van die LED's verminder en die minute met 'n ander helderheid as die ure vertoon. U moet met die helderheidsvlakke van albei speel, sodat die kontras tussen die twee merkbaar is

Dit moet 'n goeie basis bied om by die kode te voeg, byvoorbeeld, u kan 'n knoppie byvoeg om die ligalarm te sluimer.

Om die program te begin wanneer die Pi begin, moet ons '@reboot nohup python light_clock_pwm.py &' by die einde van die crontab -lêer voeg, wat vanaf die terminale met crontab -e oopgemaak kan word. Herbegin u Raspberry Pi om te kyk of dit nou met sudo shutdown -r werk.

Moontlike toevoegings

Hier is 'n paar idees van ekstra funksies wat bygevoeg kan word

  • Voeg 'n sluimerknoppie by
  • Voeg 'n lampmodus by
  • Koppel aan IFTTT (bv. Lig kan aanskakel as u telefoonalarm afgaan/flits as e -pos ontvang word)
  • Deur die aanraakvermoë by te voeg, maak die horlosie 'n aanraaklamp

As u PWM gebruik, kan u opmerk dat die LED soms 'n bietjie flikker, veral met 'n laer helderheid. Dit is omdat die Pi sagteware PWM gebruik, sodat CPU -prosesse die werksiklus kan beïnvloed. Omdat ek minder prosesse aan die gang gehad het, het ek die afgesnyde bedryfstelsel Raspbian Lite gebruik. Hardware PWM is ook op 'n paar penne beskikbaar, so as flikker 'n probleem bewys, is dit dalk iets om na te kyk.

Ek hoop dat u hierdie insiggewende insiggewend gevind het en dat u óf geïnspireer voel om 'n ou wekker op te stel, of om elemente van die kode vir u eie projek te gebruik.

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

Tweede prys in die LED Strip Speed Challenge

Aanbeveel: