Kazalo:

Budilka Sunrise z LCD zaslonom in aplikacijo Bluetooth: 8 korakov
Budilka Sunrise z LCD zaslonom in aplikacijo Bluetooth: 8 korakov

Video: Budilka Sunrise z LCD zaslonom in aplikacijo Bluetooth: 8 korakov

Video: Budilka Sunrise z LCD zaslonom in aplikacijo Bluetooth: 8 korakov
Video: 😪Hotel built from a converted 🚢marine container🏩HOTEL R9 The Yardコンテナホテルに宿泊🛏 2024, Julij
Anonim
Budilka Sunrise z LCD zaslonom in aplikacijo Bluetooth
Budilka Sunrise z LCD zaslonom in aplikacijo Bluetooth
Budilka Sunrise z LCD zaslonom in aplikacijo Bluetooth
Budilka Sunrise z LCD zaslonom in aplikacijo Bluetooth

Zima je lahko žalostna. Zbudiš se, temno je in moraš vstati iz postelje. Zadnja stvar, ki jo želite slišati, je nadležen zvok budilke. Če imate, tako kot jaz, težave z zbujanjem zjutraj, je ta budilka tisto, kar potrebujete.

V tej vadnici bomo izdelali budilko Sunrise. To je budilka, tako kot katera koli druga, saj lahko nastavite uro in minuto, v kateri se želite zbuditi, vendar s prednostjo uporabe svetlobe za popestritev vaše spalnice v daljšem časovnem obdobju, kot da vas zbudi sončni vzhod namesto nadležnega brenčalo!

Za izdelavo aplikacije bomo uporabili tudi modul Bluetooth, ki vam omogoča, da alarm nastavite prek telefona na uro. Na LCD-prikazovalniku bodo prikazani čas, datum in dan v tednu. Svetilke Sunrise obstajajo na trgu, vendar so lahko drage (hitro iskanje v Googlu vrne izdelke v razponu 100 evrov), krhke in precej klinično videti. Zato sem se odločil, da bom za svoj šolski projekt Arduino naredil svojega. Vsi deli bodo navedeni v naslednjem koraku. Kodo lahko prenesete z moje budilke Github repo sončni vzhod. Začnimo:)

vso kodo najdete na:

1. korak: Zbiranje delov

Zbiranje delov
Zbiranje delov
Zbiranje delov
Zbiranje delov
Zbiranje delov
Zbiranje delov

Za vhod bomo uporabili uro in ultra svetle LED diode za simulacijo sončnega vzhoda.

Za izdelavo vezja potrebujemo:

- Arduino Uno -clockmodule RTC DS3231 - MOSFET za nadzor svetlosti svetlobe - super svetla LED (kupil sem 2, eno toplo, eno hladno) - 9V baterija za napajanje LED - plošča - LCD zaslon (16: 2)- Bluetooth adapter hc-05, tako da lahko z aplikacijo nastavimo alarm.

Vse, kar potrebujete, lahko kupite na www.martoparts.nl

2. korak: Sestavljanje vezja

Sestavljanje vezja
Sestavljanje vezja
Sestavljanje vezja
Sestavljanje vezja

Lahko se sklicujete na skico mojega vezja, na žalost RTC DS3231 v programu nisem našel, zato sem moral opraviti s tem. Povezave so v resnici nekoliko drugačne, tukaj so povezave. (modula bluetooth ni na skici, vendar bom spodaj razložil, kako deluje, ker je precej težavno)

RTC DS3231GND gre na GND na arduinu

VCC gre na 5v

SDA gre v arduino

SCL gre na arduino Ne bomo uporabljali SQW in 32KMOSFET

Vrata za vrata gredo na pin ~ 9 na Arduino Uno, ker je to PWMDrain pin gre na negativno stran LED zatiča Vir gre na GND na ArduinoLCD-DisplayGND gre na GND na arduinu

VCC gre na 5VSDA gre na A4 na arduinoSKL gre na A5 na arduinoLED- gre na mosfet+ gre na baterijo 5v9v 9V baterijo lahko kupite v kateri koli lokalni trgovini, priključite jo v arduino s priključnim trakom.

Modul Bluetooth hc-055V prehaja na 5V iz arduina

GND gre na GND na arduinu

Zdaj sta na voljo še 2 vhoda, toda tu pride težaven del, moramo povezati nasprotne vhode teh 2 na arduinoTX iz hc-05 gre na RX na arduinoRX iz hc-05 gre na TX na arduino

Pomembno: Ko nalagate kodo na svoj arduino, prekinite povezavo TX & RX s HC-05, sicer boste v prevajalniku prejeli napako, ki pravi: "pri nalaganju kode je šlo kaj narobe".

3. korak: Nastavitev LCD zaslona in ure

Nastavitev LCD zaslona in ure
Nastavitev LCD zaslona in ure
Nastavitev LCD zaslona in ure
Nastavitev LCD zaslona in ure

Knjižnica, ki se uporablja za LCD zaslon, je tekoči kristal in jo najdete na: https://github.com/fdebrabander/Arduino-LiquidCrys… Prenesite datoteko zip, jo shranite in postavite v mapo Arduino/knjižnice

Knjižnico, ki jo uporabljam za izvajanje ure, najdete na spletnem mestu Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 in se prepričajte, da ste na strani DS3231. Prenesite datoteko zip, jo shranite in postavite v mapo knjižnic Arduino.

Čas

V kodo arduino vključite knjižnico DS3231 ali DS1307

Odkomentirajte te 3 vrstice kode, da nastavite čas:

// rtc.setDOW (PONEDELJEK); // Dan v tednu nastavimo na NEDELJO // rtc.setTime (23, 57, 0); // Nastavite čas na 12:00:00 (24 -urni format) // rtc.setDate (14, 1, 2019); // Nastavite datum na 1. januar 2014

LCD zaslon

V kodo arduino vključite knjižnico liqduicrystal_i2c

Za tiskanje na LCD zaslonu uporabite

lcd.setCursor (stolpec, vrstica) // položaj natisnjenega besedila lcd.print (~) // natisnjeno besedilo

4. korak: Kodiranje

Kodiranje
Kodiranje

Prenesite kodo na: github:

Če želite nastaviti uro na LCD zaslonu, razkomentirajte te 3 vrstice:

// rtc.setDOW (PONEDELJEK); // Dan za teden nastavimo na NEDELJO // rtc.setTime (23, 57, 0); // Nastavite čas na 12:00:00 (24 -urni format) // rtc.setDate (14, 1, 2019); // Nastavite datum na 1. januar 2014

Uporabite lcd.setCuros (stolpec, vrstica); za nastavitev položaja besedila na zaslonu

lcd.setCursor (0, 2);

in print (), da natisnete nekaj na zaslonu

lcd.print (rtc.getDateStr ());

Če želite, spremenite te spremenljivke

int fadeTime = 1; // Kako dolgo bo svetloba zbledela do maxint setHour = 02; // Nastavitev ur za bujenje (vojaški čas) int setMin = 49; // Nastavitev minute za prebujanje int uled = 9; // Nastavite pinout s PWM

Koda modula Bluetooth

Niz firstHalf = getValue (vnos, ':', 0); // preveri prvi vnos do ":"

Niz secondHalf = getValue (vnos, ':', 1); // preverite drugi vnos za ":"

// uporabite to kodo, če ne uporabljate modula bluetooth

// // if (t.hour == setHour && t.min == setMin) // Preverite, ali je čas, da se zbudite! // {// start (); //}

// preverimo prve 2 -mestne vnose, nato preverimo 2 -mestne vnose

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

// logika za ločevanje nizov

Niz getValue (Podatkovni niz, ločilo znakov, int indeks) {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) == ločilo || i == maxIndex) {najdeno ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i+1: i; }} vrnitev najdena> indeks? data.substring (strIndex [0], strIndex [1]): ""; }

5. korak: Čas za testiranje

Sestavite kodo in preizkusite, ali komponente delujejo!

6. korak: Nastavitev aplikacije Bluetooth

Nastavitev aplikacije Bluetooth
Nastavitev aplikacije Bluetooth
Nastavitev aplikacije Bluetooth
Nastavitev aplikacije Bluetooth
Nastavitev aplikacije Bluetooth
Nastavitev aplikacije Bluetooth

Ker se mi je zdelo neprijetno kopati v kodo vsakič, ko sem hotel nastaviti alarm, sem želel narediti aplikacijo, ki bi nastavila alarm, kar je veliko lažje.

Pojdite na https://ai2.appinventor.mit.edu, kjer lahko naredimo preprosto aplikacijo, ki nam omogoča nastavitev alarma, vključil sem preprosto nastavitev oblikovanja (to lahko vedno prilagodite pozneje) in kodo, ki se uporablja za Bluetooth aplikacijo. Nato lahko objavite svojo aplikacijo in se z njo povežete v telefonu s pomočjo kode QR ali neposredno prenesete aplikacijo v računalnik, nato pa jo prenesete s kablom na telefonu. (posnetek zaslona)

7. korak: Izdelava primera

Gradnja primera
Gradnja primera
Gradnja primera
Gradnja primera
Gradnja primera
Gradnja primera

Okoli arduino ure lahko vedno sestavite drugačen kovček. Za izdelavo lastnega ohišja budilke sem uporabil les in mat pleksi steklo. Izbral sem mat pleksi steklo, tako da lahko vidite svetlobo, ki jasno sije skozi ohišje, vendar ne vidite notranjosti ure.

8. korak: Končano

Dokončano!
Dokončano!
Dokončano!
Dokončano!
Dokončano!
Dokončano!

Zdaj, ko ste kodo naložili v svoj arduino, izdelali ohišje in preverili, ali ste pravilno sestavili uro, lahko v aplikaciji bluetooth nastavite alarm in se začnete prebujati bolj naravno!:)

Priporočena: