Sisukord:
- Samm: osad
- 2. samm: seadistage Raspberry Pi
- Samm: LED -riba paigaldamine
- Samm: LED -riba juhtimine
- Samm: kella näo tegemine
- 6. samm: Pi toide
- Samm: täitke ahel ja pakend
- Samm: laadige kood üles ja viimistlege
Video: Uuendatud äratuskella nutivalgus: 8 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
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
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
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
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 ü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
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
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
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
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 -ribade kiiruse väljakutse teine auhind
Soovitan:
RPi IoT nutivalgus Firebase'i abil: 4 sammu (koos piltidega)
RPi IoT Smart Light Firebase'i abil: see juhend näitab teile, kuidas teha ja seadistada rakendus Raspberry Pi juhtimiseks Firebase'i kaudu (veebipõhine andmebaas). Ja siis 3D -printimise juhtum Pi Zero W jaoks, Powerboost 1000C, aku ja Blinkt
DIY nutivalgus koos Raspberry Pi Zeroga: 4 sammu (piltidega)
DIY Smart Light koos Raspberry Pi Zeroga: nutikad tuled muutuvad üha populaarsemaks. Sellised tuled on tavaliselt LED -tuled, mida saab juhtida WiFi või Bluetoothi kaudu. Värve, küllastust ja heledust saab muuta nutitelefoni abil. Üks asi, millest ma aru sain, on see, et sageli on nutikas
1 £ Interneti -äratuskella raadio: 5 sammu (koos piltidega)
1 naelsterlingi Interneti -äratuskell: nii nagu paljudel inimestel, on mul vana nutitelefon ja nagu me teame, saab neid kasutada mitmel viisil. Siin teen internetikellaga raadio, mis maksab palju vähem kui need väljamõeldud saate oma iPhone'i ühendada
Arduino äratuskella relee: 6 sammu (piltidega)
Arduino äratuskella relee: Mul on palju probleeme varahommikul ärkamisega, eriti kui jäin eile õhtul üleval. Põhimõtteliselt võimaldab see projekt avada relee klahvistiku ja lcd abil määratud ajal. See relee saab juhtida paljusid seadmeid sisselülitamisel
Kuidas teha lihtsat iPhone'i äratuskella alust: 5 sammu (piltidega)
Lihtsa iPhone'i äratuskella aluse valmistamine: see on üheosaline tasane alus, mida saab kasutada koos oma iPhone'iga, kui see laaditakse kaabli kaudu. Minu jaoks tähendab see seda, et saan seda kasutada oma voodi juures äratuskellana, samal ajal kui ma seda näen. See on ka üheosaline disain, nii et seda on väga lihtne valmistada. Sain idee sealt