Sadržaj:
- Supplies
- Korak 1: Postavljanje Raspberry Pi
- Korak 2: Spajanje elektronike
- Korak 3: Dizajn baze podataka
- Korak 4: Arduino postavljanje
- Korak 5: Raspberry Pi Backend
- Korak 6: Slučaj
Video: Wake Me Up - pametni budilnik: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Probudi me je pametni budilnik koji se može koristiti i kao pametno svjetlo.
Ugrađena led traka simulira prirodno svjetlo koje ulazi u vašu sobu. Ovo omogućava miran, prirodan način da započnete dan.
Budilica je također opremljena sa 4*7 segmentnim ekranom za očitavanje vremena, zvučnicima za buđenje uz omiljenu muziku, tipkom na dodir, ldr za prilagođavanje svjetline LED trake i temperaturnim senzorom koji možete koristiti za pregled temperaturu vaše sobe.
Supplies
Spisak tačnih cijena koje sam platio možete pronaći ovdje:
Mikrokontroleri i računari:
Raspberry Pi 4I je koristio malinu pi 4 4GB, međutim, svaki model maline pi 3+ bi trebao biti u redu
Arduino Uno
Arduino se koristi za kontrolu prikaza sata sa 4*7 segmenata.
Senzori:
- TMP36: senzor temperature
- LDR: Otpor zavisan od svetlosti
Pokretači:
- WS2801: Led traka za individualnu obradu
- LCD ekran: LCD ekran veličine 16*2.
- 4*7 segmentni prikaz sata
IC -ovi:
- 74HC595: Shiftregister za LCD ekran
- MCP3008: 8-bitni analogno-digitalni pretvarač
- Pretvarač logičke razine: Koristi se za komunikaciju između raspija i arduina
Ostale 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)
- 9voltno napajanje 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 štampač sa PLA i PETG i neke vinilne naljepnice da dobijem drveni efekt.)
Korak 1: Postavljanje Raspberry Pi
Raspberry 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
Koristite ovaj vodič za instalaciju raspbian -a:
Provjerite je li SSH omogućen
2. dio: Povezivanje
Da biste se povezali na internet, morate pristupiti terminalu svoje maline pi. Preporučujem upotrebu 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 servere ako dobijete odgovor da je vaša mreža postavljena i radi!
3. dio: Instalirajte potrebne programe
Trebat će nam instalirati neke 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 update
sudo apt upgrade
Ovo može potrajati.
Apache
sudo apt install apache2 -y
sudo apt install php libapache2-mod-php -y
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt instalirajte php -mysql -y
PHPMyAdmin
sudo apt install phpmyadmin -y
Python pip
Moramo instalirati pip da bismo omogućili neke python biblioteke
pip3 instalirajte mysql-connector-python
pip3 instalirajte flask-socketio
pip3 instalirajte flask-cors
pip3 install 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 da napravite prvu shemu i pokušate pokrenuti kôd.
U nastavku sam dodao datoteke za prevrtanje.
Korak 3: Dizajn baze podataka
Ovo je shema baze podataka koju sam napravio. Riječi su na holandskom, ali ću svaku tablicu detaljno objasniti.
Tabela 1: tblMuziek
Ovo je prilično osnovni sto. Pohranjuje ime izvođača, naziv pjesme i naziv datoteke pjesme.
Tabela 2: tblLedstrip
Ova tablica prati trenutno stanje LED trake, a sprema stanje LED trake. Ovo nam je potrebno za funkciju pametnog svjetla.
Tabela 3: tblSensoren
Ova tablica prati senzore u našem alarmu. Pohranjujemo naziv senzora i kanal MCP3008
Tabela 4: tblMeting
Ova tablica pohranjuje vrijednosti naših senzora zajedno s njihovim vremenom.
Tabela 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 vjerovatno najvažnija tablica. On prati alarme koje ste postavili i šta sat treba da uradi (koju pesmu da pusti, koji je redosled vodio, u koje dane treba da se uključi, …). Vrlo je važno pratiti 2 datuma. 1 datum se koristi za pohranjivanje sata u kojem bi se alarm trebao oglasiti. Drugi prati kada se zadnji put oglasio alarm. Da bih znao koji bi radni dan trebao izaći, upotrijebio sam varchar koji sadrži broj od 7 znamenki. Prva znamenka je ponedjeljak, druga 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: Arduino postavljanje
Ovaj korak je vrlo jednostavan. U sljedećem koraku bit će veza na moj github gdje možete preuzeti arduino datoteku.
Šta program radi?
Program čeka da serijski podaci stignu iz 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 uobičajeni anodni 7 -segmentni ekran, što znači da bi znamenke trebale biti visoke, a A, B, C, D, E, F, G i DP trebaju biti 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 tome kako 7 -segmentni ekrani rade. (uz upotrebu biblioteke):
www.instructables.com/id/Using-a-4-digit-7…
Evo veze o 7 segmentnih prikaza bez upotrebe biblioteke:
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 se piše 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 servera koji smo ranije preuzeli. (/var/html)
Kako program funkcionira?
Kad je budilnik uključen, idite na IP adresu sata (bit će prikazana na LCD -u)
Čim odete na tu IP adresu u svom pregledaču, vaš računar će poslati pozadini zahtjev socket.io u kojem se kaže da je klijent povezan. Kada 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 senzora 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 kada treba). Ako alarm mora da se uključi, pokrenućemo muziku, LED traku, … Neprestano čitamo otpornik osetljiv na silu i kada vrednost padne ispod 1000 (pročitajte taster fsr) Uključujemo alarm i ažuriramo alarm u bazu 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
Link do mojih datoteka možete pronaći ovdje:
Koristio sam 3D štampač za štampanje kućišta. Štampa se u 4 različita dela:
- 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
- Zadnja ploča sa rupom za LCD i rupom za kablove.
U originalnom modelu nije bilo rupe za 7 -segmentni ekran, međutim to je potrebno jer u suprotnom svjetlo 7 -segmentnog zaslona neće zasjati.
Kao što vidite nakon stavljanja svih komponenti, koristio sam vinilne naljepnice sa drvenim izgledom kako bi krajnji rezultat izgledao bolje. Ekran sata sjaji kroz naljepnicu što stvara vrlo lijep izgled.
Preporučuje se:
Bučni budilnik: 3 koraka
Bučni budilnik: Ja sam 13 -godišnji student na Tajvanu. Prvi put pravim stvari s Arduinom ako mi možete reći kako da poboljšam ovaj rad, ostavite mi komentare kako bih mogao biti bolji. (Hvala ) Ovaj sat vas može probuditi kada zadrijemate, ali ja
Oled budilnik: 8 koraka (sa slikama)
Oled budilica: Puno je arduino/ESP32 satova, ali koriste li oni lijepe i oštre OLED -ove? Već neko vrijeme eksperimentiram s arduinima i ESP32 -ima, ali nikada nisam stigao do gotovog proizvoda. Napravio sam budilicu sa 4 1,3 inča po mjesecu
Kako napraviti budilnik uradi sam sa štitom LCD tastature: 5 koraka
Kako napraviti budilnik uradi sam sa štitom za LCD tastaturu: Zdravo svima! U ovom uputstvu ću vam pokazati kako napraviti budilnik pomoću Arduino ploče. Za izradu ovog sata koristio sam Arduino UNO, štitnik LCD tastature, zujalicu od 5V i kratkospojnike. Na ekranu možete vidjeti vrijeme i podesiti vrijeme
Noćni budilnik MP3 sa alarmom: 6 koraka (sa slikama)
Noćni alarmni budilnik MP3: Za ovaj projekt želio sam izraditi prikladan i potpuno funkcionalan noćni budilnik sa riječju. Moji lični preduslovi za budilnik kraj kreveta su: Čitljivo pri svakom svjetlu, a noću ne zasljepljuje MP3 melodije alarma Privući
LED matrični budilnik (sa MP3 plejerom): 6 koraka (sa slikama)
LED matrični budilnik (sa MP3 plejerom): Ovaj budilnik zasnovan na Arduinu ima sve što biste očekivali od alarma - mogućnost da vas probudi sa svakom pjesmom koja vam se sviđa, dugme za odgodu i njegovo jednostavno upravljanje pomoću tri dugmeta. Postoje tri glavna bloka - LED matrica, RTC modul i