Indholdsfortegnelse:

Solopgang vækkeur med LCD -display og Bluetooth App: 8 trin
Solopgang vækkeur med LCD -display og Bluetooth App: 8 trin

Video: Solopgang vækkeur med LCD -display og Bluetooth App: 8 trin

Video: Solopgang vækkeur med LCD -display og Bluetooth App: 8 trin
Video: Vækkeur med skydeskive fra DinGadget.dk 2024, November
Anonim
Solopgang vækkeur med LCD -display og Bluetooth App
Solopgang vækkeur med LCD -display og Bluetooth App
Solopgang vækkeur med LCD -display og Bluetooth App
Solopgang vækkeur med LCD -display og Bluetooth App

Vintertid kan være trist. Du vågner, det er mørkt, og du skal ud af sengen. Det sidste du vil høre er den irriterende lyd fra dit vækkeur. Hvis du ligesom jeg har problemer med at vågne om morgenen, er dette vækkeur lige hvad du har brug for.

I denne vejledning skal vi bygge et solopgang vækkeur. Det er et vækkeur som alle andre, idet du kan indstille den time og det minut, du vil vågne op, men med fordelen ved at bruge lys til at lyse dit soveværelse op over en periode som en solopgang for at vække dig i stedet for en irriterende summer!

Vi vil også bruge et bluetooth -modul til at oprette en app, der lader dig indstille alarmen via din telefon til uret. LCD-displayet viser tid, dato og ugedag. Solopgangslamper findes på markedet, men de kan være dyre (en hurtig søgning på Google returnerer produkter i € 100-serien), skrøbelige og ganske klinisk udseende. Derfor besluttede jeg at lave mit eget til mit Arduino -skoleprojekt. Alle delene vil blive angivet i det næste trin. Koden kan downloades fra mit Github repo solopgang-vækkeur. Lad os begynde:)

al kode kan findes på:

Trin 1: Samling af delene

Samling af delene
Samling af delene
Samling af delene
Samling af delene
Samling af delene
Samling af delene

Vi vil bruge et ur som vores input og en ultra-lys LED som vores output til at simulere vores solopgang.

For at bygge kredsløbet skal vi bruge:

- Arduino Uno- clockmodule RTC DS3231 - et MOSFET til styring af lysets lysstyrke - en super -lys LED (jeg købte 2, en varm, en kold) - 9V batteri til at drive LED'en - et brødbræt- et LCD -display (16: 2)- Bluetooth-adapter hc-05, så vi kan bruge en app til at indstille alarmen.

Alt hvad du har brug for kan købes på www.martoparts.nl

Trin 2: Samling af kredsløbet

Montering af kredsløbet
Montering af kredsløbet
Montering af kredsløbet
Montering af kredsløbet

Du kan henvise til skitsen til mit kredsløb, desværre kunne jeg ikke finde RTC DS3231 i programmet, så jeg havde at gøre med denne. Forbindelser er lidt forskellige i virkeligheden, her er forbindelserne. (Bluetooth -modulet er ikke i skitsen, men jeg vil forklare, hvordan det fungerer nedenfor, hvilket gør det ret vanskeligt)

RTC DS3231GND går til GND på arduinoen

VCC går til 5v

SDA går til arduino

SCL går til arduinoVi bruger ikke SQW og 32KMOSFET

Gate pin går til pin ~ 9 på Arduino Uno, fordi det er PWMDrain pin går til den negative side af 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 batteriet Du kan købe et 9v batteri i enhver lokal butik, tilslut arduinoen med en stikstrimmel.

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

GND går til GND på arduinoen

Nu er der yderligere 2 indgange, men her kommer den vanskelige del, vi skal forbinde de modsatte indgange fra de 2 på arduinoTX fra hc-05 går til RX på arduinoRX fra hc-05 går til TX på arduino

Vigtigt: Sørg for at AFSLUTTE TX & RX fra HC-05, når du uploader kode på din arduino, eller du får en fejlmeddelelse om, at "der gik noget galt med at uploade koden" i kompilatoren.

Trin 3: Indstilling af LCD -display og ur

Indstilling af LCD -display og ur
Indstilling af LCD -display og ur
Indstilling af LCD -display og ur
Indstilling af LCD -display og ur

Biblioteket, der bruges til LCD-displayet, er flydende krystal og kan findes på: https://github.com/fdebrabander/Arduino-LiquidCrys… Download zip-filen, gem den og placer den i din Arduino's/libraries-mappe

Det bibliotek, jeg bruger til at køre uret, findes på Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 og sørg for, at du er på siden DS3231. Download zip -filen, gem den og placer den i din Arduinos biblioteksmappe.

Tid

Inkluder biblioteket DS3231 eller DS1307 i din arduino -kode

Fjern disse 3 linjer kode for at indstille tiden:

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

LCD display

Inkluder biblioteket liqduicrystal_i2c i din arduino -kode

Brug til at udskrive på LCD -skærmen

lcd.setCursor (kolonne, række) // udskrivning af tekstlcd.print (~) // tekst udskrevet

Trin 4: Kodning

Kodning
Kodning

Download koden på: github:

Fjern disse 3 linjer for at indstille uret på din LCD -skærm:

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

Brug lcd.setCuros (kolonne, række); for at indstille tekstens position på displayet

lcd.setCursor (0, 2);

og udskriv () for at udskrive noget på displayet

lcd.print (rtc.getDateStr ());

Skift disse variabler, hvis du vil

int fadeTime = 1; // Hvor længe lyset vil falme til maxint setHour = 02; // Indstil timer til at vågne (militær tid) int setMin = 49; // Indstil minut for at vække int uled = 9; // Indstil pinout med PWM

Bluetooth modul kode

String firstHalf = getValue (input, ':', 0); // tjek første input indtil ":"

String secondHalf = getValue (input, ':', 1); // tjek andet input efter ":"

// brug denne kode, hvis du ikke bruger bluetooth -modulet

// // if (t.hour == setHour && t.min == setMin) // Tjek om det er tid til at vågne! // { // Start(); //}

// kontroller de første 2 cifres input, og kontroller derefter de 2 sidste cifre input

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

// logik til at adskille strenge

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

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

Trin 5: Tid til test

Kompilér din kode, og test, om komponenterne virker!

Trin 6: Opsætning af Bluetooth-app

Opsætning af Bluetooth-app
Opsætning af Bluetooth-app
Opsætning af Bluetooth-app
Opsætning af Bluetooth-app
Opsætning af Bluetooth-app
Opsætning af Bluetooth-app

Fordi jeg fandt det irriterende at grave i koden hver gang jeg ville indstille en alarm, ville jeg lave en app, der ville indstille alarmen, hvilket er meget lettere.

Gå til https://ai2.appinventor.mit.edu hvor vi kan lave en simpel app, der lader os indstille alarmen, jeg har inkluderet det enkle designopsætning (du kan altid justere dette senere) og koden, der bruges til Du kan derefter udgive din app og oprette forbindelse til den på din telefon ved hjælp af en QR -kode eller direkte downloade appen på din computer og derefter overføre den med kabel på din telefon. (skærmbillede)

Trin 7: Opbygning af sagen

Bygger sagen
Bygger sagen
Bygger sagen
Bygger sagen
Bygger sagen
Bygger sagen

Du kan altid bygge en anden sag omkring dit arduino -ur. Jeg brugte træ og mat plexiglas til at konstruere min egen vækkeur. Jeg valgte mat plexiglas, så du kan se lyset klart skinne gennem uret, men du kan ikke se indersiden af uret.

Trin 8: Færdig

Færdig!
Færdig!
Færdig!
Færdig!
Færdig!
Færdig!

Nu hvor du har uploadet koden til din arduino, bygget sagen og kontrolleret, om du har samlet dit ur korrekt, kan du indstille en alarm på bluetooth -appen og begynde at vågne mere naturligt!:)

Anbefalede: