Obsah:

Budík Sunrise s LCD displejem a aplikací Bluetooth: 8 kroků
Budík Sunrise s LCD displejem a aplikací Bluetooth: 8 kroků

Video: Budík Sunrise s LCD displejem a aplikací Bluetooth: 8 kroků

Video: Budík Sunrise s LCD displejem a aplikací Bluetooth: 8 kroků
Video: Video za jízdy bez kódování 2024, Listopad
Anonim
Budík Sunrise s LCD displejem a aplikací Bluetooth
Budík Sunrise s LCD displejem a aplikací Bluetooth
Budík Sunrise s LCD displejem a aplikací Bluetooth
Budík Sunrise s LCD displejem a aplikací Bluetooth

Zima může být smutná. Probudíte se, je tma a musíte vstát z postele. Poslední věc, kterou chcete slyšet, je nepříjemný zvuk budíku. Pokud máte stejně jako já potíže s ranním probuzením, je tento budík přesně to, co potřebujete.

V tomto tutoriálu budeme stavět budík Sunrise. Je to budík jako každý jiný v tom, že si můžete nastavit hodinu a minutu, kdy se chcete probudit, ale s výhodou použití světla, které rozzáří vaši ložnici po určitou dobu jako východ slunce, aby vás probudilo místo otravného bzučák!

Modul bluetooth také použijeme k vytvoření aplikace, která vám umožní nastavit budík pomocí telefonu na hodiny. LCD displej zobrazí čas, datum a den v týdnu. Svítidla Sunrise na trhu existují, ale mohou být drahé (rychlé vyhledávání na Googlu vrací produkty v rozmezí 100 EUR), křehké a klinicky vypadající. Proto jsem se rozhodl vytvořit svůj vlastní pro svůj školní projekt Arduino. Všechny součásti budou uvedeny v dalším kroku. Kód lze stáhnout z mého Github repo východu slunce-budíku. Pojďme začít:)

veškerý kód najdete na:

Krok 1: Shromáždění dílů

Shromažďování dílů
Shromažďování dílů
Shromažďování dílů
Shromažďování dílů
Shromažďování dílů
Shromažďování dílů

Jako simulaci východu slunce použijeme jako vstup hodiny a ultra jasnou LED.

K vybudování okruhu budeme potřebovat:

- Arduino Uno- clockmodule RTC DS3231 - MOSFET pro ovládání jasu světla - super jasná LED (koupil jsem 2, jednu teplou, jednu studenou) - 9V baterii pro napájení LED - prkénko - LCD displej (16: 2)- Bluetooth adaptér hc-05, abychom mohli nastavit aplikaci pomocí aplikace.

Vše, co potřebujete, lze zakoupit na www.martoparts.nl

Krok 2: Sestavení obvodu

Sestavení obvodu
Sestavení obvodu
Sestavení obvodu
Sestavení obvodu

Můžete se podívat na náčrt mého okruhu, bohužel jsem v programu nemohl najít RTC DS3231, takže jsem musel dělat s tímto. Připojení se ve skutečnosti trochu liší, zde jsou připojení. (modul bluetooth není v náčrtu, ale níže vysvětlím, jak funguje, protože je poměrně složitý)

RTC DS3231GND přechází na arduino do GND

VCC jde na 5v

SDA jde do arduina

SCL přejde na arduino Nebudeme používat SQW a 32KMOSFET

Gate pin jde na pin ~ 9 na Arduino Uno, protože je to PWMDrain pin jde na negativní stranu LED Source pin jde na GND na ArduinoLCD-DisplayGND jde do GND na arduino

VCC jde na 5VSDA jde na A4 na arduinoSKL jde na A5 na arduinoLED- jde na mosfet+ jde na 5v9v baterii 9v baterii si můžete koupit v každém místním obchodě, zapojte do arduina pomocí konektorové lišty.

Modul Bluetooth HC-055V jde z Arduina na 5V

GND jde na GND na arduinu

Nyní jsou tu ještě 2 vstupy, ale tady přichází ta choulostivá část, musíme připojit opačné vstupy těch 2 na arduinoTX z hc-05 jde do RX na arduinoRX z hc-05 jde do TX na arduino

Důležité: Při odesílání kódu na arduino ODPOJTE TX & RX od HC-05, jinak se v kompilátoru zobrazí chyba „něco se při nahrávání kódu pokazilo“.

Krok 3: Nastavení LCD displeje a hodin

Nastavení LCD displeje a hodin
Nastavení LCD displeje a hodin
Nastavení LCD displeje a hodin
Nastavení LCD displeje a hodin

Knihovna použitá pro LCD displej je z tekutých krystalů a najdete ji na adrese: https://github.com/fdebrabander/Arduino-LiquidCrys… Stáhněte si zip soubor, uložte jej a umístěte do složky Arduino/knihovny

Knihovnu, kterou používám ke spouštění hodin, najdete na adrese Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 a ujistěte se, že jste na stránce DS3231. Stáhněte si soubor zip, uložte jej a umístěte do složky knihoven Arduina.

Čas

Zahrňte do svého arduino kódu knihovnu DS3231 nebo DS1307

Chcete -li nastavit čas, odkomentujte tyto 3 řádky kódu:

// rtc.setDOW (PONDĚLÍ); // Nastavit den v týdnu na NEDĚLE // rtc.setTime (23, 57, 0); // Nastavte čas na 12:00:00 (formát 24 hodin) // rtc.setDate (14, 1, 2019); // Nastavte datum na 1. ledna 2014

LCD displej

Zahrňte knihovnu liqduicrystal_i2c do svého arduino kódu

K tisku na LCD displej použijte

lcd.setCursor (sloupec, řádek) // poloha vytištěného textu lcd.print (~) // vytištěný text

Krok 4: Kódování

Kódování
Kódování

Stáhněte si kód na: github:

Chcete -li nastavit hodiny na LCD displeji, odkomentujte tyto 3 řádky:

// rtc.setDOW (PONDĚLÍ); // Nastavit den v týdnu na NEDĚLE // rtc.setTime (23, 57, 0); // Nastavte čas na 12:00:00 (formát 24 hodin) // rtc.setDate (14, 1, 2019); // Nastavte datum na 1. ledna 2014

Použijte lcd.setCuros (sloupec, řádek); pro nastavení polohy textu na displeji

lcd.setCursor (0, 2);

a print () pro tisk něčeho na displej

lcd.print (rtc.getDateStr ());

Pokud chcete, změňte tyto proměnné

int fadeTime = 1; // Jak dlouho bude světlo mizet na maxint setHour = 02; // Nastavit hodiny na probuzení (vojenský čas) int setMin = 49; // Nastavit minutu probuzení int uled = 9; // Nastavit pinout pomocí PWM

Kód modulu Bluetooth

Řetězec firstHalf = getValue (vstup, ':', 0); // zkontrolujte první zadání do ":"

Řetězec secondHalf = getValue (vstup, ':', 1); // zkontrolujte druhý vstup za ":"

// tento kód použijte, pokud nepoužíváte modul bluetooth

// // if (t.hour == setHour && t.min == setMin) // Zkontrolujte, zda je čas se probudit! // { // Start(); //}

// zkontrolujte první 2 číslice vstupů, poté zkontrolujte druhé 2 číslice vstupu

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

// logika k oddělení řetězců

Řetězec getValue (Řetězcová data, oddělovač znaků, int index) {int found = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1;

for (int i = 0; i <= maxIndex && found <= index; i ++) {if (data.charAt (i) == separator || i == maxIndex) {found ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i+1: i; }} návrat nalezen> index? data.substring (strIndex [0], strIndex [1]): ""; }

Krok 5: Čas na testování

Zkompilujte svůj kód a vyzkoušejte, zda komponenty fungují!

Krok 6: Nastavení aplikace Bluetooth

Nastavení aplikace Bluetooth
Nastavení aplikace Bluetooth
Nastavení aplikace Bluetooth
Nastavení aplikace Bluetooth
Nastavení aplikace Bluetooth
Nastavení aplikace Bluetooth

Protože mi přišlo nepříjemné kopat do kódu pokaždé, když jsem chtěl nastavit budík, chtěl jsem vytvořit aplikaci, která by budík nastavila, což je mnohem jednodušší.

Přejděte na stránku https://ai2.appinventor.mit.edu. Můžeme vytvořit jednoduchou aplikaci, která nám umožní nastavit budík, zahrnul jsem jednoduché nastavení designu (toto můžete kdykoli později upravit) a kód použitý pro připojení bluetooth. Svou aplikaci pak můžete publikovat a připojit se k ní v telefonu pomocí QR kódu nebo přímo stáhnout aplikaci do počítače a poté ji přenést kabelem do telefonu. (Snímek obrazovky)

Krok 7: Stavba pouzdra

Budování případu
Budování případu
Budování případu
Budování případu
Budování případu
Budování případu

Kolem svých hodin arduino můžete vždy postavit jiné pouzdro. Ke konstrukci vlastního pouzdra budíku jsem použil dřevo a matné plexisklo. Vybral jsem matné plexisklo, abyste viděli světlo jasně zářící skrz pouzdro, ale nevidíte vnitřek hodin.

Krok 8: Hotovo

Hotovo!
Hotovo!
Hotovo!
Hotovo!
Hotovo!
Hotovo!

Nyní, když jste nahráli kód do arduina, sestavili pouzdro a zkontrolovali, zda jste správně sestavili hodiny, můžete v aplikaci bluetooth nastavit budík a začít se probouzet přirozeněji!:)

Doporučuje: