Sadržaj:
- Pribor
- Korak 1: Postavljanje Raspberry Pi
- Korak 2: Spajanje elektronike
- Korak 3: Dizajn baze podataka
- Korak 4: Postavljanje Arduina
- Korak 5: Raspberry Pi Backend
- Korak 6: Slučaj
Video: Probudi me - pametni budilnik: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Probudi me je pametna budilica koja se može koristiti i kao pametno svjetlo.
Ugrađena led traka simulira prirodno svjetlo koje ulazi u vašu sobu. To omogućuje miran, prirodan način za početak dana.
Budilica je također opremljena sa 4*7 segmentnim zaslonom za očitavanje vremena, zvučnicima za buđenje uz omiljenu glazbu, tipkom na dodir, ldr za prilagodbu svjetline LED trake i temperaturnim senzorom koji možete koristiti za pregled temperaturu vaše sobe.
Pribor
Popis točnih cijena koje sam platio možete pronaći ovdje:
Mikrokontroleri i računala:
Raspberry Pi 4I koristio je malinu pi 4 4GB, međutim, svaki model maline pi 3+ trebao bi biti u redu
Arduino Uno
Arduino se koristi za upravljanje prikazom sata sa 4*7 segmenata.
Senzori:
- TMP36: osjetnik temperature
- LDR: Otpor ovisan o svjetlu
Pokretači:
- WS2801: LED traka za individualnu obradu
- LCD zaslon: LCD zaslon veličine 16*2.
- 4*7 segmentni prikaz sata
IC -ovi:
- 74HC595: Registar pomaka za LCD zaslon
- MCP3008: 8-bitni analogno-digitalni pretvarač
- Pretvarač logičke razine: Koristi se za komunikaciju između raspija i arduina
Druge stvari:
- Adafruit MAX9744 pojačalo za napajanje zvučnika
- Bilo koji zvučnik, koristio sam Visaton 4Ohm 8Watt zvučnik punog raspona (br. Art. 2240)
- Napon napajanja od 9 volti za napajanje pojačala
- Napajanje od 5 volti za napajanje LED trake i drugih komponenti. Imajte na umu da svaki LED dioda u LED traci može utopiti 60 mA pa provjerite je li napajanje dovoljno.
- Nekoliko 220Ohm otpornika
- Mala ploča za postavljanje u vaše kućište.
Alati:
- Lemilica.
- Nešto za izradu kućišta (koristio sam 3d pisač s PLA i PETG i neke vinilne naljepnice da dobijem drveni efekt.)
Korak 1: Postavljanje Raspberry Pi
Malina pi je naš glavni mikro kontroler.
Raspberry pi pokreće naš lokalni web poslužitelj, bazu podataka, kontrolira LED traku, zvučnike,…
1. dio: Instaliranje Raspbiana
Pomoću ovog vodiča instalirajte raspbian:
Provjerite je li SSH omogućen
2. dio: Povezivanje
Da biste se povezali s internetom, morate pristupiti terminalu svoje maline pi. Preporučujem korištenje kita. U vrsti terminala:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
"YourNetwork" je naziv vaše WiFi mreže, a "YourSSID" je lozinka mreže.
Nakon što dodate mrežu, pokušajte ponovno pokrenuti Raspberry Pi.
Upišite naredbu 'ping 8.8.8.8' koja će poslati paket na google poslužitelje ako dobijete odgovor da je vaša mreža postavljena i radi!
3. dio: Instalirajte potrebne programe
Trebat će nam neki instalirati dodatne programe da bi se ovaj projekt pokrenuo.
Prije nego započnemo, pokrenite ove 2 naredbe kako biste bili sigurni da je sve nadograđeno.
sudo apt ažuriranje
sudo apt nadogradnja
Ovo bi moglo potrajati.
Apač
sudo apt install apache2 -y
sudo apt install php libapache2-mod-php -y
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt install php -mysql -y
PHPMyAdmin
sudo apt install phpmyadmin -y
Python pip
Moramo instalirati pip da bismo omogućili neke python knjižnice
pip3 instalirajte mysql-konektor-python
pip3 instalirajte flask-socketio
pip3 instalirajte flask-cors
pip3 instalirajte gevent
pip3 instalirajte gevent-websocket
Korak 2: Spajanje elektronike
Dodao sam 2 sheme, 1 je shema matične ploče za potrebe testiranja. Preporučujem izgradnju prve sheme i pokušaj pokretanja koda.
Dolje sam dodao datoteke za prevrtanje.
Korak 3: Dizajn baze podataka
Ovo je shema baze podataka koju sam napravio. Riječi su na holandskom, ali detaljno ću objasniti svaku tablicu.
Tablica 1: tblMuziek
Ovo je prilično osnovni stol. Sprema naziv izvođača, naziv pjesme i naziv datoteke pjesme.
Tablica 2: tblLedstrip
Ova tablica prati trenutno stanje LED trake, sprema stanje LED trake. Ovo nam je potrebno za funkciju pametnog svjetla.
Tablica 3: tblSensoren
Ova tablica prati senzore u našem alarmu. Spremamo naziv senzora i kanal MCP3008
Tablica 4: tblMeting
Ova tablica pohranjuje vrijednosti naših senzora zajedno s njihovim vremenom.
Tablica 5: tblWekker
Ova tablica pohranjuje lozinku i naziv vašeg budilnika (npr. Spavaća soba) Ova tablica nije obavezna, ali dodao sam je jer pretpostavljam da ćete u kući imati više od 1 budilice.
Tablica 6: tblAlarm
Ovo je vjerojatno najvažniji stol. On prati alarme koje ste postavili i što sat mora učiniti (koju pjesmu pustiti, koji niz vodi, kojim danima bi se trebao isključiti,…). Vrlo je važno pratiti 2 datuma. 1 datum se koristi za spremanje u koliko sati bi se alarm trebao oglasiti. Drugi bilježi zadnji put kad se alarm oglasio. Da bih znao koji bi radni dan trebao izaći, upotrijebio sam varchar koji sadrži broj od 7 znamenki. Prva znamenka je ponedjeljak, drugi utorak, … Ako je 1 onda bi se trebala isključiti, ako je 0 ne bi trebala. Primjer: 1111100 to znači da bi se ovaj alarm trebao oglasiti u ponedjeljak, utorak, srijedu, četvrtak i petak.
Korak 4: Postavljanje Arduina
Ovaj korak je vrlo jednostavan. U sljedećem koraku bit će veza na moj github gdje možete preuzeti arduino datoteku.
Što program radi?
Program čeka da serijski podaci stignu s pi.
Čim se podaci dobiju, oni se raščlanjuju kroz niz i šalju natrag potvrdu pi.
Niz će biti otprilike ovako: '1201' to znači da je 12:01. Koristio sam zajednički anodni 7 -segmentni zaslon, što znači da bi znamenke trebale biti visoke, a A, B, C, D, E, F, G i DP niske za njihovo uključivanje. Ako koristite uobičajenu katodu, samo promijenite HIGH na LOW & LOW na HIGH.
Evo veze s više informacija o načinu rada 7 -segmentnih zaslona. (uz korištenje knjižnice):
www.instructables.com/id/Using-a-4-digit-7…
Evo veze o 7 segmentnih prikaza bez upotrebe knjižnice:
create.arduino.cc/projecthub/SAnwandter1/p…
Korak 5: Raspberry Pi Backend
Možete preuzeti moj kôd koristeći Github. (https://github.com/VanHevelNico/WakeMeUp)
Kako instalirati program:
Pozadina je napisana u pythonu pomoću flaska. Možete napraviti uslugu koja automatski pokreće ovaj program (app.py).
Kôd sučelja trebali biste staviti u html datoteku apache poslužitelja koji smo ranije preuzeli. (/var/html)
Kako program funkcionira?
Kad je budilica uključena, idite na IP adresu sata (bit će prikazana na LCD -u)
Čim prijeđete na tu IP adresu u svom pregledniku, vaše će računalo poslati zahtjev socket.io na pozadinu rekavši da se klijent povezao. Kad pozadina to primi, počet će nekoliko niti koje ću objasniti u nastavku.
Postaviti
Ovo incijalizira sve potrebne objekte.
GetTemp
Ovo čita mcp3008 kanal 0 i pretvara binarne podatke u stvarnu temperaturu i stavlja ih u bazu podataka s trenutnim datumom i satom.
GetTempGrafiek
Ovo dobiva zadnjih 20 vrijednosti temperaturnog osjetnika i emitira ga na sučelje.
tijd_sturen
Ova metoda dobiva trenutno vrijeme i provjerava je li se minuta promijenila. Ako se promijenio, program šalje novo vrijeme arduinu putem serijske komunikacije
checkAlarmen
Ovo je najvažnija metoda. Dobiva sve alarme koji su uključeni i provjerava mora li neki od ovih alarma nestati između sada i prije 5 minuta (ovo je međuspremnik za provjeru da li se svaki alarm uključuje kad treba). Ako se alarm mora uključiti, pokrenut ćemo glazbu, LED traku, … Neprestano čitamo otpornik osjetljiv na silu, a kada vrijednost padne ispod 1000 (pročitajte pritisnuti fsr) Uključujemo alarm i ažuriramo alarm u baza podataka. Datum zadnjeg uključivanja alarma postavili smo na trenutni datum.
statusLight
Ova metoda emitira vrijednost LED trake i uključuje LED traku ako je potrebno.
lichtAanpassen
Ovo je dodatna metoda kako biste bili sigurni da se traka i alarmno svjetlo ne sukobljavaju.
Korak 6: Slučaj
Veza do mojih datoteka može se pronaći ovdje:
Ispisao sam kućište pomoću 3D pisača. Tiska se u 4 različita dijela:
- Prednja ploča s otvorima za zvučnik i nekim zidovima za 7 -segmentni zaslon
- Vanjski prsten za LED traku u prozirnom PETG -u.
- Srednji dio
- Stražnja ploča s otvorom za LCD i rupom za kabele.
U originalnom modelu nije bilo rupe za 7 -segmentni zaslon, međutim to je potrebno jer u protivnom svjetlo 7 -segmentnog zaslona neće zasjati.
Kao što vidite nakon umetanja svih komponenti, upotrijebio sam vinilne naljepnice s drvenim izgledom kako bi krajnji rezultat izgledao bolje. Zaslon sata sjaji kroz naljepnicu što stvara vrlo lijep efekt.
Preporučeni:
Bučni budilnik: 3 koraka
Bučni budilnik: Ja sam 13 -godišnji student na Tajvanu. Prvi put radim s Arduinom ako mi možete reći kako poboljšati ovaj rad, ostavite mi komentare kako bih mogao biti bolji. (Hvala ) Ovaj sat vas može probuditi kada drijemate, ali ja
Mjehurićasti budilnik čini buđenje zabavnim (ish): 7 koraka (sa slikama)
Mjehurićasti budilnik čini buđenje zabavnim (iš): Buđenje uz zujanje budilice je sranje. Ja sam jedan od onih ljudi koji se ne vole buditi prije izlaska sunca (ili vani već mnogo sati). Dakle, koji je bolji način da buđenje učinite zabavnim od zabave s mjehurićima u krevetu! Korištenje arduina i
Oled budilnik: 8 koraka (sa slikama)
Oled budilica: Puno je arduino/ESP32 satova, ali koriste li oni one lijepe i oštre OLED -ove? Eksperimentiram s arduinima i ESP32 -ima već neko vrijeme, ali nikada nisam stigao do gotovog proizvoda. Napravio sam budilicu sa 4 1,3 inča po mjesecu
Kako izraditi budilnik sam sa štitnikom LCD tipkovnice: 5 koraka
Kako napraviti budilnik sam sa svojim štitom za LCD tipkovnicu: Pozdrav svima! U ovom uputstvu pokazat ću vam kako napraviti budilicu pomoću Arduino ploče. Za izradu ovog sata koristio sam Arduino UNO, štitnik LCD tipkovnice, 5V zujalicu i kratkospojnike. Na zaslonu možete vidjeti vrijeme i podesiti vrijeme
LED matrični budilnik (s MP3 playerom): 6 koraka (sa slikama)
LED matrični budilnik (s MP3 playerom): Ovaj budilica bazirana na Arduinu ima sve što biste očekivali od alarma - mogućnost da vas probudi sa svakom pjesmom koja vam se sviđa, gumb za odgodu i jednostavno upravljanje pomoću tri gumba. Tri su glavna bloka - LED matrica, RTC modul i