Sisukord:

Uuendatud äratuskella nutivalgus: 8 sammu (piltidega)
Uuendatud äratuskella nutivalgus: 8 sammu (piltidega)

Video: Uuendatud äratuskella nutivalgus: 8 sammu (piltidega)

Video: Uuendatud äratuskella nutivalgus: 8 sammu (piltidega)
Video: Часть 3 — Аудиокнига «Грозовой перевал» Эмили Бронте (главы 12–16) 2024, November
Anonim
Uuendatud äratuskell Smart Light
Uuendatud äratuskell Smart Light
Uuendatud äratuskell Smart Light
Uuendatud äratuskell Smart Light
Uuendatud äratuskell Smart Light
Uuendatud äratuskell Smart Light

Selles projektis töötan ringlusse täielikult purunenud äratuskella. Kella nägu asendab 12 LED -i, mida valgustab kella serva ümbritsev LED -riba. 12 LED -i näitavad kellaaega ja LED -riba on programmeeritud toimima häirena, muutudes seatud ajal täisheleduseks. Kõike juhib Raspberry Pi Zero, mis võimaldab lugematuid integreerimis- ja laiendamisvõimalusi, näiteks valgussignaali automaatse sünkroonimist telefoni äratusega või LED -ide vilkumist e -kirja saamisel.

Projektis kasutatakse suhteliselt odavaid või taaskasutatud komponente - ainus asi, mille lõpuks ostsin, oli pingeregulaator. Kõik muu, mis mul juhtus olema, lamab, näiteks LED-riba katkestus. See õpetatav juhendab teid läbi selle, kuidas ma oma katkisele kellale uue elu andsin ja loodetavasti võib see inspireerida teid midagi uut kasutama.

Samm: osad

Osad
Osad
Osad
Osad
Osad
Osad

Kõigi juhtimiseks kasutame Raspberry Pi Zero -d, kuna see on väike, maksab väga vähe ja selle saab ühendada WiFi -ga, mis tähendab, et me ei vaja reaalajas kella ja seetõttu saame koodi hõlpsalt sülearvutist eemalt värskendada. Kui teil pole Pi Zero W -d, loome WiFi -võrguga ühenduse USB -dongli abil.

Siin on kasutatud osade loend, kuid enamiku asju saab sobivate alternatiivide vastu vahetada. Näiteks Raspberry Pi asemel võiksite projekti juhtimiseks kasutada reaalajas kellaga Arduinot.

Kasutatud osad

  • Vana äratuskell
  • 30 cm sooja valget LED -riba
  • 1x Raspberry Pi Zero + micro SD -kaart
  • 1x USB WiFi -dongle + mikro -USB -muundur
  • 12x LEDid
  • 12x 330ohm takistid (kasutage kõrgemaid, kui soovite hämaramat LED -i)
  • 1x TIP31a (või muu npn -võimsusega transistor või MOSFET)
  • 1x 1k takisti
  • 1x LM2596 DC-DC reguleeritav buck-muundur (alandab 12V 5V jaoks Raspberry Pi jaoks)
  • 1x 12v toiteallikas (+ võimalus oma projekti siseneda)
  • 10 cm x 10 cm puitu kella esikülje jaoks (peaks olema LED -ide paigaldamiseks piisavalt õhuke)
  • Erinevad tükid erinevat värvi traati

Kasulikud asjad olemas

  • Jootekolb + joodis
  • Kuum liim
  • Multimeeter
  • Leivalaud
  • Naissoost päisepoldid
  • Micro SD -kaardi lugeja või muundur
  • Arvuti
  • Mini HDMI -adapter + HDMI -ekraan, kui soovite kasutada Pi töölaua keskkonda

2. samm: seadistage Raspberry Pi

Raspberry Pi seadistamine
Raspberry Pi seadistamine
Raspberry Pi seadistamine
Raspberry Pi seadistamine

Operatsioonisüsteem

Kuna Raspberry Pi ei ühendata ekraaniga, otsustasin kasutada Raspbian Buster Lite'i, mis pole töölauakeskkonnaga kaasas. Kui olete Raspberry Pi uusim kasutaja, võiksite jääda töölauaga kaasas oleva standardse Raspbian Busteri juurde. Kui te pole kindel, kuidas oma operatsioonisüsteemi installida, on see suurepärane ressurss. Mõlemad operatsioonisüsteemid saab alla laadida Raspberry Pi veebisaidilt.

Hetkel lülitage Pi toide sisse oma Micro USB toitesisendi kaudu. Ühendage ka USB WiFi -dongle.

Vestlus Raspberry Pi -ga

Kui kõik on kokku pakitud, on Pi -le juurdepääs üsna keeruline, kui soovite koodi muuta jne. SSH kasutamine võimaldab ühendada Pi -ga ja juhtida seda teisest arvutist. See pole vaikimisi sisse lülitatud, kuid me saame seda teha, tehes lihtsalt oma SD -kaardi alglaadimissektsiooni kausta nimega ssh. Kui olete oma Pi-sse juba sisse loginud, saate seda teha ka siis, kui sisestate terminalis sudo raspi-config ja navigeerite liidese valikud> SSH ning valite selle lubamiseks Jah.

Nüüd saate ühendada oma Pi teise arvutiga. Macis või Linuxis saate kasutada oma terminalirakendust, kuid enamikus Windowsi versioonides peate installima SSH -kliendi, näiteks PuTTY. Ühendage Pi -ga, sisestades ssh pi@, kus hostinimi asendatakse teie Pi IP -aadressi hostinimega. Vaikimisi hostinimi on raspberrypi.local. See küsib teilt parooli, mis on vaarikas, kui te pole seda veel muutnud.

Vajaliku materjali installimine

Esmalt veenduge, et kõik oleks ajakohane, käivitades sudo apt update ja seejärel sudo apt full-upgrade.

Et veenduda selles, mida peame juhtima Pi tüüpi GPIO-nööpnõelte korral sudo apt-get install python-rpi.gpio ja sudo apt-get install python3-rpi.gpio. Need tuleks juba installida Raspbiani täisversiooni.

Kood

Siin on kood allalaadimiseks, et kõik toimiks. Kui kasutate töölauakeskkonda, kleepige need kausta Dokumendid.

Kui kasutate SSH käsurida, navigeerige oma kodukataloogi, tippides cd ~/Documents ja vajutades sisestusklahvi. Tehke nano test1.py abil uus fail nimega test1.py. See avab nano -tekstiredaktori, kuhu saate kleepida allalaaditud test1.py -faili koodi. Faili salvestamiseks vajutage CTRL-O ja vajutage sisestusklahvi ning redaktorist väljumiseks CTRL-X. Korrake protsessi ülejäänud failide puhul.

Samm: LED -riba paigaldamine

LED -riba paigaldamine
LED -riba paigaldamine
LED -riba paigaldamine
LED -riba paigaldamine

Esmalt lükake kella LED -riba, et näha, kui palju vajate, märkige see pikkus ja lõigake riba järgmises lõikepunktis, nagu näidatud. Juhtmete ribale jootmine on palju lihtsam, enne kui riba oma kohale kinni jääb. See on päris hea juhend selle kohta, kuidas seda teha, kuid kui te pole milleski kindel, siis harjutan lihtsalt jootmisliidet tükil, millest äsja riba lõikasite. Jootke üks traat positiivse jootepunkti ja üks traat negatiivse külge. Veenduge, et testite oma LED -riba tööd, enne kui selle kella külge kleepite.

Kuna minu kasutatud LED -riba oli kasutatud enne, kui see oli isekleepuva aluse kaotanud, pidin riba kinnitamiseks kellaääre serva ümber kasutama kuuma liimi. Kui teil on üleliigne pikkus, katke koht, kus juhtmed on kinnitatud. Võib -olla soovite riba hiljem paigaldada, kuid mul oli lihtsam see kella sisse panna.

Samm: LED -riba juhtimine

LED -riba juhtimine
LED -riba juhtimine

LED -riba ühendamine

LED -riba töötab 12 V toitel, nii et seda ei saa otse Pi -lt toita. Nende juhtimiseks kasutame jõutransistorit (nt TIP31a), mis on ühendatud Pi -ga, nagu ülal näidatud. Soovitan kõigepealt kontrollida, kas kõik töötab leivaplaadil.

  • Ühendage GPIO 19 baasiga 1k takisti kaudu
  • Emitter peaks olema ühendatud GND -ga
  • Ühendage kollektor LED -riba negatiivse klemmiga
  • Ühendage positiivne LED -riba klemm +12V

Testimine

Käsureal nagivate oma dokumentide kausta (cd ~/Documents) ja tippige python test1.py ning sisestage. Te peaksite nägema LED -riba heleduse suurenemist ja vähenemist. Programmist väljumiseks vajutage CTRL-C. Faili muutmiseks (nano test1.py) saate muuta programmi kiirust ja heledust.

importige RPi. GPIO GPIO -ks impordiaeg GPIO.setmode (GPIO. BCM) # Kasutage BCM -i pistikut GPIO.setwarnings (vale) # Ignoreerige hoiatusi muude tihvtide jaoks kasutatavate tihvtide kohta (ledStripPin, GPIO. OUT) # Määra ledStripPin väljundiks pwm = GPIO. PWM (ledStripPin, 100) # PWM on ledStripPin sagedusega 100Hz dutyCycle = 0 # Esialgne heledus protsendina pwm.start (dutyCycle) proovi: samas True: for dutyCycle vahemikus (0, 101, 1): # Fw up up pwm. ChangeDutyCycle (dutyCycle) time.sleep (0,05) alalisvoolu vahemikus (95, -1, -1): # Pwm down. ChangeDutyCycle (dc) time.sleep (0.05), välja arvatud klaviatuurInterrupt: # Väljumiseks vajutage klahvikombinatsiooni CTRL-C ja seejärel: pwm.stop () # Peatage pwm GPIO.cleanup () # Puhastage GPIO tihvtid

Samm: kella näo tegemine

Kella näo tegemine
Kella näo tegemine
Kella näo tegemine
Kella näo tegemine
Kella näo tegemine
Kella näo tegemine

Lõika oma kella jaoks puutükk suurusega allapoole, et see sobiks teie kellaga. Panin oma puhkama eestpoolt umbes 3 cm kaugusele. Puurige 12 LED -i läbimõõduga ava (tavaliselt 3 mm või 5 mm), mis asuvad üksteisest 30 kraadi kaugusel. Lihvige esikülg allapoole ja kandke oma valitud viimistlus. Tagaküljelt asetage LED -id nii, et need oleksid suunatud ettepoole. Kasutasin kuuma liimi, et hoida LED -id paigal positiivse klemmiga (pikem traat) sissepoole. Minu kella näo suurus tähendas, et suudan kõik negatiivsed klemmid kokku joota (vt ülal), nii et kõigi 12 LED -i ühendamiseks GND -ga oli vaja ainult ühte traati. Seejärel jootke iga LED -i külge traat.

Kui soovite seda testida leivaplaadil, pidage esmalt meeles, et kasutate iga LED -iga järjestikku takistit (330 oomi), enne kui ühendate selle mõne Pi GPIO tihvtiga. Mängige takisti väärtusega, mida kasutate heledustaseme saamiseks, millega olete rahul. T-cobbler on tõesti kasulik Pi-i tihvtide leivaplaadile murdmiseks, kuigi peate selleks jootma päise tihvtid. Kasutage test2.py (käivitage python test2.py abil), kuid veenduge, et redigeerite kõigepealt programmi ja sisestate iga LED -i jaoks kasutatavad Pi GPIO -tihvtid.

RPi. GPIO importimine GPIO -na

importimise aeg GPIO.setmode (GPIO. BCM) # Kasutage BCM -i pistikut GPIO.setwarnings (vale) # Ignoreerige hoiatusi muude tihvtide jaoks kasutatavate tihvtide kohta # Asendage üks, kaks,… vastava tihvti numbriga hourPin = [üks, kaks, kolm, neli, viis, kuus, seitse, kaheksa, üheksa, kümme, üksteist, kaksteist] # Nööpnõelad, millega valgusdioodid on ühendatud vahemikus 1–12 vahemikus (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Määrake kõik tunnipinnad väljunditeks GPIO.output (hourPin , 0) # Veenduge, et kõik LED -id ei põleks proovige: samas True: i jaoks vahemikus (0, 12)], 1): time.sleep (0,05) i jaoks vahemikus (0, 12) GPIO. Väljund (hourPin , 0): time.sleep (0,05), välja arvatud KeyboardInterrupt: # Väljumiseks vajutage CTRL-C ja seejärel: GPIO.cleanup () # Puhastage GPIO tihvtid

6. samm: Pi toide

Pi toide
Pi toide

Vajame lihtsat viisi 5 V toomiseks Pi Zero, et saaksime lahti saada mikro -USB -kaablist, mida oleme seni selle toiteks kasutanud. On mitmeid lahendusi, mis vähendavad 12 V kuni 5 V pinget, näiteks lineaarne pingeregulaator LM7805, kuid need pole eriti tõhusad, nii et otsustasin kasutada tõhusamat reguleeritavat buck -muundurit, kasutades LM2596 kiipi. NB! Sellega peate potentsiomeetrit keerutama, kuni väljundpinge on vastavalt vajadusele 5 V -ni vähenenud, nii et teil on vaja mingil viisil pinget mõõta.

LM2596 kasutamine on lihtne: ühendage +12V IN +, maandus IN-. Pi saab ühendada otse 5V -ga, ühendades OUT+ ühe Pi 5V pistikuga, kuid veenduge, et olete enne seda väljundpinge 5 V -le muutnud, vastasel juhul praadite oma Pi!

Samm: täitke ahel ja pakend

Täitke ring ja pakend
Täitke ring ja pakend
Täitke ring ja pakend
Täitke ring ja pakend
Täitke ring ja pakend
Täitke ring ja pakend
Täitke ring ja pakend
Täitke ring ja pakend

Nüüd oleme käsitlenud kõiki kolme ahela elementi, mis on ülaltoodud üldises vooluringis koos näidatud. Ruumi säästmiseks ja vooluahela korrastamiseks pange oma vooluahel ribaplaadile või prototüüpplaadile. Esmalt jootke väikseimad komponendid, takistid, seejärel toitetransistor, kõik pistikud ja lõpuks juhtmed. Planeerige oma vooluring enne jootmist, veendumaks, et teil on kõige jaoks ruumi.

Ühendasin kõik prototüüpimisega trükkplaadile ja kasutasin emase päise tihvte, et Pi saaks otse PCB külge kinnitada. Kellapinna valgusdioodid on ühendatud tahvli ühel küljel olevate takistite kaudu ja ma olen hoidnud plaadi teisel küljel ruumi toitetransistori jaoks ja vaba muude lülituste jaoks, mida võiksin hiljem lisada.

Kinnitage kellapilt kella külge ja veenduge, et kogu elektroonika sobiks sisse. Minu jaoks sobis kõik üsna tihedalt, nii et peate võib -olla ümberkorraldusi tegema. Ühendage toiteallikas ja käivitage SSH -st test1.py ja test2.py, et kontrollida, kas kõik töötab enne tagakülje kinnitamist.

Samm: laadige kood üles ja viimistlege

Laadige kood üles + Lõpeta
Laadige kood üles + Lõpeta
Laadige kood üles + Lõpeta
Laadige kood üles + Lõpeta
Laadige kood üles + Lõpeta
Laadige kood üles + Lõpeta

Kood

Lõpuks, kui te pole seda juba teinud, laadige kood üles ja kohandage seda vastavalt soovile (kasutades nano -failinime.py). Pi kaudu SSH -ga ühenduse loomise eeliseks on see, et saate koodi uuendada ilma kella avamata.

Need 2. etapi pythoniprogrammid teevad järgmist.

  • light_clock_simple.py kuvab LED -idel lihtsalt tunde ja tuhmub teatud ajal LED -riba üles ja alla
  • light_clock_pwm.py on sama, mis eespool, kuid võimaldab ka LED -ide heledust vähendada ja kuvab minutid erineva heledusega kui tunnid. Peate mängima mõlema heledustasemega, nii et nende kahe kontrast on märgatav

Need peaksid andma kindla aluse koodile lisamiseks, näiteks võiksite lisada äratuse edasilükkamiseks nupu.

Programmi käivitamiseks Pi käivitamisel peame lisama '@reboot nohup python light_clock_pwm.py &' crontab -faili lõppu, mille saab terminalist avada crontab -e abil. Taaskäivitage Raspberry Pi, et kontrollida, kas see töötab koos sudo shutdown -r -ga.

Võimalikud täiendused

Siin on mõned ideed lisafunktsionaalsuse kohta, mida võiks lisada

  • Edasilükkamisnupu lisamine
  • Lamprežiimi lisamine
  • Ühendamine IFTTT -ga (nt tuli võib süttida, kui telefoni äratus kustub/vilgub e -kirja saamisel)
  • Lisades mahtuvuse puutetundlikkuse, st muutke kellast puutelamp

PWM -i kasutamisel võite märgata, et mõnikord, eriti väiksema heleduse korral, vilgub valgusdiood veidi. Seda seetõttu, et Pi kasutab tarkvara PWM, nii et protsessorid võivad töötsüklit mõjutada. Sellele aitab kaasa vähem töötavaid protsesse, nii et kasutasin lihtsustatud operatsioonisüsteemi Raspbian Lite. Riistvara PWM on saadaval ka mõnel tihvtil, nii et kui virvendus on probleemiks, võib see olla midagi, mida tuleks uurida.

Loodan, et leidsite selle juhendava informatiivse teabe ja tunnete end inspireerituna vana äratuskella ümbertöötlemisest või kasutate koodi elemente oma projekti jaoks.

LED -riba kiiruse väljakutse
LED -riba kiiruse väljakutse
LED -riba kiiruse väljakutse
LED -riba kiiruse väljakutse

LED -ribade kiiruse väljakutse teine auhind

Soovitan: