Kazalo:
- Zaloge
- 1. korak: Nastavitev Raspberry Pi
- 2. korak: Priključitev elektronike
- 3. korak: Oblikovanje baze podatkov
- 4. korak: Namestitev Arduina
- 5. korak: Raspberry Pi Backend
- 6. korak: Primer
Video: Zbudi me - pametna budilka: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Zbudi me je pametna budilka, ki jo lahko uporabljamo tudi kot pametno luč.
Vgrajen led trak simulira naravno svetlobo, ki prihaja v vašo sobo. To omogoča miren in naraven način za začetek dneva.
Budilka je opremljena tudi s 4*7 segmentnim zaslonom za odčitavanje časa, zvočniki za prebujanje ob vaši najljubši glasbi, tipko na dotik, ldr za prilagajanje svetlosti traku in temperaturnim senzorjem, s katerim si lahko ogledate temperaturo vaše sobe.
Zaloge
Seznam natančnih cen, ki sem jih plačal, najdete tukaj:
Mikrokrmilniki in računalniki:
Raspberry Pi 4I je uporabil malino pi 4 4GB, vendar bi moral biti vsak model maline pi 3+ v redu
Arduino Uno
Arduino se uporablja za krmiljenje prikaza ure 4*7 segmentov.
Senzorji:
- TMP36: temperaturni senzor
- LDR: Od svetlobe odvisen upor
Pogon:
- WS2801: LED trak, ki ga je mogoče individualno nasloviti
- LCD zaslon: 16*2 LCD zaslon.
- 4*7 segmentni prikaz ure
IC -ji:
- 74HC595: Registra za premik LCD zaslona
- MCP3008: 8-bitni analogno-digitalni pretvornik
- Pretvornik logične ravni: Uporablja se za komunikacijo med raspi in arduino
Druge stvari:
- Adafruit ojačevalnik MAX9744 za napajanje zvočnikov
- Za vsak zvočnik sem uporabil zvočnik polnega razpona Visaton 4Ohm 8Watt (art. Št. 2240)
- 9voltni napajalnik za napajanje ojačevalnika
- 5 -voltni napajalnik za napajanje led pasov in drugih komponent. Upoštevajte, da lahko vsak vodnik v ledstripu utopi 60 mA, zato poskrbite, da bo napajanje zadostno.
- Nekaj uporov 220Ohm
- Majhna plošča, ki jo postavite v svoj kovček.
Orodja:
- Spajkalnik.
- Nekaj za ohišje (uporabil sem 3D tiskalnik s PLA in PETG ter nekaj vinilnih nalepk, da sem dobil leseni učinek.)
1. korak: Nastavitev Raspberry Pi
Raspberry pi je naš glavni mikro krmilnik.
Raspberry pi vodi naš lokalni spletni strežnik, bazo podatkov, nadzoruje trak, zvočnike,…
1. del: Namestitev Raspbiana
S to vadnico namestite raspbian:
Prepričajte se, da je SSH omogočen
2. del: Povezovanje
Če se želite povezati z internetom, morate dostopati do terminala vašega maline pi. Priporočam uporabo kita. V vrsti terminala:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
"YourNetwork" je ime vašega wifi omrežja, "YourSSID" pa geslo omrežja.
Ko dodate omrežje, poskusite znova zagnati Raspberry Pi.
Vnesite ukaz 'ping 8.8.8.8', ki bo poslal paket google strežnikom, če dobite odgovor, da je vaše omrežje nastavljeno in deluje!
3. del: Namestite potrebne programe
Za zagon tega projekta bomo potrebovali nekaj namestitev dodatnih programov.
Preden začnemo, zaženite ta 2 ukaza in se prepričajte, da je vse nadgrajeno.
sudo apt posodobitev
sudo apt nadgradnja
To lahko traja nekaj časa.
Apache
sudo apt namestite apache2 -y
sudo apt namestite php libapache2-mod-php -y
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt namestite php -mysql -y
PHPMyAdmin
sudo apt install phpmyadmin -y
Python pip
Če želimo omogočiti nekatere knjižnice python, moramo namestiti pip
pip3 namestite mysql-connector-python
pip3 namestite flask-socketio
pip3 namestite flask-cors
pip3 namestite gevent
pip3 namestite gevent-websocket
2. korak: Priključitev elektronike
Dodal sem 2 shemi, 1 je shema za preskusne namene. Priporočam, da zgradite prvo shemo in poskušate delovati s kodo.
Spodaj sem dodal fritzing datoteke.
3. korak: Oblikovanje baze podatkov
To je shema baze podatkov, ki sem jo naredil. Besede so v nizozemščini, vendar bom vsako tabelo podrobno razložil.
Tabela 1: tblMuziek
To je precej osnovna miza. Shrani ime izvajalca, ime pesmi in ime datoteke skladbe.
Tabela 2: tblLedstrip
Ta tabela beleži trenutno stanje traku za vodenje, shranjuje stanje traku za vodenje. To potrebujemo za funkcijo pametne svetlobe.
Tabela 3: tblSensoren
Ta tabela spremlja senzorje v našem alarmu. Shranimo ime senzorja in kanal MCP3008
Tabela 4: tblMeting
Ta tabela shranjuje vrednosti naših senzorjev skupaj z njihovim časom.
Tabela 5: tblWekker
Ta miza shranjuje geslo in ime vaše budilke (npr. Spalnica) Ta miza ni obvezna, vendar sem jo dodal, ker predvidevam, da boste imeli v hiši več kot 1 budilko.
Tabela 6: tblAlarm
To je verjetno najpomembnejša tabela. Spremlja nastavljene alarme in kaj mora ura narediti (katero skladbo predvajati, katero zaporedje vodenja, ob katerih dneh naj se ugasne …). Zelo pomembno je spremljati 2 datuma. 1 datum se shrani pri kateri uri naj se oglasi alarm. Drugi spremlja, kdaj se je zadnjič oglasil alarm. Če želite vedeti, kateri delovni dan bi se moral izteči, sem uporabil varchar, ki vsebuje število 7 številk. Prva številka je ponedeljek, drugi torek, … Če je 1, bi morala ugasniti, če je 0, ne bi smela. Primer: 1111100 to pomeni, da bi se moral ta alarm sprožiti v ponedeljek, torek, sredo, četrtek in petek.
4. korak: Namestitev Arduina
Ta korak je zelo enostaven. V naslednjem koraku bo povezava do mojega githuba, kjer lahko prenesete datoteko arduino.
Kaj počne program?
Program čaka, da iz pi pridejo serijski podatki.
Takoj, ko so podatki prejeti, jih analizira skozi niz in pošlje nazaj potrditev pi.
Niz bo nekako takole: '1201' to pomeni, da je 12:01. Uporabil sem skupni anodni 7 -segmentni zaslon, kar pomeni, da morajo biti številke visoke, A, B, C, D, E, F, G in DP pa nizke, da jih vklopite. Če uporabljate običajno katodo, preprosto spremenite HIGH na LOW & LOW na HIGH.
Tukaj je povezava z več informacijami o tem, kako delujejo 7 -segmentni zasloni. (z uporabo knjižnice):
www.instructables.com/id/Using-a-4-digit-7…
Tukaj je povezava o 7 segmentnih zaslonih brez uporabe knjižnice:
create.arduino.cc/projecthub/SAnwandter1/p…
5. korak: Raspberry Pi Backend
Kodo lahko prenesete z Githubom. (https://github.com/VanHevelNico/WakeMeUp)
Kako namestiti program:
Zaledje je napisano v pythonu z uporabo flask. Lahko naredite storitev, ki samodejno zažene ta program (app.py).
Kodo vmesnika morate vnesti v datoteko html strežnika apache, ki smo jo prenesli prej. (/var/html)
Kako program deluje?
Ko je budilka vklopljena, pojdite na IP naslov svoje ure (prikazana bo na LCD -ju)
Takoj, ko greste na ta naslov IP v brskalniku, bo vaš računalnik v ozadje poslal zahtevo socket.io, ki pravi, da je odjemalec povezan. Ko bo zalednik to dobil, se bo začelo nekaj niti, ki jih bom razložil spodaj.
Nastaviti
To inicializira vse potrebne predmete.
GetTemp
Ta prebere kanal 0 mcp3008 in pretvori binarne podatke v dejansko temperaturo ter jih postavi v bazo podatkov s trenutnim datumom in uro.
GetTempGrafiek
To dobi zadnjih 20 vrednosti temperaturnega senzorja in ga odda na prednjo stran.
tijd_sturen
Ta metoda pridobi trenutni čas in preveri, ali se je minuta spremenila. Če se je spremenil, program pošlje nov čas arduinu z uporabo serijske komunikacije
checkAlarmen
To je najpomembnejša metoda. Prejema vse vklopljene alarme in preveri, ali mora kateri od teh alarmov izklopiti od danes do 5 minut (to je vmesni pomnilnik, s katerim se prepriča, da se vsak alarm vklopi, ko je to potrebno). Če se mora alarm sprožiti, bomo zagnali glasbo, LED -trak, … Neprestano beremo upor, občutljiv na silo, in ko vrednost pade pod 1000 (preberite tipko fsr) Izklopimo alarm in posodobimo alarm v zbirko podatkov. Datum, ko se je alarm zadnjič sprožil, smo nastavili na trenutni datum.
statusLight
Ta metoda oddaja vrednost traku in ga po potrebi vklopi.
lichtAanpassen
To je dodatna metoda, s katero zagotovite, da trak in alarmna lučka nista v sporu.
6. korak: Primer
Povezavo do mojih datotek najdete tukaj:
Za tiskanje ohišja sem uporabil 3D tiskalnik. Natisnjena je v 4 različnih delih:
- Sprednja plošča z luknjami za zvočnik in nekaj sten za 7 -segmentni zaslon
- Zunanji obroč za trak v prozorni PETG.
- Srednji del
- Zadnja plošča z luknjo za LCD in luknjo za kable.
V prvotnem modelu ni bilo luknje za 7 -segmentni zaslon, vendar je to potrebno, ker drugače svetloba 7 -segmentnega zaslona ne bo svetila.
Kot vidite, sem po vstavitvi vseh sestavnih delov uporabil vinilne nalepke z lesenim videzom, da je končni rezultat izgledal bolje. Zaslon ure sveti skozi nalepko, kar ustvarja zelo lep videz.
Priporočena:
Budilka z dvema zvoncema iz pločevinke sode: 7 korakov (s slikami)
Budilka z dvema zvončkoma iz pločevinke sode: Ta navodila vam pokažejo, kako iz budilke sode lahko naredite budilko z dvema zvoncema. Da bi bila ta budilka popolnoma funkcionalna, je bil vgrajen modul kremenove ure DIY
Mehurčka budilka poskrbi, da se zbujanje zbudi (ish): 7 korakov (s slikami)
Mehurčka budilka naredi prebujanje zabavno (ish): Prebujanje ob brenčeči budilki je zanič. Sem eden tistih ljudi, ki se ne marajo zbuditi, preden sonce ne zaide (ali je že več ur zunaj). Torej, kakšen boljši način, da se zbudite, kot zabava z mehurčki v postelji! Uporaba arduina in
Budilka za dan mrmota: 12 korakov (s slikami)
Budilka za dan mrmota: Dnevna budilka za mrmoča je sestavljena iz obrnjene ure Panasonic RC-6025, prilagojene za predvajanje zvoka iz filma Dan mrmota, ko se oglasi alarm. in film) je imel specifikacijo
Oledna budilka: 8 korakov (s slikami)
Oled Alarm Clock: Veliko je arduino/ESP32 ur, vendar ali uporabljajo te lepe in jasne OLED -e? Že nekaj časa eksperimentiram z arduino in ESP32, vendar nikoli nisem prišel do končnega izdelka. Naredil sem budilko s 4 1,3 -palčnim pon
Zbudi se !!!: 5 korakov
Zbudi se !!!: Ta projekt je namenjen prebujanju ljudi. Obstaja veliko ljudi, ki se niso mogli zbuditi iz alarma, zato je ta projekt namenjen temu, da se ti ljudje zlahka in hitro zbudijo. Pri projektu so bili uporabljeni servomotor in fotorezistor, ko so luči na fotorezistorju