Kazalo:
- 1. korak: Deli
- 2. korak: Nastavitev Raspberry Pi
- 3. korak: Namestitev LED traku
- 4. korak: Upravljanje LED traku
- 5. korak: Uravnavanje ure
- 6. korak: Napajanje Pi
- 7. korak: Dokončajte vezje in pakiranje
- 8. korak: Naložite kodo + Dokončaj
Video: Nadgrajena budilka, pametna luč: 8 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
V tem projektu obnavljam popolnoma pokvarjeno budilko. Številčnico ure zamenja 12 LED, osvetljenih z LED trakom okoli roba ure. 12 LED diod pove čas in LED trak je programiran, da deluje kot alarm in se ob nastavljenem času prižge do polne svetlosti. Vse nadzira Raspberry Pi Zero, ki omogoča nešteto možnosti integracije in razširitve, na primer samodejno sinhronizacijo svetlobnega alarma z alarmom v telefonu ali utripanje LED, ko prejmete e -poštno sporočilo.
Projekt uporablja sorazmerno poceni ali ponovno uporabljene komponente - edino, kar sem na koncu kupil, je bil regulator napetosti. Vse ostalo, kar sem slučajno imel naokoli, na primer odrezan LED trak. Ta Instructable vas bo vodil skozi to, kako sem svoji zlomljeni uri podaril novo življenje in upam, da vas bo navdihnil, da predelate nekaj svojega.
1. korak: Deli
Za nadzor nad vsem, kar bomo uporabljali, je Raspberry Pi Zero majhen, stane zelo malo in ga je mogoče povezati z WiFi, kar pomeni, da ga ne potrebujemo kot uro v realnem času, zato lahko preprosto posodobimo kodo na daljavo iz prenosnega računalnika. Razen če imate Pi Zero W, se bomo povezali z omrežjem WiFi s ključem USB WiFi.
Tu je seznam delov, ki sem jih uporabil, vendar je večino stvari mogoče zamenjati za ustrezne alternative. Na primer, namesto Raspberry Pi lahko za nadzor projekta uporabite Arduino z uro v realnem času.
Rabljeni deli
- Stara budilka
- 30 cm toplo bele LED trakove
- 1x Raspberry Pi Zero + mikro SD kartica
- 1x USB WiFi ključ + mikro USB v USB pretvornik
- 12x LED
- 12x 330ohm upori (uporabite višje, če želite zatemnilne LED)
- 1x TIP31a (ali drug npn napajalni tranzistor ali MOSFET)
- 1x 1k upor
- 1x LM2596 DC-DC nastavljiv pretvornik (znižuje 12V za 5V za Raspberry Pi)
- 1x 12v napajalnik (+ način vstopa v vaš projekt)
- 10 cm x 10 cm lesa za uro (mora biti primerno tanek za vgradnjo LED diod)
- Različni kosi žice različnih barv
Koristne stvari imeti
- Spajkalnik + spajkanje
- Vroče lepilo
- Multimeter
- Ogledna plošča
- Ženski zatiči glave
- Čitalnik ali pretvornik kartic Micro SD
- Računalnik
- Mini HDMI adapter + zaslon HDMI, če želite uporabiti namizno okolje Pi
2. korak: Nastavitev Raspberry Pi
Operacijski sistem
Ker Raspberry Pi ne bo povezan z zaslonom, sem se odločil za uporabo Raspbian Buster Lite, ki ni opremljen z namiznim okoljem. Če ste novi v Raspberry Pi, se boste morda želeli držati standardnega Raspbian Busterja, ki je priložen namizju. Če niste prepričani, kako namestiti operacijski sistem, je to odličen vir. Oba operacijska sistema lahko prenesete s spletnega mesta Raspberry Pi.
Trenutno napajajte Pi prek vhoda za napajanje Micro USB. Priključite tudi ključek USB WiFi.
Pogovor z Raspberry Pi
Ko je vse zapakirano, je zelo težko dostopati do Pi, če želite spremeniti kodo itd. Uporaba SSH omogoča uporabo povezave s Pi in upravljanje z drugega računalnika. To privzeto ni vklopljeno, lahko pa preprosto naredimo mapo ssh na zagonski particiji kartice SD. Če ste se že prijavili v svoj Pi, lahko to storite tudi tako, da v terminal vnesete sudo raspi-config in se pomaknete do možnosti Interfacing Options> SSH in izberete Yes, da ga omogočite.
Zdaj se lahko povežete s svojim Pi v drugem računalniku. V sistemu Mac ali Linux lahko uporabite svojo terminalsko aplikacijo, vendar morate v večini različic sistema Windows namestiti odjemalca SSH, kot je PuTTY. Povežite se s Pi tako, da vnesete ssh pi@, kjer se ime gostitelja nadomesti z imenom gostitelja, naslov IP vašega Pi. Privzeto ime gostitelja je raspberrypi.local. Vprašal vas bo za geslo, ki je, če ga še niste spremenili, malinovo.
Namestitev potrebnih stvari
Najprej se prepričajte, da je vse posodobljeno, tako da zaženete posodobitev sudo apt in nato popolno nadgradnjo sudo apt.
Če želite preveriti, kaj potrebujemo za nadzor zatičev GPIO na vrstah Pi sudo apt-get install python-rpi.gpio in sudo apt-get install python3-rpi.gpio. Ti bi morali biti že nameščeni v polni različici Raspbiana.
Koda
Tukaj je koda za prenos, da bo vse delovalo. Če uporabljate namizno okolje, jih prilepite v mapo Dokumenti.
Če uporabljate ukazno vrstico SSH, se pomaknite do domače mape tako, da vnesete cd ~/Documents in pritisnete enter. Ustvarite novo datoteko z imenom test1.py z nano test1.py. S tem se odpre urejevalnik besedila nano, kamor lahko prilepite kodo prenesene datoteke test1.py. CTRL-O in pritisnite enter, da shranite datoteko, in CTRL-X, da zaprete urejevalnik. Postopek ponovite za preostale datoteke.
3. korak: Namestitev LED traku
Najprej vstavite LED trak v uro, da vidite, koliko ga potrebujete, označite to dolžino in odrežite trak na naslednji točki reza, kot je prikazano. Veliko lažje je spajkati žice na trak, preden se trak zatakne. To je precej dober vodnik o tem, kako to storiti, če pa niste prepričani, bi samo vadil spajkanje na kosu, iz katerega ste pravkar odrezali trak. Spajate eno žico na pozitivno mesto spajkanja in eno žico na negativno. Preden ga prilepite v uro, se prepričajte, da deluje.
Ker je bil LED trak, ki sem ga uporabljal, že uporabljen, preden je izgubil samolepilno podlago, sem moral z vročim lepilom pritrditi trak okoli roba ure. Če imate prekomerno dolžino, pokrijte mesto pritrditve žic. Morda boste kasneje želeli namestiti trak, vendar se mi je zdelo, da ga je lažje spraviti v uro.
4. korak: Upravljanje LED traku
Priključitev LED traku
LED trak deluje na 12V, zato ga ni mogoče napajati neposredno iz Pi. Za njihovo upravljanje bomo uporabili močnostni tranzistor (npr. TIP31a), priključen na Pi, kot je prikazano zgoraj. Priporočam, da najprej preverite, ali vse deluje na krovu.
- Priključite GPIO 19 na bazo prek upora 1k
- Oddajnik mora biti priključen na GND
- Zbiralnik priključite na negativni priključek LED traku
- Pozitivni priključek LED traku priključite na +12V
Testiranje
V ukazni vrstici pojdite v mapo z dokumenti (cd ~/Documents) in vnesite python test1.py in vnesite. Morali bi videti povečanje in zmanjšanje svetlosti LED traku. Če želite zapreti program, pritisnite CTRL-C. Datoteko (nano test1.py) lahko spremenite, da spremenite hitrost in svetlost v programu.
uvoz RPi. GPIO kot GPIOimport čas GPIO.setmode (GPIO. BCM) # Uporabite GPIO izpis GPIO.setwarnings (False) # Prezri opozorila o uporabi zatičev za druge stvari ledStripPin = 19 # LED trak poganja ta pin GPIO.setup (ledStripPin, GPIO. dutyCycle v območju (0, 101, 1): # Zmanjšaj pwm. ChangeDutyCycle (dutyCycle) čas. spanje (0,05) za dc v območju (95, -1, -1): # Zmanjša pwm. ChangeDutyCycle (dc) čas.sleep (0,05) razen KeyboardInterrupt: # Pritisnite CTRL-C za izhod in nato: pwm.stop () # Ustavite pwm GPIO.cleanup () # Očistite zatiče GPIO
5. korak: Uravnavanje ure
Odrežite kos lesa za uro z velikostjo navzdol, da se prilega vaši uri. Svojega sem počival približno 3 cm spredaj. Izvrtajte 12 lukenj s premerom LED (običajno 3 mm ali 5 mm), ki so med seboj oddaljene 30 stopinj. Pobrusite sprednjo stran navzdol in nanesite zaključni premaz po vaši izbiri. LED diode postavite na zadnjo stran tako, da kažejo naprej. Uporabil sem vroče lepilo, da so LED diode na mestu s pozitivnim priključkom (daljša žica) navznoter. Velikost moje ure je pomenila, da lahko vse negativne priključke spajkam skupaj (glej zgoraj), zato je bila za povezavo vseh 12 LED na GND potrebna le ena žica. Nato spajkajte žico na vsako LED.
Če želite to preizkusiti na ploščici, najprej zaporedoma uporabite upor (330 ohmov je precej standarden) za vsako LED, preden ga priključite na enega od nožic Pi GPIO. Poigrajte se z vrednostjo upora, ki ga uporabljate, da dosežete raven svetlosti, s katero ste zadovoljni. T-cobbler je zelo uporaben za razbijanje Pi-jevih zatičev na ploščo, čeprav boste za to morali spajkati zatiče glave. Uporabite test2.py (zaženite z uporabo python test2.py), vendar najprej uredite program in vnesite Pi -jeve zatiče GPIO, ki ste jih uporabili za vsako LED.
uvozite RPi. GPIO kot GPIO
čas uvoza GPIO.setmode (GPIO. BCM) # Uporabite BCIO pinout GPIO.setwarnings (False) # Prezrite opozorila o zatičih, ki se uporabljajo za druge stvari # Zamenjajte enega, dva,… z ustrezno številko zavihka hourPin = [en, dva, tri, štiri, pet, šest, sedem, osem, devet, deset, enajst, dvanajst] # Zatiči, na katere so LED diode priključene od 1-12 za i v območju (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Nastavite vse timePins kot izhode GPIO.output (hourPin , 0) # Prepričajte se, da so vse LED izključene try: while True: za i v območju (0, 12) GPIO.output (hourPin , 1): time.sleep (0,05) za i v območju (0, 12) GPIO.output (hourPin , 0): time.sleep (0,05) razen KeyboardInterrupt: # Pritisnite CTRL-C za izhod in nato: GPIO.cleanup () # Očistite zatiče GPIO
6. korak: Napajanje Pi
Potrebujemo enostaven način, da dobimo 5V na Pi Zero, da se znebimo kabla mikro USB, ki smo ga do sedaj uporabljali za napajanje. Obstaja več rešitev, ki znižajo 12V na 5V, na primer linearni regulator napetosti LM7805, vendar te niso zelo učinkovite, zato sem se odločil za uporabo učinkovitejšega nastavljivega pretvornika z uporabo čipa LM2596. Opomba: pri tem boste morali potenciometer obračati, dokler se izhodna napetost ne zmanjša na 5 V, kar je potrebno, zato boste potrebovali način merjenja napetosti.
Uporaba LM2596 je preprosta: priključite +12V na IN +, ozemljite na IN-. Pi lahko priključite neposredno na 5V tako, da OUT+ priključite na enega od Pi -jevih 5V zatičev, vendar se prepričajte, da ste pred tem spremenili izhodno napetost na 5V, sicer boste svoj Pi prepražili!
7. korak: Dokončajte vezje in pakiranje
Zdaj smo zajeli vse tri elemente vezja, ki so skupaj prikazani v celotnem krogu zgoraj. Če želite prihraniti prostor in narediti vezje lepše, postavite vezje na ploščo ali prototipno ploščo. Najprej spajkajte najmanjše komponente, upore, nato napajalni tranzistor, vse priključke in na koncu žice. Pred spajkanjem načrtujte svoje vezje in se prepričajte, da imate prostora za vse.
Vse sem povezal na prototipno tiskano vezje in uporabil ženske zatiče za glavo, da se je Pi lahko montiral neposredno na tiskano vezje. LED diode na uri so povezane z upori na eni strani plošče, na drugi strani plošče pa sem shranil prostor za tranzistor za napajanje in za vsa druga vezja, ki bi jih kasneje morda želel dodati, sem prost.
Pritrdite uro na uro in se prepričajte, da je vsa elektronika nameščena. Vse se mi je zelo prilegalo, zato boste morda morali nekaj preurediti. Priključite napajanje in zaženite test1.py in test2.py iz SSH, da preverite, ali vse deluje, preden pritrdite hrbtno stran.
8. korak: Naložite kodo + Dokončaj
Koda
Nazadnje, če še niste, naložite kodo in jo prilagodite, kot želite (z uporabo nano filename.py). Prednost povezovanja s Pi prek SSH je, da lahko posodobite kodo, ne da bi odprli uro.
Ti programi python iz 2. koraka naredijo naslednje:
- light_clock_simple.py preprosto prikaže uro na LED diodah in ob določenih urah zbledi navzgor in navzdol po LED traku
- light_clock_pwm.py je enak zgornjemu, vendar omogoča tudi zmanjšanje svetlosti LED in prikazuje minute z drugačno svetlostjo kot ure. Morali se boste poigrati z nivoji svetlosti obeh, tako da bo opazen kontrast med obema
Ti bi morali biti trdna podlaga za dodajanje kode, na primer bi morda želeli dodati gumb za dremež svetlobnega alarma.
Za zagon programa, ko se Pi zažene, moramo dodati '@reboot nohup python light_clock_pwm.py &' na konec datoteke crontab, ki jo lahko odpremo s terminala s crontab -e. Znova zaženite Raspberry Pi in preverite, ali deluje s sudo shutdown -r.
Možni dodatki
Tu je nekaj idej o dodatni funkcionalnosti, ki bi jih lahko dodali
- Dodajanje gumba za dremež
- Dodajanje načina svetilke
- Vzpostavitev povezave z IFTTT (npr. Lučka se lahko prižge, ko se alarm telefona izklopi/utripa, ko prejmete e -pošto)
- Dodajanje zmogljivosti na dotik, to je, da uro naredite v svetilko na dotik
Pri uporabi PWM boste morda opazili, da LED dioda včasih, zlasti pri manjši svetlosti, nekoliko utripa. To je zato, ker Pi uporablja programsko opremo PWM, zato lahko procesi CPU vplivajo na delovni cikel. Ker mi je pri tem pomagalo manj procesov, sem uporabil okrnjen operacijski sistem Raspbian Lite. Strojni PWM je na voljo tudi na nekaj zatičih, zato, če utripanje dokazuje težavo, je to morda nekaj, kar je treba preučiti.
Upam, da ste našli to informativno informacijo in se bodite počutili navdihnjeno, da obnovite staro budilko ali uporabite elemente kode za svoj projekt.
Druga nagrada na hitrostnem izzivu LED traku
Priporočena:
Pametna namizna LED luč - Pametna razsvetljava W/ Arduino - Delovni prostor Neopixels: 10 korakov (s slikami)
Pametna namizna LED luč | Pametna razsvetljava W/ Arduino | Delovni prostor Neopixels: Danes preživljamo veliko časa doma, študiramo in virtualno delamo, zakaj torej ne bi povečali svojega delovnega prostora s prilagojenim in pametnim sistemom osvetlitve, ki temelji na LED -diodah Arduino in Ws2812b. Tukaj vam pokažem, kako zgradite svoj pametni Namizna LED luč, ki
Pametna budilka z uporabo Magicbita (Arduino): 10 korakov
Pametna budilka z uporabo programa Magicbit (Arduino): Ta vadnica prikazuje, kako narediti pametno budilko z uporabo OLED zaslona na plošči za razvijalce Magicbit brez uporabe modula RTC
Pametna budilka: pametna budilka iz Raspberry Pi: 10 korakov (s slikami)
Pametna budilka: pametna budilka iz Raspberry Pi: Ste si kdaj želeli pametno uro? Če je tako, je to rešitev za vas! Naredil sem pametno budilko, to je ura, ki jo lahko spremenite glede na spletno stran. Ko se alarm sproži, bo zaslišal zvočni signal in dve lučki bosta
GOOB - pametna budilka: 15 korakov (s slikami)
GOOB - pametna budilka: GOOB je kratica za "Get Out of Bed", kar ustreza imenu mojega projekta. Želel sem ustvariti napravo, ki me bo zjutraj zbudila, saj to ni najlažja naloga. Glavna ideja je, da budilka ne ustavi alarma
Nadgrajena kamera za varnostno kopiranje videokamere: 7 korakov (s slikami)
Nadgrajena kamera za varnostno kopiranje kamere: Prepričan sem, da večina od vas, ki to berete, ima predal ali omaro nekje polno nekoč ljubljene tehnologije, ki je postala prestara in zastarela. Vsekakor imam svoj delež stare tehnologije in žalostno je videti, da takšen potencial zapravlja. No, v tem priročniku sem