Sadržaj:

Wake Me Up - pametni budilnik: 6 koraka
Wake Me Up - pametni budilnik: 6 koraka

Video: Wake Me Up - pametni budilnik: 6 koraka

Video: Wake Me Up - pametni budilnik: 6 koraka
Video: Мне стыдно 6. Шоу постыдных историй. В гостях Акжол Примбетов,Шынгыс Ермек и Биржан Кабылбаев 2024, Decembar
Anonim
Wake Me Up - pametni budilnik
Wake Me Up - pametni budilnik

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

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

Dizajn baze podataka
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

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

Slučaj
Slučaj
Slučaj
Slučaj
Slučaj
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:

  1. Prednja ploča s otvorima za zvučnik i nekim zidovima za 7 -segmentni zaslon
  2. Vanjski prsten za LED traku u prozirnom PETG -u.
  3. Srednji dio
  4. 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: