Inhoudsopgave:

Sunrise-wekker met lcd-scherm en Bluetooth-app - Ajarnpa
Sunrise-wekker met lcd-scherm en Bluetooth-app - Ajarnpa

Video: Sunrise-wekker met lcd-scherm en Bluetooth-app - Ajarnpa

Video: Sunrise-wekker met lcd-scherm en Bluetooth-app - Ajarnpa
Video: Heimvision Sunrise Wake-up Alarm Clock 2024, November
Anonim
Sunrise-wekker met lcd-scherm en Bluetooth-app
Sunrise-wekker met lcd-scherm en Bluetooth-app
Sunrise-wekker met lcd-scherm en Bluetooth-app
Sunrise-wekker met lcd-scherm en Bluetooth-app

Wintertijd kan verdrietig zijn. Je wordt wakker, het is donker en je moet je bed uit. Het laatste wat je wilt horen is het vervelende geluid van je wekker. Als je, net als ik, moeite hebt om 's ochtends wakker te worden, is deze wekker precies wat je nodig hebt.

In deze tutorial gaan we een Sunrise Alarm Clock bouwen. Het is een wekker zoals elke andere, omdat je het uur en de minuut kunt instellen waarop je wakker wilt worden, maar met het voordeel dat je licht gebruikt om je slaapkamer gedurende een bepaalde periode op te fleuren, zoals een zonsopgang om je wakker te maken in plaats van een irritante wekker. zoemer!

We gaan ook een bluetooth-module gebruiken om een app te maken waarmee je het alarm via je telefoon op de klok kunt zetten. Het LCD-scherm toont de tijd, de datum en de dag van de week. Er zijn zonsopkomstlampen op de markt, maar ze kunnen duur zijn (een snelle zoekopdracht op Google levert producten op in het bereik van € 100), fragiel en vrij klinisch ogend. Daarom heb ik besloten om er zelf een te maken voor mijn Arduino School Project. Alle onderdelen worden in de volgende stap vermeld. De code kan worden gedownload van mijn Github repo zonsopgang-wekker. Laten we beginnen:)

alle code is te vinden op:

Stap 1: Verzamelen van de onderdelen

De onderdelen verzamelen
De onderdelen verzamelen
De onderdelen verzamelen
De onderdelen verzamelen
De onderdelen verzamelen
De onderdelen verzamelen

We gebruiken een klok als input en een ultraheldere LED als output om onze zonsopgang te simuleren.

Om het circuit te bouwen hebben we nodig:

- Arduino Uno-clockmodule RTC DS3231 - een MOSFET om de helderheid van het licht te regelen - een superheldere LED (ik heb er 2 gekocht, een warme, een koude) - 9V batterij om de LED van stroom te voorzien - een breadboard- een LCD-scherm (16:2)- Bluetooth-adapter hc-05 zodat we een app kunnen gebruiken om het alarm in te stellen.

Alles wat je nodig hebt koop je op www.martoparts.nl

Stap 2: Het circuit monteren

Het circuit samenstellen
Het circuit samenstellen
Het circuit samenstellen
Het circuit samenstellen

Je kunt verwijzen naar de schets voor mijn circuit, helaas kon ik de RTC DS3231 niet in het programma vinden, dus ik moest het met deze doen. Verbindingen zijn in het echt een beetje anders, hier zijn de verbindingen. (de bluetooth-module staat niet in de schets maar ik zal hieronder uitleggen hoe het werkt want het is nogal lastig)

RTC DS3231GND gaat naar GND op de arduino

VCC gaat naar de 5v

SDA gaat naar arduino

SCL gaat naar Arduino We zullen SQW & 32KMOSFET niet gebruiken

Gate pin gaat naar pin ~ 9 op de Arduino Uno omdat het PWMDrain pin gaat naar de negatieve kant van de LED Source pin gaat naar GND op de ArduinoLCD-DisplayGND gaat naar GND op de Arduino

VCC gaat naar 5VSDA gaat naar A4 op de arduinoSKL gaat naar A5 op de arduinoLED- gaat naar mosfet+ gaat naar de 5v9v-batterij Je kunt een 9v-batterij kopen in elke plaatselijke winkel, steek de stekker in de arduino met een connectorstrip.

Bluetooth-module hc-055V gaat naar 5V van de arduino

GND gaat naar GND op de arduino

Nu zijn er nog 2 ingangen, maar hier komt het lastige deel, we moeten de tegenovergestelde ingangen van die 2 aansluiten op de arduinoTX van hc-05 gaat naar RX op arduinoRX van hc-05 gaat naar TX op arduino

Belangrijk: zorg ervoor dat je de TX & RX ONTKOPPELT van de HC-05 wanneer je code uploadt naar je arduino, anders krijg je een foutmelding dat er "er is iets misgegaan met het uploaden van de code" in de compiler.

Stap 3: Het LCD-scherm en de klok instellen

Het LCD-scherm en de klok instellen
Het LCD-scherm en de klok instellen
Het LCD-scherm en de klok instellen
Het LCD-scherm en de klok instellen

De bibliotheek die wordt gebruikt voor het LCD-scherm is vloeibaar kristal en is te vinden op: https://github.com/fdebrabander/Arduino-LiquidCrys… Download het zip-bestand, sla het op en plaats het in de map /libraries van uw Arduino

De bibliotheek die ik gebruik om de klok te laten lopen, is te vinden op Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 en zorg ervoor dat u op de DS3231-pagina bent. Download het zipbestand, sla het op en plaats het in de bibliothekenmap van je Arduino.

Tijd

Neem de bibliotheek DS3231 of DS1307 op in uw arduino-code

Uncomment deze 3 regels code om de tijd in te stellen:

// rtc.setDOW (MAANDAG); // Stel de weekdag in op ZONDAG // rtc.setTime (23, 57, 0); // Stel de tijd in op 12:00:00 (24-uurs formaat) // rtc.setDate (14, 1, 2019); // Stel de datum in op 1 januari 2014

LCD scherm

Neem de bibliotheek liqduicrystal_i2c op in uw arduino-code

Om op het LCD-scherm af te drukken, gebruikt u:

lcd.setCursor(kolom, rij) // positie van tekst afgedruktlcd.print(~) // tekst afgedrukt

Stap 4: Coderen

codering
codering

Download de code op: github:

Maak een opmerking over deze 3 regels om de klok op uw LCD-scherm in te stellen:

// rtc.setDOW (MAANDAG); // Stel de weekdag in op ZONDAG // rtc.setTime (23, 57, 0); // Stel de tijd in op 12:00:00 (24-uurs formaat) // rtc.setDate (14, 1, 2019); // Stel de datum in op 1 januari 2014

Gebruik lcd.setCuros(col, row); om de positie van tekst op het display in te stellen

lcd.setCursor(0, 2);

en print() om iets op het scherm af te drukken

lcd.print(rtc.getDateStr());

Wijzig deze variabelen als u dat wilt

int fadeTime = 1; // Hoe lang het licht zal vervagen tot maxint setHour = 02; // Stel uren in om te wekken (militaire tijd) int setMin = 49; // Stel minuut in om te ontwaken int uled = 9; // Stel pinout in met PWM

Bluetooth-modulecode

String firstHalf = getValue (invoer, ':', 0); // controleer eerste invoer tot ":"

String secondHalf = getValue(invoer, ':', 1); // controleer tweede invoer na ":"

// gebruik deze code als je de bluetooth-module niet gebruikt

// //if (t.hour == setHour && t.min == setMin) // Controleer of het tijd is om wakker te worden! // { // begin(); // }

// controleer de eerste 2 cijfers van de invoer, controleer dan de tweede 2 cijfers van de invoer

if (t.hour == firstHalf.toInt() && t.min == secondHalf.toInt()) { start(); } }

// logica om strings te scheiden

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

for (int i = 0; i <= maxIndex && gevonden <= index; i++) { if (data.charAt(i) == scheidingsteken || i == maxIndex) { found++; strIndex[0] = strIndex[1] + 1; strIndex[1] = (i == maxIndex) ? ik+1: ik; } } terug gevonden> index ? data.substring(strIndex[0], strIndex[1]): ""; }

Stap 5: Tijd om te testen

Compileer je code & test of de componenten werken!

Stap 6: Bluetooth-app instellen

Bluetooth-app instellen
Bluetooth-app instellen
Bluetooth-app instellen
Bluetooth-app instellen
Bluetooth-app instellen
Bluetooth-app instellen

Omdat ik het vervelend vond om telkens in de code te duiken als ik een alarm wilde instellen, wilde ik een app maken die het alarm zou instellen, wat veel eenvoudiger is.

Ga naar https://ai2.appinventor.mit.eduhier kunnen we een eenvoudige app maken waarmee we het alarm kunnen instellen, ik heb de eenvoudige ontwerpopstelling toegevoegd (u kunt dit later altijd aanpassen) en de code die wordt gebruikt voor de Bluetooth-verbinding. U kunt uw app vervolgens publiceren en ermee verbinden op uw telefoon door een QR-code te gebruiken of door de app rechtstreeks op uw computer te downloaden en deze vervolgens met een kabel op uw telefoon over te zetten. (schermafbeelding)

Stap 7: De zaak bouwen

De zaak bouwen
De zaak bouwen
De zaak bouwen
De zaak bouwen
De zaak bouwen
De zaak bouwen

Je kunt altijd een andere kast rond je arduino-klok bouwen. Ik gebruikte hout en mat plexiglas om mijn eigen wekkerkast te bouwen. Ik koos voor mat plexiglas, zodat je het licht duidelijk door de kast kunt zien schijnen, maar je kunt de binnenkant van de klok niet zien.

Stap 8: Klaar

Afgewerkt!
Afgewerkt!
Afgewerkt!
Afgewerkt!
Afgewerkt!
Afgewerkt!

Nu je de code naar je arduino hebt geüpload, de behuizing hebt gebouwd en hebt gecontroleerd of je je klok goed hebt gemonteerd, kun je een alarm instellen op de bluetooth-app en natuurlijker wakker worden!:)

Aanbevolen: