Përmbajtje:

Zgjohu me - një orë alarmi e zgjuar: 6 hapa
Zgjohu me - një orë alarmi e zgjuar: 6 hapa

Video: Zgjohu me - një orë alarmi e zgjuar: 6 hapa

Video: Zgjohu me - një orë alarmi e zgjuar: 6 hapa
Video: TRING ZILJA - Kenge per femije - Ringing Bell - Song for children by Studio "Çamarroket" 2024, Nëntor
Anonim
Wake Me Up - një orë alarmi e zgjuar
Wake Me Up - një orë alarmi e zgjuar

Wake me up është një orë alarmi e zgjuar që mund të përdoret gjithashtu si një dritë e zgjuar.

Rripi i integruar i dritës simulon dritën natyrale që vjen në dhomën tuaj. Kjo mundëson një mënyrë të qetë, natyrale për të filluar ditën tuaj.

Ora e alarmit është gjithashtu e pajisur me një ekran segment 4*7 për të lexuar kohën, altoparlantë për t'u zgjuar me muzikën tuaj të preferuar, një buton me prekje, një ldr për përshtatjen e shkëlqimit të brezit të përparmë dhe një sensor të temperaturës të cilin mund ta përdorni për të parë temperatura e dhomës tuaj.

Furnizimet

Një listë e çmimeve të sakta që kam paguar mund të gjendet këtu:

Mikrokontrolluesit dhe kompjuterët:

Raspberry Pi 4I përdori mjedrën pi 4 4 GB, megjithatë, çdo model mjedër pi 3+ duhet të jetë mirë

Arduino Uno

Arduino përdoret për të kontrolluar shfaqjen e orës së segmentit 4*7.

Sensorë:

  • TMP36: sensor i temperaturës
  • LDR: Rezistencë e varur nga drita

Aktivizuesit:

  • WS2801: Rrip led i adresueshëm individualisht
  • Ekran LCD: Një ekran LCD 16*2.
  • Shfaqja e orës 4*7 segment

IC -të:

  • 74HC595: Shiftregister për ekranin LCD
  • MCP3008: Konvertues analog në dixhital 8-bit
  • Konvertuesi i nivelit logjik: Përdoret për të komunikuar midis raspi dhe arduino

Gjëra të tjera:

  • Një përforcues adafruit MAX9744 për të fuqizuar altoparlantët
  • Çdo altoparlant, kam përdorur një altoparlant Visaton 4Ohm 8Watt me rreze të plotë (Art. Nr. 2240)
  • Një furnizim me energji 9 volt për të fuqizuar amplifikatorin
  • Një furnizim me energji 5 volt për të furnizuar brezin led dhe komponentët e tjerë. Mbani në mend se secili led në brez mund të zvogëlojë 60mA, prandaj sigurohuni që furnizimi juaj me energji është i mjaftueshëm.
  • Disa rezistorë 220Ohm
  • Një tabelë e vogël buke për ta vendosur në kutinë tuaj.

Mjetet:

  • Një hekur bashkues.
  • Diçka për të bërë rastin (kam përdorur një printer 3d me PLA dhe PETG dhe disa afishe vinyl për të marrë efektin prej druri.)

Hapi 1: Vendosja e Raspberry Pi

Mjedra pi është mikro kontrolluesi ynë kryesor.

Mjedra pi drejton serverin tonë të uebit, bazën e të dhënave, kontrollon shiritin led, altoparlantët,…

Pjesa 1: Instalimi i Raspbian

Përdorni këtë tutorial për të instaluar raspbian:

Sigurohuni që SSH është e aktivizuar

Pjesa 2: Lidhja

Në mënyrë që të lidheni me internetin, duhet të hyni në terminalin tuaj mjedër pi. Unë rekomandoj të përdorni stuko. Në llojin e terminalit:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

"YourNetwork" është emri i rrjetit tuaj wifi dhe "YourSSID" është fjalëkalimi i rrjetit.

Pasi të keni shtuar rrjetin, provoni të rindizni Raspberry Pi.

Shkruani komandën 'ping 8.8.8.8' kjo do të dërgojë një paketë në serverët e Google nëse merrni përgjigje rrjeti juaj është i konfiguruar dhe funksionon!

Pjesa 3: Instaloni programet e nevojshme

Do të na duhet të instalojmë disa programe shtesë për të filluar dhe zbatuar këtë projekt.

Para se të fillojmë, ekzekutoni këto 2 komanda për t'u siguruar që gjithçka është azhurnuar.

sudo apt përditësim

sudo apt upgrade

Kjo mund të marrë pak kohë.

Apache

sudo apt install apache2 -y

sudo apt instaloni php libapache2-mod-php -y

MariaDB

sudo apt instaloni mariadb-server mariadb-client -y

sudo apt instaloni php -mysql -y

PHPMyAdmin

sudo apt instaloni phpmyadmin -y

Pip pip

Duhet të instalojmë pip për të mundësuar disa biblioteka python

pip3 instaloni mysql-connector-python

pip3 instaloni flaks-socketio

pip3 instaloni balona-cors

pip3 instaloni gevent

pip3 instaloni gevent-websocket

Hapi 2: Lidhja e pajisjeve elektronike

Lidhja e pajisjeve elektronike
Lidhja e pajisjeve elektronike
Lidhja e pajisjeve elektronike
Lidhja e pajisjeve elektronike

Unë kam shtuar 2 skema, 1 është një skemë e bukës për qëllime testimi. Unë rekomandoj ndërtimin e skemës së parë dhe përpjekjen për të vënë në funksion kodin.

Unë kam shtuar skedarët tërheqës më poshtë.

Hapi 3: Dizajni i bazës së të dhënave

Dizajni i bazës së të dhënave
Dizajni i bazës së të dhënave

Kjo është skema e bazës së të dhënave që kam bërë. Fjalët janë në holandisht, por unë do të shpjegoj çdo tabelë në detaje.

Tabela 1: tblMuziek

Kjo është një tabelë mjaft themelore. Ai ruan emrin e artistit, emrin e këngës dhe emrin e skedarit të një kënge.

Tabela 2: tblLedstrip

Kjo tabelë mban gjurmët e gjendjes aktuale të brezit led që kursen gjendjen e brezit led. Ne kemi nevojë për këtë për funksionin e ndriçimit inteligjent.

Tabela 3: tblSensoren

Kjo tabelë mban gjurmët e sensorëve në alarmin tonë. Ne ruajmë emrin e sensorit dhe kanalin e MCP3008

Tabela 4: tblMeting

Kjo tabelë ruan vlerat e sensorëve tanë së bashku me kohën e tyre.

Tabela 5: tblWekker

Kjo tabelë ruan fjalëkalimin dhe emrin e alarmit tuaj (p.sh. Dhoma gjumi) Kjo tabelë nuk është e detyrueshme, por e shtova sepse supozoj se do të keni më shumë se 1 orë alarmi në shtëpinë tuaj.

Tabela 6: tblAlarrm

Kjo është ndoshta tabela më e rëndësishme. Ai mban gjurmët e alarmit që keni vendosur dhe çfarë duhet të bëjë ora (cila këngë të luhet, cila ka udhëhequr sekuencën, Në cilat ditë duhet të fiket,…). Importshtë shumë e rëndësishme të mbash shënim 2 hurma. 1 datë përdoret për të ruajtur në cilën orë duhet të bjerë alarmi. Tjetri mban shënime herën e fundit që ra alarmi. Për të ditur se çfarë dite jave duhet të fiket, kam përdorur një varchar që përmban një numër prej 7 shifrash. Shifra e parë është e hënë, e marta e dytë, … Nëse është 1 atëherë duhet të fiket, nëse është 0 nuk duhet. Shembull: 1111100 kjo do të thotë që ky alarm duhet të bjerë të hënën, të martën, të mërkurën, të enjten dhe të premten.

Hapi 4: Konfigurimi i Arduino

Ky hap është shumë i lehtë. Do të ketë një lidhje me githubin tim në hapin tjetër ku mund të shkarkoni skedarin arduino.

Çfarë bën programi?

Programi pret që të dhënat serike të vijnë nga pi.

Sapo të merren të dhënat, ato analizohen përmes vargut dhe dërgon përsëri një konfirmim në pi.

Vargu do të jetë diçka si kjo: '1201' kjo do të thotë se është 12:01. Kam përdorur një ekran të zakonshëm të segmentit 7 të anodës, kjo do të thotë që Shifrat duhet të jenë të larta dhe A, B, C, D, E, F, G dhe DP duhet të jenë të ulëta për t'i ndezur ato. Nëse përdorni një katodë të zakonshme, thjesht duhet të ndryshoni HIGH në LOW & LOW në HIGH.

Këtu keni një lidhje me më shumë informacion se si funksionojnë ekranet e 7 segmenteve. (me përdorimin e bibliotekës):

www.instructables.com/id/Using-a-4-digit-7…

Këtu keni një lidhje për 7 shfaqje segmentesh pa përdorimin e një biblioteke:

create.arduino.cc/projecthub/SAnwandter1/p…

Hapi 5: Raspberry Pi Backend

Raspberry Pi Backend
Raspberry Pi Backend

Ju mund të shkarkoni kodin tim duke përdorur Github. (https://github.com/VanHevelNico/WakeMeUp)

Si të instaloni programin:

Pjesa e pasme është e shkruar në piton duke përdorur balonë. Ju mund të bëni një shërbim që fillon këtë program (app.py) automatikisht.

Ju duhet të vendosni kodin frontend në skedarin html të serverit apache që kemi shkarkuar më herët. (/var/html)

Si funksionon programi?

Kur alarmi është ndezur, shkoni te adresa IP e orës tuaj (do të shfaqet në LCD)

Sapo të shkoni në atë adresë IP në shfletuesin tuaj kompjuteri juaj do të dërgojë një kërkesë socket.io në backend duke thënë se një klient është lidhur. Kur backend e merr këtë do të fillojnë disa fije të cilat do t'i shpjegoj më poshtë.

Konfigurimi

Kjo intializon të gjitha objektet e nevojshme.

GetTemp

Kjo lexon kanalin mcp3008 0 dhe konverton të dhënat binare në temperaturën aktuale dhe i vendos ato në bazën e të dhënave me datën dhe orën aktuale.

GetTempGrafiek

Kjo merr 20 vlerat e kaluara të sensorit të temperaturës dhe e lëshon atë në pjesën e përparme.

tijd_sturen

Kjo metodë merr kohën aktuale dhe kontrollon nëse minuta ka ndryshuar. Nëse ka ndryshuar programi dërgon kohën e re në arduino duke përdorur komunikimin serik

kontrollAlarmen

Kjo është metoda më e rëndësishme. Ai merr të gjitha alarmet që janë ndezur dhe kontrollon nëse ndonjëri prej këtyre alarmeve duhet të shkojë nga tani dhe 5 minuta më parë (ky është një tampon për të siguruar që secili alarm të shkojë kur të ketë nevojë). Nëse alarmi duhet të fiket, ne do të fillojmë muzikën, brezin drejtues,… Ne lexojmë rezistencë të ndjeshme ndaj forcës vazhdimisht dhe kur vlera bie nën 1000 (lexo fsr shtypet) Kthejmë alarmin dhe azhurnojmë alarmin në bazës së të dhënave. Ne vendosëm datën kur alarmi ra për herë të fundit në datën aktuale.

statusLritja

Kjo metodë lëshon vlerën e shiritit të ndriçimit dhe ndez brezin led nëse është e nevojshme.

lichtAanpassen

Kjo është një metodë shtesë për të siguruar që drita e brezit dhe drita e alarmit nuk bien ndesh.

Hapi 6: Rasti

Rast
Rast
Rast
Rast
Rast
Rast

Lidhja me skedarët e mi mund të gjendet këtu:

Kam përdorur një printer 3d për të shtypur shtresën e jashtme. Shtypet në 4 pjesë të ndryshme:

  1. Pllaka e përparme me vrima për altoparlantin dhe disa mure për ekranin e segmentit 7
  2. Unaza e jashtme për shiritin led në PETG transparente.
  3. Pjesa e mesme
  4. Pllaka e pasme me një vrimë për LCD dhe një vrimë për kabllot.

Në modelin origjinal nuk kishte vrima për ekranin e segmentit 7 megjithatë kjo është e nevojshme sepse përndryshe drita e ekranit të segmentit 7 nuk do të shkëlqejë.

Siç mund ta shihni pasi kam futur të gjithë përbërësit, kam përdorur afishe vinyl me një pamje druri për ta bërë rezultatin përfundimtar të duket më mirë. Ekrani i orës shkëlqen përmes ngjitësit, i cili krijon një efekt shumë të bukur.

Recommended: