Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-23 15:12
Sa proyektong ito, tinutulak ko ang isang kumpletong sirang alarm-up na alarm clock. Ang mukha ng orasan ay pinalitan ng 12 LEDs, iluminado ng isang LED strip sa paligid ng gilid ng orasan. Sinasabi ng 12 LEDs ang oras at ang LED strip ay na-program upang kumilos bilang isang alarma, na hanggang sa ganap na ningning sa itinakdang oras. Ang lahat ay kinokontrol ng isang Raspberry Pi Zero na nagpapahintulot sa hindi mabilang na mga posibilidad ng pagsasama at pagpapalawak tulad ng awtomatikong pagsabay sa light alarm sa iyong alarma sa telepono o pag-flash ng mga LED kapag nakatanggap ka ng isang email.
Gumagamit ang proyekto ng medyo mura o muling ginamit na mga bahagi - ang tanging bagay na natapos akong bumili ay ang regulator ng boltahe. Lahat ng iba pa ay nangyari na ako na nakahiga tulad ng isang off-cut ng LED strip. Ang Instructable na ito ay gagabay sa iyo sa kung paano ako nagbigay ng isang bagong buhay sa aking sirang orasan at inaasahan kong maaari kang magbigay ng inspirasyon upang maiangat ang sarili mong bagay.
Hakbang 1: Mga Bahagi
Upang makontrol ang lahat ng bagay na gagamitin namin ang isang Raspberry Pi Zero dahil maliit ito, napakaliit ng gastos at maaaring konektado sa WiFi na nangangahulugang hindi namin kailangan bilang real time na orasan at samakatuwid ay madaling mai-update ang code sa malayo mula sa isang laptop. Maliban kung mayroon kang Pi Zero W, kumokonekta kami sa isang WiFi network gamit ang isang USB WiFi dongle.
Narito ang isang listahan ng mga bahagi na ginamit ko ngunit ang karamihan sa mga bagay ay maaaring mapalitan para sa naaangkop na mga kahalili. Halimbawa sa halip na isang Raspberry Pi maaari kang gumamit ng isang Arduino na may real time na orasan upang makontrol ang proyekto.
Ginamit na mga bahagi
- Isang lumang alarm clock
- 30cm ng maligamgam na puting LED strip
- 1x Raspberry Pi Zero + micro SD card
- 1x USB WiFi dongle + micro USB sa USB converter
- 12x LEDs
- 12x 330ohm resistors (gumamit ng mas mataas kung nais mong dimmer LEDs)
- 1x TIP31a (o iba pang npn power transistor o MOSFET)
- 1x 1k risistor
- 1x LM2596 DC-DC adjustable buck converter (pababa ng 12V para sa 5V para sa Raspberry Pi)
- 1x 12v power supply (+ paraan ng pagpasok sa iyong proyekto)
- 10cm x 10cm na kahoy para sa mukha ng orasan (dapat na angkop na payat upang mai-mount ang iyong mga LED)
- Iba't ibang mga piraso ng iba't ibang mga wire ng kulay
Mga kapaki-pakinabang na bagay na mayroon
- Panghinang + solder
- Mainit na pandikit
- Multimeter
- Breadboard
- Mga pin ng header ng babae
- Micro SD card reader o converter
- Isang kompyuter
- Mini HDMI adapter + HDMI screen kung nais mong gamitin ang kapaligiran sa desktop ng Pi
Hakbang 2: Pag-set up ng Raspberry Pi
Operating System
Dahil ang Raspberry Pi ay hindi makakonekta sa isang screen, pinili kong gumamit ng Raspbian Buster Lite na hindi kasama ng isang desktop environment. Kung mas bago ka sa Raspberry Pi baka gusto mong manatili sa karaniwang Raspbian Buster na may kasamang desktop. Kung hindi ka sigurado kung paano i-install ang iyong operating system, ito ay isang mahusay na mapagkukunan. Ang parehong mga operating system ay maaaring ma-download mula sa website ng Raspberry Pi.
Para sa sandaling ito, paganahin ang Pi sa pamamagitan ng pag-input ng kuryente na Micro USB. Ikonekta din ang dongle ng USB WiFi.
Pakikipag-usap sa Raspberry Pi
Kapag ang lahat ay nakabalot, medyo mahirap i-access ang Pi kung nais mong baguhin ang code atbp. Ang paggamit ng SSH ay gumagamit ng pagkonekta sa Pi at makontrol ito mula sa ibang computer. Hindi ito naka-on bilang default ngunit maaari naming gawin sa pamamagitan lamang ng paggawa ng isang folder na tinatawag na ssh sa boot na pagkahati ng iyong SD card. Kung nag-log in ka na sa iyong Pi magagawa mo rin ito sa pamamagitan ng pagta-type ng sudo raspi-config sa Terminal at pag-navigate sa Mga Pagpipilian sa Interfacing> SSH at pagpili ng Oo upang paganahin ito.
Ngayon ay maaari kang kumonekta sa iyong Pi sa ibang computer. Sa Mac o Linux maaari mong gamitin ang iyong terminal application ngunit sa karamihan ng mga bersyon ng Windows kailangan mong mag-install ng isang SSH client tulad ng PuTTY. Kumonekta sa Pi sa pamamagitan ng pag-type ng ssh pi @ kung saan ang hostname ay pinapalitan ng hostname ng IP address ng iyong Pi. Ang default na hostname ay raspberrypi.local. Humihiling sa iyo ng isang password kung saan, kung hindi mo pa ito nababago, ay raspberry.
Pag-install ng mga bagay na kinakailangan
Siguraduhin muna na ang lahat ay napapanahon sa pamamagitan ng pagpapatakbo ng sudo apt update at pagkatapos ay sudo apt full-upgrade.
Upang matiyak kung ano ang kailangan namin upang makontrol ang mga pin ng GPIO sa uri ng Pi sudo apt-get install python-rpi.gpio at sudo apt-get install python3-rpi.gpio. Dapat na mai-install ang mga ito sa buong bersyon ng Raspbian.
Ang code
Narito ang code upang mai-download upang magamit ang lahat. Kung gumagamit ka ng isang kapaligiran sa desktop i-paste ang mga ito sa iyong folder ng Mga Dokumento.
Kung gumagamit ka ng linya ng utos ng SSH, mag-navigate sa iyong folder sa bahay sa pamamagitan ng pag-type ng cd ~ / Mga Dokumento at pagpindot sa enter. Gumawa ng isang bagong file na tinatawag na test1.py na may nano test1.py. Bubuksan nito ang nano text editor kung saan maaari mong i-paste ang code ng na-download na test1.py file. CTRL-O at pindutin ang enter upang i-save ang file at CTRL-X upang umalis sa editor. Ulitin ang proseso para sa natitirang mga file.
Hakbang 3: Pag-install ng LED Strip
Una i-pop ang LED strip sa orasan upang makita kung magkano ang kakailanganin mo, markahan ang haba na ito at gupitin ang strip sa susunod na cut point tulad ng ipinakita. Mas madaling mag-wire ng mga wire sa strip bago maalis ang strip sa lugar. Ito ay isang magandang gabay sa kung paano ito gawin ngunit kung hindi ka sigurado ay magsasanay lang ako sa solder na sumali sa piraso na pinutol mo lang ang iyong strip. Maghinang ng isang kawad sa positibong solder point at isang wire sa negatibo. Tiyaking sinubukan mo ang iyong LED strip na gumagana bago mo idikit ito sa iyong orasan.
Dahil ang ginamit na LED strip na ginamit ko ay ginamit bago nawala ang sarili nitong pag-back up ng sarili kaya kailangan kong gumamit ng mainit na pandikit upang ayusin ang strip sa paligid ng gilid ng orasan. Kung mayroon kang labis na haba, takpan ang punto kung saan nakakabit ang mga wire. Maaaring gusto mong i-install ang strip sa paglaon ngunit nahanap ko na mas madali itong i-tucked ang layo sa orasan.
Hakbang 4: Pagkontrol sa LED Strip
Pagkonekta sa LED strip
Ang LED strip ay tumatakbo sa 12V kaya hindi maaaring pinalakas mula sa Pi nang direkta. Upang makontrol ang mga ito gagamit kami ng isang power transistor (hal. TIP31a) na konektado hanggang sa Pi tulad ng ipinakita sa itaas. Inirerekumenda ko munang suriin ito lahat ng gumagana sa isang breadboard.
- Ikonekta ang GPIO 19 sa base sa pamamagitan ng isang 1k risistor
- Ang emitter ay dapat na konektado sa GND
- Ikonekta ang kolektor sa negatibong terminal ng LED strip
- Ikonekta ang positibong LED strip terminal sa + 12V
Pagsubok
Sa linya ng utos na nagivate sa iyong folder ng mga dokumento (cd ~ / Mga Dokumento) at i-type ang python test1.py at ipasok. Dapat mong makita ang pagtaas ng LED strip at pagbaba ng ningning. Upang umalis sa programa pindutin ang CTRL-C. Maaari mong i-edit ang file (nano test1.py) upang baguhin ang bilis at mga ilaw sa programa.
i-import ang RPi. GPIO bilang GPIOimport time GPIO.setmode (GPIO. BCM) # Gumamit ng BCM pinout GPIO.setwarnings (Mali) # Huwag pansinin ang mga babala tungkol sa ginagamit na mga pin para sa iba pang mga bagay na ledStripPin = 19 # LED strip ay hinihimok mula sa pin na GPIO.setup (ledStripPin, GPIO. OUT) # Itakda ang ledStripPin bilang isang output pwm = GPIO. PWM (ledStripPin, 100) # PWM sa ledStripPin na may dalas na 100Hz dutyCycle = 0 # Paunang ningning bilang porsyento pwm.start (dutyCycle) subukan: habang Totoo: para dutyCycle sa saklaw (0, 101, 1): # Fade up pwm. ChangeDutyCycle (dutyCycle) oras. tulog (0.05) para sa dc sa saklaw (95, -1, -1): # Fade down pwm. ChangeDutyCycle (dc) time.makatulog (0.05) maliban sa KeyboardInterrupt: # Pindutin ang CTRL-C upang tumigil, at pagkatapos ay: pwm.stop () # Itigil ang pwm GPIO.cleanup () # Linisin ang mga GPIO pin
Hakbang 5: Paggawa ng Clock Face
Gupitin ang piraso ng kahoy para sa iyong orasan na humarap sa sukat upang magkasya ito sa iyong orasan. Pinahinga ko ang akin ng halos 3cm mula sa harap. Mag-drill ng 12 butas sa diameter ng iyong mga LED (karaniwang 3mm o 5mm) na may spaced 30 degree mula sa bawat isa. Buhangin ang harapan sa harap at ilapat ang tapusin na iyong pinili. Mula sa likurang bahagi ilagay ang mga LED upang ituro sa harap. Gumamit ako ng mainit na pandikit upang mapanatili ang mga LED sa lugar na may positibong terminal (mas mahabang wire) na nakaharap sa loob. Ang laki ng aking mukha ng orasan ay nangangahulugang maaari kong maghinang ng lahat ng mga negatibong terminal nang magkasama (tingnan sa itaas) kaya isang kawad lamang ang kinakailangan upang ikonekta ang lahat ng 12 LEDs sa GND. Susunod, maghinang ng isang wire sa bawat LED.
Kung nais mong subukan ito sa isang breadboard tandaan muna na gumamit ng isang risistor (330ohm ay medyo pamantayan) sa serye sa bawat LED bago mo ikonekta ito sa isa sa mga pin ng Pi GPIO. Maglaro sa paligid ng halaga ng risistor na ginagamit mo upang makakuha ng antas ng liwanag na masaya ka. Ang isang t-cobbler ay talagang kapaki-pakinabang para sa pagputol ng mga pin ng Pi sa isang breadboard bagaman kakailanganin mong maghinang ang mga pin ng header para dito. Gumamit ng test2.py (patakbuhin gamit ang python test2.py) ngunit tiyaking na-edit mo muna ang programa at ipasok ang mga pin ng GPIO ng Pi na ginamit mo para sa bawat LED.
i-import ang RPi. GPIO bilang GPIO
i-import ang oras GPIO.setmode (GPIO. BCM) # Gamitin ang pinout ng BCM GPIO.setwarnings (Maling) # Huwag pansinin ang mga babala tungkol sa ginagamit na mga pin para sa iba pang mga bagay-bagay # Palitan ang isa, dalawa, … na may kaukulang numero ng pin na hourPin = [isa, dalawa, tatlo, apat, lima, anim, pito, walo, siyam, sampu, labing-isa, labing dalawa] # Ang mga pin na ang mga LED ay konektado mula 1-12 para sa i sa saklaw (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Itakda ang lahat ng mga hourPins bilang output GPIO.output (hourPin , 0) # Siguraduhin na ang lahat ng mga LED ay naka-off na subukan: habang Totoo: para sa i sa saklaw (0, 12) GPIO.output (hourPin , 1): time.s Sleep (0.05) para sa i sa saklaw (0, 12) GPIO.output (hourPin , 0): time.s Sleep (0.05) maliban sa KeyboardInterrupt: # Pindutin ang CTRL-C upang umalis, at pagkatapos: GPIO.cleanup () # Linisin ang mga GPIO pin
Hakbang 6: Pagpapatakbo ng Pi
Kailangan namin ng isang madaling paraan ng pagkuha ng 5V sa Pi Zero upang maalis namin ang micro USB cable na ginagamit namin upang mapatakbo ito hanggang ngayon. Mayroong isang bilang ng mga solusyon na bumababa sa 12V hanggang 5V tulad ng isang LM7805 linear voltage regulator ngunit ang mga ito ay hindi masyadong mahusay kaya sa halip pinili ko na gamitin ang mas mahusay na madaling iakma na converter ng buck gamit ang LM2596 chip. NB sa pamamagitan nito kakailanganin mong i-twist ang potentiometer hanggang sa ang boltahe ng output ay mabawasan sa 5V kung kinakailangan kaya kakailanganin mo ng ilang paraan ng pagsukat ng boltahe.
Ang paggamit ng LM2596 ay simple: ikonekta ang + 12V sa IN +, ground sa IN-. Ang Pi ay maaaring konektado nang direkta sa 5V sa pamamagitan ng pagkonekta sa OUT + sa isa sa mga 5V pin ng Pi ngunit tiyaking binago mo ang output boltahe sa 5V bago mo ito gawin o iprito mo ang iyong Pi!
Hakbang 7: Kumpletuhin ang Circuit at Packaging
Natakpan namin ngayon ang lahat ng tatlong mga elemento ng circuit na ipinapakita nang magkasama sa pangkalahatang circuit sa itaas. Upang makatipid ng puwang at gawin ang neater ng circuit na ilagay ang iyong circuit sa strip board o prototype board. Una panghinang ang pinakamaliit na mga bahagi, ang resistors, pagkatapos ang power transistor, anumang konektor at sa wakas ang mga wire. Planuhin ang iyong circuit bago ka maghinang upang matiyak na mayroon kang puwang para sa lahat.
Ikinonekta ko ang lahat sa isang prototyping PCB at gumamit ng mga babaeng pin ng header upang direktang mai-mount ang Pi papunta sa PCB. Ang mga LED sa mukha ng orasan ay konektado sa pamamagitan ng mga resistors sa isang gilid ng board at pinananatili ko ang puwang sa kabilang panig ng board para sa power transistor at libre para sa anumang iba pang circuitry na maaaring nais kong idagdag sa paglaon.
Ikabit ang mukha ng orasan sa orasan at siguraduhing umaangkop ang electronics. Lahat ay medyo masikip para sa akin kaya maaaring kailanganin mong gumawa ng pag-aayos muli. Ikonekta ang suplay ng kuryente at patakbuhin ang test1.py at test2.py mula sa SSH upang suriin ang lahat na gumagana bago ilakip ang likod.
Hakbang 8: I-upload ang Code + Tapusin
Ang code
Panghuli kung hindi mo pa nagagawa, i-upload ang code at iakma ito ayon sa gusto mo (gamit ang nano filename.py). Ang pakinabang ng pagkonekta sa Pi over SSH ay maaari mong i-update ang code nang hindi binubuksan ang orasan.
Ang mga programang sawa na ito mula sa Hakbang 2 ay gawin ang mga sumusunod:
- ipinapakita lamang ng light_clock_simple.py ang oras sa mga LED at kumukupas pataas at pababa sa LED strip sa ilang mga oras
- Ang light_clock_pwm.py ay kapareho ng nasa itaas ngunit pinapayagan din na mabawasan ang ningning ng mga LED at ipinapakita ang mga minuto sa iba't ibang ningning sa mga oras. Kakailanganin mong maglaro sa mga antas ng ningning ng pareho upang kapansin-pansin ang pagkakaiba sa pagitan ng dalawa
Dapat magbigay ang mga ito ng isang matibay na batayan para sa pagdaragdag sa code, halimbawa baka gusto mong magdagdag ng isang pindutan upang ma-snooze ang light alarm.
Upang ilunsad ang programa kapag ang mga bota ng Pi kailangan namin upang idagdag ang '@reboot nohup python light_clock_pwm.py &' sa dulo ng crontab file na maaaring buksan mula sa terminal na may crontab -e. I-restart ang iyong Raspberry Pi upang suriin itong gumagana sa sudo shutdown -R ngayon.
Mga potensyal na karagdagan
Narito ang ilang mga ideya ng labis na pag-andar na maaaring idagdag
- Pagdaragdag ng isang pindutan ng pag-snooze
- Pagdaragdag ng isang mode ng lampara
- Kumokonekta sa IFTTT (hal. Maaaring mag-on ang ilaw kapag ang alarma ng iyong telepono ay patayin / flash kapag natanggap ang email)
- Ang pagdaragdag ng kakayahan sa kakayahan na hawakan ibig sabihin gawin ang orasan sa isang touch lamp
Maaari mong mapansin kapag gumagamit ng PWM na sa mga oras, lalo na na may mas mababang liwanag, ang LED ay kumikislap nang kaunti. Ito ay dahil ang Pi ay gumagamit ng software PWM kaya ang mga proseso ng CPU ay maaaring makaapekto sa cycle ng tungkulin. Ang pagkakaroon ng mas kaunting proseso ng pagpapatakbo ng tulong dito kaya't ginamit ko ang pared down operating system na Raspbian Lite. Ang Hardware PWM ay magagamit din sa ilang mga pin kaya kung ang flicker ay nagpapatunay ng isang isyu, maaaring ito ay isang bagay na titingnan.
Inaasahan kong nahanap mo ang impormasyong Nakapagtuturo at maaaring maging inspirasyon sa pag-up motor ng isang lumang alarm or o gumamit ng mga elemento ng code para sa iyong sariling proyekto.
Pangalawang Gantimpala sa LED Strip Speed Challenge
Inirerekumendang:
Smart Alarm Clock: isang Smart Alarm Clock na Ginawa Ng Raspberry Pi: 10 Hakbang (na may Mga Larawan)
Smart Alarm Clock: isang Smart Alarm Clock na Ginawa Ng Raspberry Pi: Nais mo na ba ang isang matalinong orasan? Kung gayon, ito ang solusyon para sa iyo! Gumawa ako ng Smart Alarm Clock, ito ay isang orasan na maaari mong baguhin ang oras ng alarma ayon sa website. Kapag pumapatay ang alarma, magkakaroon ng tunog (buzzer) at 2 ilaw ang
DIY Smart Scale With Alarm Clock (na may Wi-Fi, ESP8266, Arduino IDE at Adafruit.io): 10 Hakbang (na may Mga Larawan)
DIY Smart Scale With Alarm Clock (na may Wi-Fi, ESP8266, Arduino IDE at Adafruit.io): Sa aking nakaraang proyekto, bumuo ako ng isang matalinong sukat ng banyo sa Wi-Fi. Maaari nitong sukatin ang bigat ng gumagamit, ipakita ito nang lokal at ipadala ito sa cloud. Maaari kang makakuha ng karagdagang mga detalye tungkol dito sa link sa ibaba: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
DIY Sesame Street Alarm Clock (may Fire Alarm!): 6 na Hakbang (na may Mga Larawan)
DIY Sesame Street Alarm Clock (may Fire Alarm!): Kumusta kayong lahat! Ang proyektong ito ang aking una. Dahil darating ang unang kaarawan ng aking mga pinsan, nais kong gumawa ng isang espesyal na regalo para sa kanya. Narinig ko mula sa tiyuhin at tiya na siya ay nasa Sesame Street, kaya't nagpasya ako kasama ang aking mga kapatid na gumawa ng isang alarm clock batay
Mga LED Light Light Pens: Mga tool para sa Drawing Light Doodles: 6 Mga Hakbang (na may Mga Larawan)
Mga LED Light Light Pens: Mga tool para sa Drawing Light Doodles: Ang aking asawa na si Lori ay isang walang tigil na doodler at naglaro ako ng mahabang pagkakalantad ng litrato sa loob ng maraming taon. May inspirasyon ng PikaPika light artistry group at ang kadalian ng mga digital camera na kinuha namin sa light drawing art form upang makita kung ano ang magagawa. Mayroon kaming lar
LED Sunrise Alarm Clock Sa Nako-customize na Alarm ng Kanta: 7 Hakbang (na may Mga Larawan)
LED Sunrise Alarm Clock Sa Nako-customize na Alarm ng Kanta: Ang Aking Pagganyak Ngayong taglamig ang aking kasintahan ay nagkaroon ng maraming problema paggising sa umaga at tila naghihirap mula sa SAD (Seasonal Affective Disorder). Napansin ko pa nga kung gaano kahirap magising sa taglamig dahil hindi pa dumating ang araw