Innholdsfortegnelse:

Soloppgang vekkerklokke med LCD -skjerm og Bluetooth -app: 8 trinn
Soloppgang vekkerklokke med LCD -skjerm og Bluetooth -app: 8 trinn

Video: Soloppgang vekkerklokke med LCD -skjerm og Bluetooth -app: 8 trinn

Video: Soloppgang vekkerklokke med LCD -skjerm og Bluetooth -app: 8 trinn
Video: ЛОВИМ ВСЕХ??? Радиоприемник Tecsun pl368. Все диапазонный радиоприем 2024, Juli
Anonim
Soloppgang vekkerklokke med LCD -skjerm og Bluetooth -app
Soloppgang vekkerklokke med LCD -skjerm og Bluetooth -app
Soloppgang vekkerklokke med LCD -skjerm og Bluetooth -app
Soloppgang vekkerklokke med LCD -skjerm og Bluetooth -app

Vinteren kan være trist. Du våkner, det er mørkt og du må gå ut av sengen. Det siste du vil høre er den irriterende lyden fra vekkerklokken din. Hvis du, som meg, har problemer med å våkne om morgenen, er denne vekkerklokken akkurat det du trenger.

I denne opplæringen skal vi bygge en soloppgangsklokke. Det er en vekkerklokke som alle andre ved at du kan stille inn timen og minuttet du vil våkne, men med fordelen av å bruke lys til å lyse opp soverommet ditt over en periode som en soloppgang for å vekke deg i stedet for en irriterende summer!

Vi bruker også en Bluetooth -modul for å lage en app som lar deg sette alarmen via telefonen på klokken. LCD-skjermen viser tid, dato og ukedag. Soloppgangslamper finnes på markedet, men de kan være dyre (et raskt søk på Google returnerer produkter i € 100-serien), skjøre og ganske kliniske utseende. Derfor bestemte jeg meg for å lage mitt eget for mitt Arduino skoleprosjekt. Alle delene vil bli oppført i neste trinn. Koden kan lastes ned fra min Github repo soloppgang-vekkerklokke. La oss begynne:)

all kode finner du på:

Trinn 1: Samle delene

Samle delene
Samle delene
Samle delene
Samle delene
Samle delene
Samle delene

Vi bruker en klokke som inngang og en ultralyst LED som utgang for å simulere soloppgangen.

For å bygge kretsen trenger vi:

- Arduino Uno -clockmodule RTC DS3231 - et MOSFET for å kontrollere lysstyrken på lyset - en superlys LED (jeg kjøpte 2, en varm, en kald) - 9V batteri for å drive LED - et brødbrett - en LCD -skjerm (16: 2)- Bluetooth-adapter hc-05 slik at vi kan bruke en app til å stille alarmen.

Alt du trenger kan kjøpes på www.martoparts.nl

Trinn 2: Montering av kretsen

Montering av kretsen
Montering av kretsen
Montering av kretsen
Montering av kretsen

Du kan referere til skissen for kretsen min, dessverre fant jeg ikke RTC DS3231 i programmet, så jeg måtte gjøre med denne. Tilkoblinger er litt forskjellige i virkeligheten, her er sammenhengene. (Bluetooth -modulen er ikke i skissen, men jeg vil forklare hvordan den fungerer nedenfor, noe som gjør det ganske vanskelig)

RTC DS3231GND går til GND på arduinoen

VCC går til 5v

SDA går til arduino

SCL går til arduino Vi bruker ikke SQW og 32KMOSFET

Gate pin går til pin ~ 9 på Arduino Uno fordi det er PWMDrain pin går til den negative siden av LED Kilden pin går til GND på ArduinoLCD-DisplayGND går til GND på arduino

VCC går til 5VSDA går til A4 på arduinoSKL går til A5 på arduinoLED- går til mosfet+ går til 5v9v batteri Du kan kjøpe et 9v batteri i hvilken som helst lokal butikk, koble til arduinoen med en kontaktlist.

Bluetooth-modulen hc-055V går til 5V fra arduinoen

GND går til GND på arduinoen

Nå er det to flere innganger, men her kommer den vanskelige delen, vi må koble de motsatte inngangene til de 2 på arduinoTX fra hc-05 går til RX på arduinoRX fra hc-05 går til TX på arduino

Viktig: Sørg for at du KOBLER TX & RX fra HC-05 når du laster opp kode på din arduino, eller du får en feilmelding som sier "noe gikk galt med å laste opp koden" i kompilatoren.

Trinn 3: Stille inn LCD -skjermen og klokken

Stille inn LCD -skjermen og klokken
Stille inn LCD -skjermen og klokken
Stille inn LCD -skjermen og klokken
Stille inn LCD -skjermen og klokken

Biblioteket som brukes til LCD-skjermen er flytende krystall og finnes på: https://github.com/fdebrabander/Arduino-LiquidCrys… Last ned zip-filen, lagre den og legg den i Arduino's/libraries-mappen

Biblioteket jeg bruker til å kjøre klokken, finnes på Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 og sørg for at du er på DS3231-siden. Last ned zip -filen, lagre den og plasser den i Arduinos biblioteksmappe.

Tid

Inkluder biblioteket DS3231 eller DS1307 i din arduino -kode

Ikke kommenter disse tre kodelinjene for å angi tiden:

// rtc.setDOW (MANDAG); // Sett ukedag til SØNDAG // rtc.setTime (23, 57, 0); // Still tiden til 12:00:00 (24 -timers format) // rtc.setDate (14, 1, 2019); // Angi datoen til 1. januar 2014

LCD-skjerm

Inkluder biblioteket liqduicrystal_i2c i din arduino -kode

Bruk for å skrive ut på LCD -skjermen

lcd.setCursor (kol, rad) // plassering av tekst trykt lcd.print (~) // tekst skrevet ut

Trinn 4: Koding

Koding
Koding

Last ned koden på: github:

Ikke kommenter disse 3 linjene for å stille klokken på LCD -skjermen:

// rtc.setDOW (MANDAG); // Sett ukedag til SØNDAG // rtc.setTime (23, 57, 0); // Still tiden til 12:00:00 (24 -timers format) // rtc.setDate (14, 1, 2019); // Angi datoen til 1. januar 2014

Bruk lcd.setCuros (kol, rad); for å angi posisjonen til teksten som skal vises

lcd.setCursor (0, 2);

og skriv ut () for å skrive ut noe på skjermen

lcd.print (rtc.getDateStr ());

Endre disse variablene hvis du vil

int fadeTime = 1; // Hvor lenge lyset vil falme til maxint setHour = 02; // Angi timer for vekking (militær tid) int setMin = 49; // Angi minutt for å vekke int uled = 9; // Sett pinout med PWM

Bluetooth -modulkode

String firstHalf = getValue (input, ':', 0); // sjekk første inngang til ":"

String secondHalf = getValue (input, ':', 1); // sjekk andre inndata etter ":"

// bruk denne koden hvis du ikke bruker Bluetooth -modulen

// // if (t.hour == setHour && t.min == setMin) // Sjekk om det er på tide å våkne! // { // start(); //}

// sjekk de to første sifferinngangene, og sjekk deretter de to andre sifferene

hvis (t.time == firstHalf.toInt () && t.min == secondHalf.toInt ()) {start (); }}

// logikk for å skille strenger

String getValue (String data, char separator, int index) {int found = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1;

for (int i = 0; i <= maxIndex && funnet <= index; i ++) {if (data.charAt (i) == separator || i == maxIndex) {funnet ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i+1: i; }} retur funnet> indeks? data.substring (strIndex [0], strIndex [1]): ""; }

Trinn 5: Tid for testing

Kompiler koden din og test om komponentene fungerer!

Trinn 6: Oppsett av Bluetooth-app

Oppsett av Bluetooth-app
Oppsett av Bluetooth-app
Oppsett av Bluetooth-app
Oppsett av Bluetooth-app
Oppsett av Bluetooth-app
Oppsett av Bluetooth-app

Fordi jeg syntes det var irriterende å grave i koden hver gang jeg ønsket å stille en alarm, ønsket jeg å lage en app som ville sette alarmen, noe som er mye lettere.

Gå til https://ai2.appinventor.mit.edu her kan vi lage en enkel app som lar oss stille alarmen, jeg har inkludert det enkle designoppsettet (du kan alltid justere dette senere) og koden som brukes for Du kan deretter publisere appen og koble den til på telefonen ved å bruke en QR -kode eller laste ned appen direkte til datamaskinen og deretter overføre den med kabel på telefonen. (skjermbilde)

Trinn 7: Bygg saken

Å bygge saken
Å bygge saken
Å bygge saken
Å bygge saken
Å bygge saken
Å bygge saken

Du kan alltid bygge en annen sak rundt arduino -klokken. Jeg brukte tre og matt plexiglass for å bygge min egen vekkerklokke. Jeg valgte matt plexiglass, slik at du kan se lyset som tydelig skinner gjennom saken, men du kan ikke se innsiden av klokken.

Trinn 8: Ferdig

Ferdig!
Ferdig!
Ferdig!
Ferdig!
Ferdig!
Ferdig!

Nå som du har lastet opp koden til arduinoen din, bygget saken og sjekket om du har montert klokken riktig, kan du sette en alarm på bluetooth -appen og begynne å våkne mer naturlig!:)

Anbefalt: