Indholdsfortegnelse:

Wake Me Up - et smart vækkeur: 6 trin
Wake Me Up - et smart vækkeur: 6 trin

Video: Wake Me Up - et smart vækkeur: 6 trin

Video: Wake Me Up - et smart vækkeur: 6 trin
Video: ALARM CLOCK TRIES TO WAKE ME UP ⏰ #shorts #doods 2024, November
Anonim
Wake Me Up - et smart vækkeur
Wake Me Up - et smart vækkeur

Wake me up er et smart vækkeur, der også kan bruges som et smart lys.

Den indbyggede ledstrip simulerer naturligt lys, der kommer ind i dit værelse. Dette muliggør en rolig, naturlig måde at starte din dag på.

Vækkeuret er også udstyret med et 4*7 segment display til aflæsning af tiden, højttalere til at vågne op med din yndlingsmusik, en berøringsknap, en ldr til tilpasning af lysstyrken på ledstrip og en temperatursensor, som du kan bruge til at se temperaturen i dit værelse.

Forbrugsvarer

En liste over de nøjagtige priser, jeg betalte, kan findes her:

Mikrocontrollere og computere:

Raspberry Pi 4I brugte hindbær pi 4 4GB, men enhver hindbær pi model 3+ skulle være i orden

Arduino Uno

Arduinoen bruges til at styre 4*7 segmenters urvisning.

Sensorer:

  • TMP36: temperatursensor
  • LDR: Lysafhængig modstand

Aktuatorer:

  • WS2801: Individuelt adresserbar ledstrip
  • LCD -display: Et 16*2 LCD -display.
  • 4*7 segment urvisning

IC'er:

  • 74HC595: Shiftregister til lcd -skærmen
  • MCP3008: 8-bit analog til digital konverter
  • Logisk niveauomformer: Bruges til at kommunikere mellem raspi og arduino

Andre ting:

  • En adafruit MAX9744 forstærker til at drive højttalerne
  • Enhver højttaler, jeg brugte en Visaton 4Ohm 8Watt full range højttaler (art. Nr. 2240)
  • En 9 volt strømforsyning til forstærkeren
  • En 5 volt strømforsyning til forsyning af ledstrip og andre komponenter. Husk på, at hver led i ledstrip kan kaste 60mA, så sørg for, at din strømforsyning er tilstrækkelig.
  • Et par 220Ohm modstande
  • Et lille brødbræt til at lægge i din sag.

Værktøjer:

  • Et loddejern.
  • Noget at lave sagen (jeg brugte en 3d -printer med PLA og PETG og nogle vinylklistermærker for at få træeffekten.)

Trin 1: Opsætning af Raspberry Pi

Raspberry pi er vores vigtigste mikrokontroller.

Raspberry pi driver vores lokale webserver, database, styrer ledstrip, højttalere, …

Del 1: Installation af Raspbian

Brug denne vejledning til at installere raspbian:

Sørg for, at SSH er aktiveret

Del 2: Få forbindelse

For at få forbindelse til internettet skal du have adgang til din hindbær pis terminal. Jeg anbefaler at bruge kit. I terminalen type:

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

"YourNetwork" er navnet på dit wifi -netværk, og "YourSSID" er adgangskoden til netværket.

Når du har tilføjet netværket, skal du prøve at genstarte Raspberry Pi.

Indtast kommandoen 'ping 8.8.8.8', denne sender en pakke til Google-serverne, hvis du får svar, dit netværk er konfigureret og fungerer!

Del 3: Installer de nødvendige programmer

Vi skal installere nogle ekstra programmer for at få dette projekt i gang.

Inden vi går i gang, kør disse 2 kommandoer for at sikre, at alt er opgraderet.

sudo apt opdatering

sudo apt opgradering

Dette kan tage et stykke tid.

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 skal installere pip for at aktivere nogle python -biblioteker

pip3 installer mysql-connector-python

pip3 installer kolbe-socketio

pip3 installer kolbe-kors

pip3 installer gevent

pip3 installer gevent-websocket

Trin 2: Tilslutning af elektronikken

Tilslutning af elektronikken
Tilslutning af elektronikken
Tilslutning af elektronikken
Tilslutning af elektronikken

Jeg har tilføjet 2 ordninger, 1 er et brødbræt til testformål. Jeg anbefaler at bygge det første skema og prøve at få koden til at fungere.

Jeg har tilføjet fritzing -filerne herunder.

Trin 3: Databasedesign

Databasedesign
Databasedesign

Dette er den database, jeg lavede. Ordene er på hollandsk, men jeg vil forklare hver tabel i detaljer.

Tabel 1: tblMuziek

Dette er et temmelig grundlæggende bord. Det gemmer kunstnerens navn, sangnavn og filnavnet på en sang.

Tabel 2: tblLedstrip

Denne tabel holder styr på den aktuelle tilstand af ledstripen, den gemmer ledstripens tilstand. Vi har brug for dette til smartlight -funktionen.

Tabel 3: tblSensoren

Denne tabel holder styr på sensorerne i vores alarm. Vi gemmer navnet på sensoren og MCP3008s kanal

Tabel 4: tblMeting

Denne tabel gemmer værdierne for vores sensorer sammen med deres tid.

Tabel 5: tblWekker

Denne tabel gemmer adgangskoden og navnet på dit vækkeur (f.eks. Soveværelse) Denne tabel er ikke obligatorisk, men jeg tilføjede det, fordi jeg går ud fra, at du har mere end 1 vækkeur i dit hus.

Tabel 6: tblAlarm

Dette er nok det vigtigste bord. Det holder styr på alarmen, du har indstillet, og hvad uret skal gøre (hvilken sang der skal afspilles, hvilken ledesekvens, på hvilke dage skal den gå, …). Det er meget vigtigt at holde styr på 2 datoer. 1 dato bruges til at gemme på hvilket tidspunkt alarmen skal gå. Den anden holder styr på sidste gang alarmen gik. For at vide, hvilken hverdag det skulle gå, brugte jeg en varchar, der indeholder et tal på 7 cifre. Det første ciffer er mandag, den anden tirsdag, … Hvis det er et 1, skal det gå ud, hvis det er et 0, skal det ikke. Eksempel: 1111100 betyder, at denne alarm skal lyde mandag, tirsdag, onsdag, torsdag og fredag.

Trin 4: Arduino -opsætning

Dette trin er meget let. Der vil være et link til min github på det næste trin, hvor du kan downloade arduino -filen.

Hvad gør programmet?

Programmet venter på, at serielle data kommer ind fra pi.

Så snart dataene er modtaget, analyseres de gennem strengen og sender en bekræftelse tilbage til pi'et.

Strengen vil være sådan: '1201', det betyder, at den er 12:01. Jeg brugte en fælles anode 7segment display, hvilket betyder, at cifrene skal være høje, og A, B, C, D, E, F, G og DP skal være lave for at tænde dem. Hvis du bruger en fælles katode, skal du bare ændre HIGH til LOW & LOW til HIGH.

Her er et link med mere information om, hvordan 7 segmentskærme fungerer. (med brug af bibliotek):

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

Her er et link om 7 segmentdisplays uden brug af et bibliotek:

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

Trin 5: Raspberry Pi Backend

Hindbær Pi Backend
Hindbær Pi Backend

Du kan downloade min kode ved hjælp af Github. (https://github.com/VanHevelNico/WakeMeUp)

Sådan installeres programmet:

Backend er skrevet i python ved hjælp af kolbe. Du kan lave en tjeneste, der starter dette program (app.py) automatisk.

Du bør sætte frontend -koden i html -filen på den apache -server, vi downloadede tidligere. (/var/html)

Hvordan fungerer programmet?

Når vækkeuret er tændt, skal du gå til dit urs ip -adresse (det vil blive vist på lcd'en)

Så snart du går til den ip -adresse i din browser, sender din computer en socket.io -anmodning til backend, der siger, at en klient har oprettet forbindelse. Når backend modtager dette, starter et par tråde, som jeg vil forklare nedenfor.

Opsætning

Dette initialiserer alle de nødvendige objekter.

GetTemp

Dette læser mcp3008 kanal 0 og konverterer de binære data til den faktiske temperatur og lægger dem i databasen med den aktuelle dato og time.

GetTempGrafiek

Dette får de sidste 20 værdier af temperatursensoren og udsender det til frontenden.

tijd_sturen

Denne metode får den aktuelle tid og kontrollerer, om minuttet er ændret. Hvis det har ændret sig, sender programmet den nye tid til arduinoen ved hjælp af seriel kommunikation

checkAlarmen

Dette er den vigtigste metode. Det får alle de alarmer, der er tændt, og kontrollerer, om nogen af disse alarmer skal gå fra nu og for 5 minutter siden (dette er en buffer for at sikre, at hver alarm går, når den skal). Hvis alarmen skal gå, starter vi musikken, ledstripen, … Vi læser den kraftfølsomme modstand løbende, og når værdien falder til under 1000 (læs fsr trykkes) Vi slår alarmen til og opdaterer alarmen i database. Vi indstillede den dato, hvor alarmen gik sidste gang til den aktuelle dato.

statusLight

Denne metode udsender værdien af ledstripen og tænder ledstripen, hvis det er nødvendigt.

lichtAanpassen

Dette er en ekstra metode til at sikre, at ledstrip og alarmlys ikke konflikter.

Trin 6: Case

Sag
Sag
Sag
Sag
Sag
Sag

Linket til mine filer kan findes her:

Jeg brugte en 3d -printer til at udskrive kabinettet. Den er trykt i 4 forskellige dele:

  1. Frontpladen med huller til højttaleren og nogle vægge til displayet med 7 segmenter
  2. Den ydre ring til ledstrip i transparent PETG.
  3. Den midterste del
  4. Bagpladen med et hul til lcd'en og et hul til kablerne.

I den originale model var der ikke hul til 7 -segmentet display, men dette er nødvendigt, for ellers lyser 7 -segment displayet ikke igennem.

Som du kan se efter at have lagt alle komponenterne i, brugte jeg vinylklistermærker med et træudseende for at få slutresultatet til at se bedre ud. Urdisplayet skinner igennem klistermærket, hvilket skaber en meget flot effekt.

Anbefalede: