Sisällysluettelo:

Herätä minut - älykäs herätyskello: 6 vaihetta
Herätä minut - älykäs herätyskello: 6 vaihetta

Video: Herätä minut - älykäs herätyskello: 6 vaihetta

Video: Herätä minut - älykäs herätyskello: 6 vaihetta
Video: Älä naura haaste (vaikea) 2024, Heinäkuu
Anonim
Herätä minut - älykäs herätyskello
Herätä minut - älykäs herätyskello

Wake me up on älykäs herätyskello, jota voidaan käyttää myös älyvalona.

Sisäänrakennettu LED-nauha simuloi huoneeseen tulevaa luonnonvaloa. Tämä mahdollistaa rauhallisen, luonnollisen tavan aloittaa päiväsi.

Herätyskellossa on myös 4*7 -segmenttinäyttö ajan lukemiseen, kaiuttimet heräämiseen suosikkimusiikkisi kanssa, kosketuspainike, led -nauha kirkkauden säätämiseen ja lämpötila -anturi, jota voit käyttää huoneesi lämpötila.

Tarvikkeet

Lista tarkasta maksamastani hinnasta löytyy täältä:

Mikro -ohjaimet ja tietokoneet:

Raspberry Pi 4I käytin vadelma pi 4 4 Gt: tä, mutta minkä tahansa vadelmapi -mallin 3+ pitäisi olla kunnossa

Arduino Uno

Arduinoa käytetään 4*7 segmentin kellonäytön ohjaamiseen.

Anturit:

  • TMP36: lämpötila -anturi
  • LDR: Valosta riippuvainen vastus

Toimilaitteet:

  • WS2801: Yksilöllisesti osoitettava lednauha
  • LCD -näyttö: 16*2 LCD -näyttö.
  • 4*7 segmentin kellonäyttö

IC: t:

  • 74HC595: Vaihda lcd -näytön rekisteröinti
  • MCP3008: 8-bittinen analogisesta digitaalimuunnin
  • Loogisen tason muunnin: Käytetään kommunikoimaan raspin ja arduinon välillä

Muu tavara:

  • Adafruit MAX9744 -vahvistin kaiuttimien virransyöttöön
  • Mikä tahansa kaiutin, käytin Visaton 4Ohm 8Watt -täyden valikoiman kaiutinta (tuotenro 2240)
  • 9 voltin virtalähde vahvistimen virransyöttöön
  • 5 voltin virtalähde LED -nauhan ja muiden komponenttien syöttämiseksi. Muista, että jokainen LED -nauhassa oleva ledi voi laskea 60 mA: n virtaa, joten varmista, että virtalähteesi on riittävä.
  • Muutama 220 ohmin vastus
  • Pieni leipälauta koteloosi.

Työkalut:

  • Juotosrauta.
  • Jotain kotelon tekemiseen (käytin 3D -tulostinta PLA: lla ja PETG: llä ja joitain vinyylitarroja puuvaikutteen saamiseksi.)

Vaihe 1: Asenna Raspberry Pi

Vadelma pi on tärkein mikro -ohjaimemme.

Vadelma pi käyttää paikallista verkkopalvelinta, tietokantaa, ohjaa lednauhaa, kaiuttimia,…

Osa 1: Raspbianin asentaminen

Käytä tätä opetusohjelmaa raspbianin asentamiseen:

Varmista, että SSH on käytössä

Osa 2: Yhteyden muodostaminen

Jotta voit muodostaa yhteyden Internetiin, sinun on saatava yhteys vadelma pi -päätteeseesi. Suosittelen kitin käyttöä. Päätetyypissä:

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

"YourNetwork" on wifi -verkon nimi ja "YourSSID" on verkon salasana.

Kun olet lisännyt verkon, yritä käynnistää Raspberry Pi uudelleen.

Kirjoita komento 'ping 8.8.8.8', tämä lähettää paketin Googlen palvelimille, jos saat vastauksen, että verkko on asetettu ja toimii!

Osa 3: Asenna tarvittavat ohjelmat

Tarvitsemme joitakin lisäohjelmia asentaaksemme tämän projektin.

Ennen kuin aloitamme, suorita nämä kaksi komentoa varmistaaksesi, että kaikki on päivitetty.

sudo apt päivitys

sudo apt -päivitys

Tämä voi kestää jonkin aikaa.

Apache

sudo apt install apache2 -y

sudo apt asenna php libapache2-mod-php -y

MariaDB

sudo apt install mariadb-server mariadb-client -y

sudo apt asentaa php -mysql -y

PHPMyAdmin

sudo apt asenna phpmyadmin -y

Python pip

Meidän on asennettava pip, jotta voimme ottaa käyttöön joitain python -kirjastoja

pip3 asenna mysql-connector-python

pip3 asentaa flask-socketio

pip3 asenna kolvipurkit

pip3 asennus gevent

pip3 asenna gevent-websocket

Vaihe 2: Elektroniikan kytkeminen

Elektroniikan liittäminen
Elektroniikan liittäminen
Elektroniikan liittäminen
Elektroniikan liittäminen

Olen lisännyt 2 mallia, 1 on leipälevymalli testausta varten. Suosittelen rakentamaan ensimmäisen mallin ja yrittämään saada koodin toimimaan.

Lisäsin alla olevat fritzing -tiedostot.

Vaihe 3: Tietokannan suunnittelu

Tietokannan suunnittelu
Tietokannan suunnittelu

Tämä on tekemäni tietokantakaavio. Sanat ovat hollanniksi, mutta selitän jokaisen taulukon yksityiskohtaisesti.

Taulukko 1: tblMuziek

Tämä on melko peruspöytä. Se tallentaa esittäjän nimen, kappaleen nimen ja kappaleen tiedostonimen.

Taulukko 2: tblLedstrip

Tämä taulukko seuraa led -nauhan nykyistä tilaa ja tallentaa led -nauhan tilan. Tarvitsemme tätä Smartlight -toimintoa varten.

Taulukko 3: tblSensoren

Tämä taulukko seuraa hälytyksemme antureita. Tallennamme anturin nimen ja MCP3008 -kanavan

Taulukko 4: tblMeting

Tämä taulukko tallentaa antureidemme arvot yhdessä niiden ajan kanssa.

Taulukko 5: tblWekker

Tämä taulukko tallentaa herätyskellosi (esim. Makuuhuoneen) salasanan ja nimen. Tämä taulukko ei ole pakollinen, mutta lisäsin sen, koska oletan, että talossasi on enemmän kuin yksi herätyskello.

Taulukko 6: tblAlarm

Tämä on ehkä tärkein pöytä. Se seuraa hälytyksiä, jotka olet asettanut ja mitä kellon on tehtävä (mikä kappale soitetaan, mikä led -sekvenssi, Mihin päiviin sen pitäisi soida,…). On erittäin tärkeää seurata 2 päivämäärää. 1 päivämäärä tallennetaan mihin kellonaikaan hälytyksen pitäisi soida. Toinen pitää kirjaa siitä, milloin hälytys on viimeksi soinut. Jos haluat tietää, mikä arkipäivä sen pitäisi mennä, käytin varcharia, joka sisältää seitsemän numeroa. Ensimmäinen numero on maanantai, toinen tiistai,… Jos se on 1, sen pitäisi sammua, jos se on 0, sen ei pitäisi. Esimerkki: 1111100 tämä tarkoittaa, että tämän hälytyksen pitäisi soida maanantaina, tiistaina, keskiviikkona, torstaina ja perjantaina.

Vaihe 4: Arduino -asennus

Tämä vaihe on erittäin helppo. Seuraavassa vaiheessa on linkki githubiini, josta voit ladata arduino -tiedoston.

Mitä ohjelma tekee?

Ohjelma odottaa sarjatietojen tuloa pi: stä.

Heti kun tiedot on vastaanotettu, se jäsentää merkkijonon ja lähettää takaisin vahvistuksen pi: lle.

Jono on jotain tällaista: '1201' tämä tarkoittaa, että se on 12:01. Käytin yleistä anodin 7 -segmenttinäyttöä, mikä tarkoittaa, että numeroiden pitäisi olla korkeat ja A-, B-, C-, D-, E-, F-, G- ja DP -merkkien pitäisi olla alhaiset, jotta ne voidaan kytkeä päälle. Jos käytät yleistä katodia, vaihda vain HIGH -arvoksi LOW & LOW -arvoksi HIGH.

Tässä on linkki, jossa on lisätietoja siitä, miten 7 segmenttinäyttö toimii. (kirjaston avulla):

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

Tässä on linkki noin 7 segmenttinäytöstä ilman kirjastoa:

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

Vaihe 5: Raspberry Pi Backend

Raspberry Pi Backend
Raspberry Pi Backend

Voit ladata koodini Githubin avulla. (https://github.com/VanHevelNico/WakeMeUp)

Ohjelman asentaminen:

Taustaosa kirjoitetaan pythonilla pulloa käyttäen. Voit luoda palvelun, joka käynnistää tämän ohjelman (app.py) automaattisesti.

Sinun tulisi laittaa käyttöliittymäkoodi aiemmin lataamamme apache -palvelimen html -tiedostoon. (/var/html)

Kuinka ohjelma toimii?

Kun herätyskello on päällä, siirry kellosi IP -osoitteeseen (se näkyy lcd: llä)

Heti kun siirryt siihen IP -osoitteeseen selaimessasi, tietokoneesi lähettää socket.io -pyynnön taustaohjelmalle sanomalla, että asiakas on muodostanut yhteyden. Kun taustaohjelma saa tämän, muutama säikee alkaa, jotka selitän alla.

Perustaa

Tämä alustaa kaikki tarvittavat objektit.

GetTemp

Tämä lukee mcp3008 -kanavan 0 ja muuntaa binääridatan todelliseksi lämpötilaksi ja asettaa sen tietokantaan nykyisen päivämäärän ja tunnin kanssa.

GetTempGrafiek

Tämä hakee lämpötila -anturin 20 viimeistä arvoa ja lähettää sen käyttöliittymään.

tijd_sturen

Tämä menetelmä hakee nykyisen ajan ja tarkistaa, onko minuutti muuttunut. Jos se on muuttunut, ohjelma lähettää uuden ajan arduinoon sarjaliikennettä käyttäen

checkAlarmen

Tämä on tärkein menetelmä. Se vastaanottaa kaikki hälytykset, jotka on kytketty päälle, ja tarkistaa, onko jokin näistä hälytyksistä käynnistettävä tämän hetken ja 5 minuutin välisenä aikana (tämä on puskuri varmistaakseen, että jokainen hälytys käynnistyy tarvittaessa). Jos hälytyksen täytyy soida, aloitamme musiikin, led -nauhan,… Luemme voimaherkkää vastusta jatkuvasti ja kun arvo laskee alle 1000 (lue fsr painetaan) Kytke hälytys päälle ja päivitä hälytys tietokanta. Asetimme päivämäärän, jolloin hälytys soi viimeksi, nykyiseen päivämäärään.

statusLight

Tämä menetelmä lähettää LED -nauhan arvon ja kytkee LED -nauhan päälle tarvittaessa.

lichtAanpassen

Tämä on ylimääräinen tapa varmistaa, että led -nauha ja hälytysvalo eivät ole ristiriidassa.

Vaihe 6: Kotelo

Kotelo
Kotelo
Kotelo
Kotelo
Kotelo
Kotelo

Linkki tiedostoihini löytyy täältä:

Kotelon tulostamiseen käytin 3D -tulostinta. Se on painettu 4 eri osaan:

  1. Etulevy, jossa on reiät kaiuttimelle ja jotkut seinät 7 -segmenttinäyttöä varten
  2. Lednauhan ulompi rengas läpinäkyvää PETG: tä.
  3. Keskimmäinen osa
  4. Takalevy, jossa on reikä lcd: lle ja reikä kaapeleille.

Alkuperäisessä mallissa ei ollut reikää 7 segmentin näytölle, mutta sitä tarvitaan, koska muuten 7 segmentin näytön valo ei loista läpi.

Kuten huomaat kaikkien komponenttien asettamisen jälkeen, käytin vinyylitarroja, joissa oli puinen ilme, jotta lopputulos näyttäisi paremmalta. Kellonäyttö loistaa tarran läpi, mikä luo erittäin mukavan vaikutelman.

Suositeltava: