Sadržaj:

Probudi me - pametni budilnik: 6 koraka
Probudi me - pametni budilnik: 6 koraka

Video: Probudi me - pametni budilnik: 6 koraka

Video: Probudi me - pametni budilnik: 6 koraka
Video: Маленький лисенок вышел к людям за помощью 2024, Studeni
Anonim
Wake Me Up - pametni budilnik
Wake Me Up - pametni budilnik

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

Spajanje elektronike
Spajanje elektronike
Spajanje elektronike
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

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

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

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

  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. 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: