INHOUDSOPGAWE:
- Voorrade
- Stap 1: Stel die Raspberry Pi op
- Stap 2: Koppel die elektronika aan
- Stap 3: Databasisontwerp
- Stap 4: Arduino -opstelling
- Stap 5: Raspberry Pi Backend
- Stap 6: Saak
Video: Maak my wakker - 'n slim wekker: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Wake me up is 'n slim wekker wat ook as 'n slim lig gebruik kan word.
Die ingeboude ledstrip simuleer natuurlike lig wat u kamer binnekom. Dit bied 'n rustige, natuurlike manier om u dag te begin.
Die wekker is ook toegerus met 'n 4*7 segment -skerm om die tyd te lees, luidsprekers om met u gunsteling musiek te wakker word, 'n aanraakknoppie, 'n ldr om die helderheid van die ledstrip aan te pas en 'n temperatuursensor waarmee u die temperatuur van u kamer.
Voorrade
'N Lys met die presiese pryse wat ek betaal het, kan u hier vind:
Mikrobeheerders en rekenaars:
Raspberry Pi 4I het die framboos pi 4 4GB gebruik, maar elke framboos pi model 3+ behoort goed te wees
Arduino Uno
Die arduino word gebruik om die 4*7 segment klokskerm te beheer.
Sensors:
- TMP36: temperatuursensor
- LDR: Ligafhanklike weerstand
Aandrywers:
- WS2801: Individueel aanspreekbare ledstrip
- LCD -skerm: 'n 16*2 LCD -skerm.
- 4*7 segment klok vertoon
IC's:
- 74HC595: Shiftregister vir die lcd -skerm
- MCP3008: 8-bis analoog na digitaal omskakelaar
- Logiese vlakomskakelaar: Word gebruik om tussen raspi en arduino te kommunikeer
Ander goed:
- 'N Adafruit MAX9744 versterker om die luidsprekers aan te dryf
- By elke luidspreker het ek 'n Visaton 4Ohm 8Watt volledige reeks luidspreker gebruik (art. Nr. 2240)
- 'N 9 volt -kragtoevoer om die versterker van krag te voorsien
- 'N 5V -kragtoevoer om die ledstrip en ander komponente te voorsien. Hou in gedagte dat elke led in die ledstrip 60mA kan verdrink, dus maak seker dat u kragtoevoer voldoende is.
- 'N Paar weerstands van 220 Ohm
- 'N Klein broodbord om in u kas te sit.
Gereedskap:
- 'N Soldeerbout.
- Iets om die kas te maak (ek het 'n 3D -drukker met PLA en PETG en 'n paar vinylplakkers gebruik om die houteffek te kry.)
Stap 1: Stel die Raspberry Pi op
Die framboos pi is ons belangrikste mikrobeheerder.
Die framboos pi bestuur ons plaaslike webserver, databasis, beheer die ledstrip, luidsprekers, …
Deel 1: Installeer Raspbian
Gebruik hierdie tutoriaal om raspbian te installeer:
Maak seker dat SSH aangeskakel is
Deel 2: Maak verbinding
Om aan die internet gekoppel te word, moet u toegang kry tot die terminale van u framboospi. Ek beveel aan om stopverf te gebruik. In die terminale tipe:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
'YourNetwork' is die naam van u wifi -netwerk en 'YourSSID' is die wagwoord van die netwerk.
Sodra u die netwerk bygevoeg het, probeer om die Raspberry Pi weer te begin.
Tik die opdrag 'ping 8.8.8.8' in, dit stuur 'n pakkie na die Google-bedieners as u reageer, u netwerk is opgestel en werk!
Deel 3: Installeer die nodige programme
Ons benodig 'n paar ekstra programme om hierdie projek aan die gang te kry.
Voer hierdie twee opdragte uit voordat ons begin, om seker te maak dat alles opgegradeer is.
sudo apt -opdatering
sudo apt -opgradering
Dit kan 'n rukkie neem.
Apache
sudo apt installeer apache2 -y
sudo apt installeer php libapache2-mod-php -y
MariaDB
sudo apt installeer mariadb-server mariadb-client -y
sudo apt installeer php -mysql -y
PHPMyAdmin
sudo apt installeer phpmyadmin -y
Python pip
Ons moet pip installeer om sommige python -biblioteke moontlik te maak
pip3 installeer mysql-connector-python
pip3 installeer flask-socketio
pip3 installeer fles-kors
pip3 installeer gevent
pip3 installeer gevent-websocket
Stap 2: Koppel die elektronika aan
Ek het 2 skemas bygevoeg, 1 is 'n broodbordskema vir toetsdoeleindes. Ek beveel aan dat u die eerste skema bou en probeer om die kode te laat werk.
Ek het die fritzing -lêers hieronder bygevoeg.
Stap 3: Databasisontwerp
Dit is die databasiskema wat ek gemaak het. Die woorde is in Nederlands, maar ek sal elke tabel in detail verduidelik.
Tabel 1: tblMuziek
Dit is 'n redelik basiese tafel. Dit stoor die kunstenaarsnaam, liedjie se naam en die lêernaam van 'n liedjie.
Tabel 2: tblLedstrip
Hierdie tabel hou die huidige toestand van die ledstrip by, dit red die toestand van die ledstrip. Ons het dit nodig vir die smartlight -funksie.
Tabel 3: tblSensoren
Hierdie tabel hou die sensors in ons alarm dop. Ons stoor die naam van die sensor en die kanaal van die MCP3008
Tabel 4: tblMeting
Hierdie tabel stoor die waardes van ons sensors saam met hul tyd.
Tabel 5: tblWekker
Hierdie tabel stoor die wagwoord en die naam van u wekker (bv. Slaapkamer). Hierdie tafel is nie verpligtend nie, maar ek het dit bygevoeg omdat ek aanvaar dat u meer as 1 wekker in u huis sal hê.
Tabel 6: tblAlarm
Dit is waarskynlik die belangrikste tabel. Dit hou tred met die alarm wat u ingestel het en wat die klok moet doen (watter liedjie moet speel, watter volgorde, op watter dae moet dit afgaan, …). Dit is baie belangrik om 2 datums by te hou. 1 datum word gebruik om te stoor op watter uur die alarm moet afgaan. Die ander een hou rekord van die laaste keer dat die alarm afgegaan het. Om te weet watter weeksdag dit moet gaan, gebruik ek 'n varchar wat 'n getal van 7 syfers bevat. Die eerste syfer is Maandag, die tweede Dinsdag, … As dit 'n 1 is, moet dit afgaan, as dit 'n 0 is, moet dit nie. Voorbeeld: 1111100, dit beteken dat hierdie alarm Maandag, Dinsdag, Woensdag, Donderdag en Vrydag moet afgaan.
Stap 4: Arduino -opstelling
Hierdie stap is baie maklik. Daar sal 'n skakel na my github wees in die volgende stap waar u die arduino -lêer kan aflaai.
Wat doen die program?
Die program wag totdat reeksdata vanaf die pi kom.
Sodra die data ontvang is, ontleed dit deur die string en stuur 'n bevestiging terug na die pi.
Die string sal so wees: '1201', dit beteken dat dit 12:01 is. Ek het 'n gewone anode 7 -segmentskerm gebruik, dit beteken dat die syfers hoog moet wees en dat A, B, C, D, E, F, G en DP laag moet wees om dit aan te skakel. As u 'n gewone katode gebruik, moet u net HOOG na LAAG en LAAG na HOOG verander.
Hier is 'n skakel met meer inligting oor hoe 7 segmentskerms werk. (met die gebruik van biblioteek):
www.instructables.com/id/Using-a-4-digit-7…
Hier is 'n skakel oor sewe segmentskerms sonder die gebruik van 'n biblioteek:
create.arduino.cc/projecthub/SAnwandter1/p…
Stap 5: Raspberry Pi Backend
U kan my kode aflaai met Github. (https://github.com/VanHevelNico/WakeMeUp)
Hoe om die program te installeer:
Die agterkant is in python geskryf met behulp van fles. U kan outomaties 'n diens maak wat hierdie program (app.py) begin.
U moet die frontend -kode in die html -lêer van die apache -bediener wat ons vroeër afgelaai het, plaas. (/var/html)
Hoe werk die program?
As die wekker aangeskakel is, gaan na die ip -adres van u horlosie (dit sal op die lcd verskyn)
Sodra u na die ip -adres in u blaaier gaan, stuur u rekenaar 'n socket.io -versoek na die backend en sê dat 'n kliënt gekoppel is. As die backend dit ontvang, begin 'n paar drade wat ek hieronder sal verduidelik.
Stel op
Dit geïntialiseer alle benodigde voorwerpe.
GetTemp
Dit lees die mcp3008 kanaal 0 en skakel die binêre data om na die werklike temperatuur en plaas dit in die databasis met die huidige datum en uur.
GetTempGrafiek
Dit kry die afgelope 20 waardes van die temperatuursensor en gee dit na die voorkant.
tyd_sturen
Hierdie metode kry die huidige tyd en kyk of die minuut verander het. As dit verander het, stuur die program die nuwe tyd na die arduino met behulp van seriële kommunikasie
checkAlarmen
Dit is die belangrikste metode. Dit kry al die alarms wat aangeskakel word en kyk of een van hierdie alarms tussen nou en 5 minute gelede moet gaan (dit is 'n buffer om seker te maak dat elke alarm afgaan wanneer dit nodig is). As die alarm moet afgaan, begin ons met die musiek, die strook, … Ons lees die kraggevoelige weerstand deurlopend en as die waarde onder 1000 daal (lees die fsr word ingedruk) Ons skakel die alarm aan en werk die alarm op in die databasis. Ons stel die datum waarop die alarm vir die laaste keer afgegaan het, op die huidige datum.
status lig
Hierdie metode gee die waarde van die ledstrip uit en skakel die ledstrip aan indien nodig.
lichtAanpassen
Dit is 'n ekstra metode om seker te maak dat die ledstrip en alarmlig nie bots nie.
Stap 6: Saak
Die skakel na my lêers kan hier gevind word:
Ek het 'n 3D -drukker gebruik om die omhulsel te druk. Dit word in 4 verskillende dele gedruk:
- Die voorplaat met gate vir die luidspreker en 'n paar mure vir die 7 -segment -skerm
- Die buitenste ring vir die ledstrip in deursigtige PETG.
- Die middelste deel
- Die agterplaat met 'n gat vir die lcd en 'n gat vir die kabels.
In die oorspronklike model was daar geen gat vir die 7 -segment -skerm nie, maar dit is nodig, want anders sal die lig van die 7 -segment -skerm nie deurskyn nie.
Soos u kan sien, nadat ek al die komponente daarin geplaas het, het ek vinylplakkers met 'n houtvoorkoms gebruik om die eindresultaat beter te laat lyk. Die klokskerm skyn deur die plakker, wat 'n baie mooi effek skep.
Aanbeveel:
Opgemaakte wekker slim lig: 8 stappe (met foto's)
Slim lig vir wekker: Met hierdie projek maak ek 'n heeltemal gebroke wekker op. Die horlosie word vervang deur 12 LED's, verlig deur 'n LED -strook om die rand van die klok. Die 12 LED's vertel die tyd en die LED -strook is geprogrammeer om as 'n alarm op te tree en draai
Slimme wekker: 'n slim wekker gemaak met framboos Pi: 10 stappe (met foto's)
Slimme wekker: 'n slim wekker gemaak met framboos Pi: wou u al ooit 'n slim horlosie hê? As dit die geval is, is dit die oplossing vir u! Ek het 'n slim wekker gemaak, dit is 'n horlosie waarop u die wagtyd volgens die webwerf kan verander. As die alarm afgaan, is daar 'n geluid (gonser) en 2 ligte sal
Maklik wakker word: 'n slim wakker lig gemaak met framboos Pi: 6 stappe
Maklik wakker word: 'n slim wakker lig gemaak met framboos Pi: inleiding Vir die leerplanprojek1 moes ek iets maak. Ek was nog altyd gefassineer oor hoe 'n wakkerlig soos u sou baat om wakker te word soos dié van Philips, en ek het besluit om 'n wakker lig te maak. Ek het die wakker lig gemaak met 'n Raspberr
DIY slim weegskaal met wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): 10 stappe (met foto's)
DIY Smart Scale With Alarm Clock (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In my vorige projek het ek 'n slim badkamerskaal met Wi-Fi ontwikkel. Dit kan die gebruiker se gewig meet, plaaslik vertoon en dit na die wolk stuur. U kan meer inligting hieroor kry op die onderstaande skakel: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
GOOB - 'n slim wekker: 15 stappe (met foto's)
GOOB - 'n slim wekker: GOOB is 'n akroniem vir 'Kom uit die bed', 'n goeie naam vir my projek. Ek wou 'n toestel skep wat my in die oggend kan wakker maak, want dit is nie die maklikste taak nie. Die belangrikste idee is dat die wekker nie die alarm stop nie