Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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
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
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
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
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
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
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
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!:)