Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Konfigurere Raspberry Pi
- Trinn 2: Koble til elektronikken
- Trinn 3: Databasedesign
- Trinn 4: Arduino -oppsett
- Trinn 5: Raspberry Pi Backend
- Trinn 6: Case
Video: Wake Me Up - en smart vekkerklokke: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Wake me up er en smart vekkerklokke som også kan brukes som et smart lys.
Den innebygde ledstripen simulerer naturlig lys som kommer inn i rommet ditt. Dette muliggjør en rolig, naturlig måte å starte dagen på.
Vekkerklokken er også utstyrt med et 4*7 segment display for å lese tiden, høyttalere for å våkne med favorittmusikken din, en berøringsknapp, en ldr for å tilpasse lysstyrken på ledstripen og en temperatursensor som du kan bruke til å se temperaturen på rommet ditt.
Rekvisita
En liste over de eksakte prisene jeg betalte finner du her:
Mikrokontrollere og datamaskiner:
Raspberry Pi 4I brukte bringebær pi 4 4GB, men enhver bringebær pi modell 3+ burde være bra
Arduino Uno
Arduino brukes til å styre 4*7 segmenters klokkevisning.
Sensorer:
- TMP36: temperatursensor
- LDR: Lysavhengig motstand
Aktuatorer:
- WS2801: Individuelt adresserbar ledstrip
- LCD -skjerm: En 16*2 LCD -skjerm.
- 4*7 segment klokkevisning
IC -er:
- 74HC595: Skiftregister for LCD -skjermen
- MCP3008: 8-bits analog til digital omformer
- Logisk nivåomformer: Brukes til å kommunisere mellom raspi og arduino
Andre ting:
- En adafruit MAX9744 forsterker for å drive høyttalerne
- Enhver høyttaler, jeg brukte en Visaton 4Ohm 8Watt full range -høyttaler (art. Nr. 2240)
- En 9 volt strømforsyning for å forsterke forsterkeren
- En 5 volt strømforsyning for å forsyne ledstripen og andre komponenter. Husk at hver ledning i ledstripen kan kaste 60mA, så sørg for at strømforsyningen er tilstrekkelig.
- Noen få 220Ohm motstander
- Et lite brødbrett å sette i saken din.
Verktøy:
- Et loddejern.
- Noe å lage saken (jeg brukte en 3d -skriver med PLA og PETG og noen vinylklistremerker for å få treeffekten.)
Trinn 1: Konfigurere Raspberry Pi
Bringebær pi er vår viktigste mikrokontroller.
Raspberry pi driver vår lokale webserver, database, styrer ledstripen, høyttalere, …
Del 1: Installere Raspbian
Bruk denne opplæringen til å installere raspbian:
Sørg for at SSH er aktivert
Del 2: Bli tilkoblet
For å få forbindelse til internett, må du få tilgang til bringebær Pi -terminalen din. Jeg anbefaler å bruke kitt. I terminalen:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
"YourNetwork" er navnet på wifi -nettverket ditt og "YourSSID" er passordet til nettverket.
Når du har lagt til nettverket, kan du prøve å starte Raspberry Pi på nytt.
Skriv inn kommandoen 'ping 8.8.8.8', dette sender en pakke til Google-serverne hvis du får svar, nettverket ditt er konfigurert og fungerer!
Del 3: Installer de nødvendige programmene
Vi må installere noen ekstra programmer for å få dette prosjektet i gang.
Kjør disse to kommandoene før vi begynner, for å sikre at alt er oppgradert.
sudo apt oppdatering
sudo apt oppgradering
Dette kan ta en stund.
Apache
sudo apt installere apache2 -y
sudo apt installer php libapache2-mod-php -y
MariaDB
sudo apt installer mariadb-server mariadb-klient -y
sudo apt installer php -mysql -y
PHPMyAdmin
sudo apt installer phpmyadmin -y
Python pip
Vi må installere pip for å aktivere noen python -biblioteker
pip3 installer mysql-connector-python
pip3 installere flask-socketio
pip3 installere kolbe-kors
pip3 installer gevent
pip3 installer gevent-websocket
Trinn 2: Koble til elektronikken
Jeg har lagt til 2 ordninger, 1 er et brødbrett for testformål. Jeg anbefaler å bygge det første opplegget og prøve å få koden til å fungere.
Jeg har lagt til fritzing -filene nedenfor.
Trinn 3: Databasedesign
Dette er databaseskjemaet jeg laget. Ordene er på nederlandsk, men jeg vil forklare hver tabell i detalj.
Tabell 1: tblMuziek
Dette er et ganske grunnleggende bord. Det lagrer artistnavnet, sangnavnet og filnavnet til en sang.
Tabell 2: tblLedstrip
Denne tabellen holder oversikt over den aktuelle tilstanden til ledstripen, den lagrer ledstripens tilstand. Vi trenger dette for smartlight -funksjonen.
Tabell 3: tblSensoren
Denne tabellen holder oversikt over sensorene i alarmen vår. Vi lagrer navnet på sensoren og MCP3008 -kanalen
Tabell 4: tblMeting
Denne tabellen lagrer verdiene til sensorene våre sammen med tiden.
Tabell 5: tblWekker
Denne tabellen lagrer passordet og navnet på vekkerklokken din (f.eks. Soverom) Denne tabellen er ikke obligatorisk, men jeg la den til fordi jeg antar at du vil ha mer enn 1 vekkerklokke i huset ditt.
Tabell 6: tblAlarm
Dette er sannsynligvis det viktigste bordet. Den holder oversikt over alarmen du har angitt og hva klokken må gjøre (hvilken sang som skal spilles, hvilken ledesekvens, på hvilke dager skal den gå, …). Det er veldig viktig å holde oversikt over 2 datoer. 1 dato brukes til å lagre på hvilken tid alarmen skal gå. Den andre holder orden på forrige gang alarmen gikk. For å vite hvilken ukedag det skulle gå, brukte jeg en varchar som inneholder et tall på 7 sifre. Det første sifferet er mandag, den andre tirsdag, … Hvis det er et 1, bør det gå av, hvis det er et 0, bør det ikke. Eksempel: 1111100 betyr at alarmen skal gå på mandag, tirsdag, onsdag, torsdag og fredag.
Trinn 4: Arduino -oppsett
Dette trinnet er veldig enkelt. Det vil være en lenke til githuben min på neste trinn der du kan laste ned arduino -filen.
Hva gjør programmet?
Programmet venter på at serielle data kommer fra pi.
Så snart dataene er mottatt, analyseres de gjennom strengen og sender tilbake en bekreftelse til pi.
Strengen vil være omtrent slik: '1201', dette betyr at klokken er 12:01. Jeg brukte en vanlig anode 7 -segmentvisning, dette betyr at tallene skal være høye og A, B, C, D, E, F, G og DP skal være lave for å slå dem på. Hvis du bruker en vanlig katode, bør du bare endre HIGH til LOW & LOW til HIGH.
Her er en lenke med mer informasjon om hvordan 7 segmentdisplayer fungerer. (med bruk av bibliotek):
www.instructables.com/id/Using-a-4-digit-7…
Her er en lenke om 7 segmentvisninger uten bruk av et bibliotek:
create.arduino.cc/projecthub/SAnwandter1/p…
Trinn 5: Raspberry Pi Backend
Du kan laste ned koden min med Github. (https://github.com/VanHevelNico/WakeMeUp)
Slik installerer du programmet:
Bakenden er skrevet i python ved hjelp av kolbe. Du kan lage en tjeneste som starter dette programmet (app.py) automatisk.
Du bør sette frontend -koden i html -filen til apache -serveren vi lastet ned tidligere. (/var/html)
Hvordan fungerer programmet?
Når vekkerklokken er slått på, gå til klokkeens ip -adresse (den vises på LCD -skjermen)
Så snart du går til den ip -adressen i nettleseren din, sender datamaskinen en socket.io -forespørsel til backend og sier at en klient har koblet seg til. Når backend mottar dette, starter noen få tråder som jeg vil forklare nedenfor.
Oppsett
Dette intialiserer alle objektene som trengs.
GetTemp
Dette leser mcp3008 kanal 0 og konverterer de binære dataene til den faktiske temperaturen og legger dem i databasen med gjeldende dato og time.
GetTempGrafiek
Dette får de siste 20 verdiene til temperatursensoren og sender den ut til frontenden.
tijd_sturen
Denne metoden får gjeldende tid og sjekker om minuttet har endret seg. Hvis det har endret seg, sender programmet den nye tiden til arduino ved hjelp av seriell kommunikasjon
sjekkAlarmen
Dette er den viktigste metoden. Den får alle alarmene som er slått på og sjekker om noen av disse alarmene må gå mellom nå og for 5 minutter siden (dette er en buffer for å sikre at hver alarm går når den trenger det). Hvis alarmen må gå, starter vi musikken, ledestripen, … Vi leser den kraftfølsomme motstanden kontinuerlig, og når verdien faller under 1000 (les fsr trykkes) Vi slår på alarmen og oppdaterer alarmen i database. Vi satte datoen da alarmen gikk for siste gang til gjeldende dato.
statusLight
Denne metoden avgir verdien av ledstripen og slår på ledstripen om nødvendig.
lichtAanpassen
Dette er en ekstra metode for å sikre at ledstrip og alarmlys ikke kommer i konflikt.
Trinn 6: Case
Lenken til filene mine finner du her:
Jeg brukte en 3d -skriver for å skrive ut kabinettet. Den er trykt i 4 forskjellige deler:
- Frontplaten med hull for høyttaleren og noen vegger for 7 -segmenters display
- Den ytre ringen for ledstripen i transparent PETG.
- Den midtre delen
- Bakplaten med et hull for LCD -skjermen og et hull for kablene.
I den originale modellen var det ikke noe hull for 7 -segmentskjermen, men dette er nødvendig, for ellers vil ikke lyset fra 7 -segmentet vise seg gjennom.
Som du kan se etter å ha satt alle komponentene i, brukte jeg vinylklistremerker med et treutseende for å få sluttresultatet til å se bedre ut. Klokkeskjermen lyser gjennom klistremerket som skaper en veldig fin effekt.
Anbefalt:
Smart vekkerklokke ved hjelp av Magicbit (Arduino): 10 trinn
Smart vekkerklokke ved hjelp av Magicbit (Arduino): Denne opplæringen viser hvordan du lager en smart vekkerklokke ved hjelp av OLED -skjerm i Magicbit dev board uten å bruke noen RTC -modul
Smart vekkerklokke - Intel Edison - Iot RoadShow - São Paulo: 4 trinn
Smart vekkerklokke - Intel Edison - Iot RoadShow - São Paulo: En av de store dydene til alle som bor eller jobber i en storby, er tidsstyring. I dag er turene konstante, og ettersom trafikk er en av hovedfaktorene. Da jeg tenkte på det, laget jeg en liten applikasjon som bruker integrasjonen med Google M
WakeupNow - Smart vekkerklokke: 8 trinn
WakeupNow - Smart vekkerklokke: Som alle vet, er studentenes liv veldig vanskelig, de har en lang dag med forelesninger, mye lekser og generelt har de et vanvittig liv. De har tid til ingenting, og hvis du foreslår dem å legge noen timer til dagen, blir de glade. Unfo
Smart vekkerklokke: en smart vekkerklokke laget med bringebær Pi: 10 trinn (med bilder)
Smart vekkerklokke: en smart vekkerklokke laget med bringebær Pi: Har du noen gang ønsket deg en smart klokke? I så fall er dette løsningen for deg! Jeg lagde Smart Alarm Clock, dette er en klokke som du kan endre alarmtiden i henhold til nettstedet. Når alarmen går, kommer det en lyd (summer) og 2 lys vil
GOOB - en smart vekkerklokke: 15 trinn (med bilder)
GOOB - en smart vekkerklokke: GOOB er et akronym for "Get Out Of Bed", et godt passende navn for prosjektet mitt. Jeg ønsket å lage en enhet som kan hjelpe meg med å vekke meg om morgenen, siden det ikke er den enkleste oppgaven. Hovedideen er at vekkerklokken ikke stopper alar