Kazalo:

Zbudi me - pametna budilka: 6 korakov
Zbudi me - pametna budilka: 6 korakov

Video: Zbudi me - pametna budilka: 6 korakov

Video: Zbudi me - pametna budilka: 6 korakov
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Wake Me Up - pametna budilka
Wake Me Up - pametna budilka

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

Priključitev elektronike
Priključitev elektronike
Priključitev elektronike
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

Oblikovanje baze podatkov
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

Raspberry Pi Backend
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

Ovitek
Ovitek
Ovitek
Ovitek
Ovitek
Ovitek

Povezavo do mojih datotek najdete tukaj:

Za tiskanje ohišja sem uporabil 3D tiskalnik. Natisnjena je v 4 različnih delih:

  1. Sprednja plošča z luknjami za zvočnik in nekaj sten za 7 -segmentni zaslon
  2. Zunanji obroč za trak v prozorni PETG.
  3. Srednji del
  4. 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: