Sisukord:

Ärka mind üles - nutikas äratuskell: 6 sammu
Ärka mind üles - nutikas äratuskell: 6 sammu

Video: Ärka mind üles - nutikas äratuskell: 6 sammu

Video: Ärka mind üles - nutikas äratuskell: 6 sammu
Video: Мальвы цветут_Рассказ_Слушать 2024, November
Anonim
Wake Me Up - nutikas äratuskell
Wake Me Up - nutikas äratuskell

Wake me up on nutikas äratuskell, mida saab kasutada ka nutivalgustina.

Sisseehitatud LED-riba simuleerib loomulikku valgust teie tuppa. See võimaldab rahulikult ja loomulikult oma päeva alustada.

Äratuskell on varustatud ka 4*7 segmendi ekraaniga aja lugemiseks, kõlaritega lemmikmuusikaga ärkamiseks, puute nupuga, LED -riba heleduse kohandamiseks ja temperatuurianduriga, mida saate vaadata teie ruumi temperatuur.

Tarvikud

Nimekirja täpsetest hindadest, mida ma maksin, leiate siit:

Mikrokontrollerid ja arvutid:

Raspberry Pi 4I kasutasin vaarika pi 4 4GB, kuid kõik vaarika pi mudel 3+ peaksid olema korras

Arduino Uno

Arduinot kasutatakse 4*7 segmendi kellakuva juhtimiseks.

Andurid:

  • TMP36: temperatuuriandur
  • LDR: valgusest sõltuv takisti

Täiturmehhanismid:

  • WS2801: individuaalselt adresseeritav LED -riba
  • LCD -ekraan: 16*2 LCD -ekraan.
  • 4*7 segmendi kellakuva

IC -d:

  • 74HC595: LCD -ekraani vahetusregister
  • MCP3008: 8-bitine analoog-digitaalmuundur
  • Loogika taseme muundur: kasutatakse raspi ja arduino vaheliseks suhtlemiseks

Teised asjad:

  • Adafruit MAX9744 võimendi kõlarite toitmiseks
  • Iga kõlari puhul kasutasin Visaton 4Ohm 8Watt täisvahemikuga kõlarit (art. 2240)
  • 9 -voldine toiteallikas võimendi toiteks
  • 5 -voldine toiteallikas LED -riba ja muude komponentide varustamiseks. Pidage meeles, et iga LED -ribal olev juht võib drow 60mA, nii et veenduge, et teie toide on piisav.
  • Mõned 220Ohm takistid
  • Väike leivaplaat, mida teie ümbrisesse panna.

Tööriistad:

  • Jootekolb.
  • Midagi korpuse valmistamiseks (puidust efekti saamiseks kasutasin 3D -printerit PLA ja PETG -ga ning mõningaid vinüülkleebiseid.)

Samm: Raspberry Pi seadistamine

Vaarika pi on meie peamine mikrokontroller.

Vaarika pi juhib meie kohalikku veebiserverit, andmebaasi, juhib LED -riba, kõlareid,…

Osa 1: Raspbiani installimine

Kasutage seda õpetust raspbiani installimiseks:

Veenduge, et SSH oleks lubatud

Osa 2: Ühenduse loomine

Interneti -ühenduse loomiseks peate hankima juurdepääsu oma vaarika pi terminalile. Soovitan kasutada pahtlit. Terminali tüübis:

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

"YourNetwork" on teie WiFi -võrgu nimi ja "YourSSID" on võrgu parool.

Kui olete võrgu lisanud, proovige Raspberry Pi taaskäivitada.

Sisestage käsk 'ping 8.8.8.8', mis saadab paketi Google'i serveritele, kui saate vastuse, et teie võrk on seadistatud ja töötab!

Osa 3: Installige vajalikud programmid

Selle projekti käivitamiseks vajame mõnda lisaprogrammi.

Enne alustamist käivitage need kaks käsku, et veenduda, kas kõik on uuendatud.

sudo apt värskendus

sudo apt uuendus

See võib võtta aega.

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 install php -mysql -y

PHPMyAdmin

sudo apt install phpmyadmin -y

Python pip

Peame installima pip, et lubada mõned pythoni teegid

pip3 installige mysql-connector-python

pip3 paigaldage kolb-pistikupesa

pip3 paigaldage kolvid

pip3 install gevent

pip3 installige gevent-websocket

Samm: elektroonika ühendamine

Elektroonika ühendamine
Elektroonika ühendamine
Elektroonika ühendamine
Elektroonika ühendamine

Olen lisanud 2 skeemi, 1 on testimiseks mõeldud leivaplaadi skeem. Soovitan koostada esimene skeem ja proovida kood tööle saada.

Lisasin alla fritzeerimisfailid.

3. samm: andmebaasi kujundamine

Andmebaasi kujundus
Andmebaasi kujundus

See on minu koostatud andmebaasiskeem. Sõnad on hollandi keeles, kuid selgitan iga tabelit üksikasjalikult.

Tabel 1: tblMuziek

See on üsna lihtne laud. See salvestab esitaja, laulu nime ja laulu failinime.

Tabel 2: tblLedstrip

See tabel jälgib LED -riba praegust olekut ja salvestab LED -riba oleku. Me vajame seda nutivalgustuse funktsiooni jaoks.

Tabel 3: tblSensoren

See tabel jälgib meie alarmi andureid. Salvestame anduri nime ja MCP3008 kanali

Tabel 4: tblMeting

See tabel salvestab meie andurite väärtused koos nende ajaga.

Tabel 5: tblWekker

See tabel salvestab teie äratuskella (nt magamistuba) parooli ja nime. See tabel ei ole kohustuslik, kuid lisasin selle, kuna eeldan, et teie majas on rohkem kui üks äratuskell.

Tabel 6: tblAlarm

See on ilmselt kõige olulisem tabel. See jälgib teie seadistatud äratust ja seda, mida kell peab tegema (millist laulu esitama, millist juhtimisjärjestust ja millistel päevadel see välja lülitama …). Kahe kuupäeva jälgimine on väga oluline. 1 kuupäeva kasutatakse selle salvestamiseks, mis kell alarm peaks tööle minema. Teine jälgib viimast häirekella. Et teada saada, mis nädalapäev peaks minema, kasutasin varchari, mis sisaldab 7 numbrit. Esimene number on esmaspäev, teine teisipäev,… Kui see on 1, siis peaks see kustuma, kui 0, siis ei tohiks. Näide: 1111100 see tähendab, et see alarm peaks esmaspäeval, teisipäeval, kolmapäeval, neljapäeval ja reedel tööle minema.

Samm: Arduino seadistamine

See samm on väga lihtne. Järgmisel sammul on link minu githubile, kust saate arduino faili alla laadida.

Mida programm teeb?

Programm ootab seeriaandmete saabumist pi -st.

Niipea kui andmed on saadud, analüüsib see stringi ja saadab pi -le kinnituse.

String on umbes selline: '1201', see tähendab, et kell on 12:01. Kasutasin tavalist 7 -segmendilist anoodi ekraani, see tähendab, et nende sisselülitamiseks peaksid numbrid olema kõrged ja A, B, C, D, E, F, G ja DP madalad. Kui kasutate tavalist katoodi, peaksite lihtsalt muutma HIGH väärtuseks LOW ja LOW to HIGH.

Siin on link, kus on rohkem teavet selle kohta, kuidas 7 segmendi kuva töötab. (koos raamatukogu kasutamisega):

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

Siin on link umbes 7 segmendi kuvamiseks ilma raamatukogu kasutamiseta:

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

Samm: Raspberry Pi taustaprogramm

Raspberry Pi taustaprogramm
Raspberry Pi taustaprogramm

Minu koodi saate alla laadida Githubi abil. (https://github.com/VanHevelNico/WakeMeUp)

Programmi installimine:

Taustprogramm on kirjutatud pythonis, kasutades kolbi. Saate luua teenuse, mis käivitab selle programmi (app.py) automaatselt.

Peaksite kasutajaliidese koodi sisestama varem alla laaditud apache serveri html -faili. (/var/html)

Kuidas programm töötab?

Kui äratuskell on sisse lülitatud, minge oma kella IP -aadressile (see kuvatakse LCD -ekraanil)

Niipea kui lähete oma brauseris sellele IP -aadressile, saadab teie arvuti taustaprogrammile socket.io taotluse, milles öeldakse, et klient on ühenduse loonud. Kui taustaprogramm selle saab, algavad mõned teemad, mida ma allpool selgitan.

Seadistamine

See intialiseerib kõik vajalikud objektid.

GetTemp

See loeb mcp3008 kanalit 0 ja teisendab kahendandmed tegelikuks temperatuuriks ning paneb need andmebaasi koos praeguse kuupäeva ja tunniga.

GetTempGrafiek

See saab temperatuurianduri viimase 20 väärtuse ja väljastab selle esipaneelile.

tijd_sturen

See meetod saab praeguse aja ja kontrollib, kas minut on muutunud. Kui see on muutunud, saadab programm uue aja arduinole jadaühenduse abil

checkAlarmen

See on kõige olulisem meetod. See saab kõik sisse lülitatud häired ja kontrollib, kas mõni neist häiretest peab nüüdsest kuni 5 minutini tagasi lülituma (see on puhver, et veenduda, et iga alarm lülitub välja siis, kui seda vaja on). Kui äratus peab välja lülitama, käivitame muusika, LED -riba,… Me loeme jõutundlikku takistit pidevalt ja kui väärtus langeb alla 1000 (lugege klahvi fsr), lülitame alarmi sisse ja värskendame häiret andmebaas. Me seadsime kuupäeva, millal häire viimati välja lülitati, praegusele kuupäevale.

statusLight

See meetod kiirgab LED -riba väärtust ja lülitab vajadusel LED -riba sisse.

lichtAanpassen

See on täiendav meetod veendumaks, et LED -riba ja äratustuli ei lähe vastuollu.

6. samm: juhtum

Juhtum
Juhtum
Juhtum
Juhtum
Juhtum
Juhtum

Minu failide lingi leiate siit:

Korpuse printimiseks kasutasin 3D -printerit. See on trükitud 4 erinevasse ossa:

  1. Esiplaat, millel on augud kõlari jaoks ja mõned seinad 7 segmendi kuva jaoks
  2. Ledriba välisrõngas läbipaistvas PETG -s.
  3. Keskmine osa
  4. Tagaplaat, millel on ava LCD -le ja auk kaablitele.

Algses mudelis ei olnud 7 -segmendilise ekraani jaoks auku, kuid seda on vaja, sest vastasel juhul ei paista 7 -segmendilise ekraani valgus läbi.

Nagu näete pärast kõigi komponentide sisestamist, kasutasin lõpptulemuse paremaks muutmiseks puidust välimusega vinüülkleebiseid. Kellaekraan särab kleebise kaudu, mis loob väga kena välimuse.

Soovitan: