Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Asenna Raspberry Pi
- Vaihe 2: Elektroniikan kytkeminen
- Vaihe 3: Tietokannan suunnittelu
- Vaihe 4: Arduino -asennus
- Vaihe 5: Raspberry Pi Backend
- Vaihe 6: Kotelo
Video: Herätä minut - älykäs herätyskello: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
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
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
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
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
Linkki tiedostoihini löytyy täältä:
Kotelon tulostamiseen käytin 3D -tulostinta. Se on painettu 4 eri osaan:
- Etulevy, jossa on reiät kaiuttimelle ja jotkut seinät 7 -segmenttinäyttöä varten
- Lednauhan ulompi rengas läpinäkyvää PETG: tä.
- Keskimmäinen osa
- 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:
Twin Bell herätyskello soodapurkeista: 7 vaihetta (kuvilla)
Kaksoiskellon herätyskello soodapurkeista: Tämä opaskirja näyttää, kuinka voit tehdä kaksoiskellon herätyskellon soodapurkeista. Projekti käyttää soodatölkkejä, joista muste on poistettu (linkki: musteen poistaminen soodapurkeista). Jotta tämä herätyskello toimisi täysin, DIY -kvartsikellomoduuli integroitiin
Herätä esihistoriallinen dinosaurus IBM PS2 55SX!: 15 vaihetta
Herätä esihistoriallinen dinosaurus … IBM PS2 55SX! Suosittelen kuitenkin lukemaan kaikki tiedot
Herätä kuollut Pleo RB -laite kytketyllä virtalähteellä: 5 vaihetta (kuvilla)
Herätä kuollut Pleo RB -laitteesi kytketyllä virtalähteellä: Huomaa, että kaikki tämän ohjeen kuvat on otettu muutosten tekemisen jälkeen, joten sinun on tarkasteltava tarkasti osia, jotka sinulla on paristokotelon purkamisen jälkeen, ja verrata niitä mukana toimitettuihin kuviin täällä ennen muokkaamista
OK herätä yövalo! (Parent Sleep Saver!): 5 vaihetta
OK herätä yövalo! (Vanhempien unensäästäjä!): Pienten lasten vanhemmat, jotka eivät osaa kertoa aikaa: Haluatko palauttaa muutaman tunnin unen joka viikonloppu? No, onko minulla sitten luomusta sinulle! Käyttämällä Sparkfun Redboardia ja Breadboardia, muutamia yksinkertaisia komponentteja ja joitain yksinkertaisia
Herätä kuolleet Ni-Cad-akut takaisin elämään: 7 vaihetta
Herätä kuolleet Ni-Cad-akut takaisin elämään: Oletko kyllästynyt Ni-Cad-akkujesi lataamiseen, jotka kieltäytyivät lataamasta ja yksinkertaisesti kuolevat? Mitä teet niiden kanssa, kun ne kuolevat? Heitä ne vain roskakoriin - mikä vahingoittaa ympäristöä? Tai vie ne vain kierrätyslaitokseen kierrätettäväksi