Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Talv võib olla kurb. Ärkad üles, on pime ja pead voodist tõusma. Viimane asi, mida soovite kuulda, on äratuskella tüütu heli. Kui teil, nagu minul, on hommikul ärkamisega probleeme, on see äratuskell just see, mida vajate.
Selles õpetuses ehitame päikesetõusu äratuskella. See on äratuskell nagu iga teine selle poolest, et saate seada ärkamiseks tunde ja minuteid, kuid selle abil saate valguse abil oma magamistoa heledaks aja jooksul nagu päikesetõus, et äratada teid tüütu asemel. sumin!
Samuti kasutame Bluetooth -moodulit rakenduse loomiseks, mis võimaldab teil äratuse telefoni kaudu kellale seada. LCD-ekraanil kuvatakse kellaaeg, kuupäev ja nädalapäev. Päikesetõusu lambid on turul olemas, kuid need võivad olla kallid (kiire otsing Google'is tagastab 100-euroseid tooteid), habras ja üsna kliinilise välimusega. Sellepärast otsustasin teha oma Arduino kooliprojekti jaoks oma. Kõik osad loetletakse järgmises etapis. Koodi saab alla laadida minu Githubi repo päikesetõusu-äratuskellast. Alustagem:)
kogu koodi leiate aadressilt:
Samm: osade kogumine
Päikesetõusu simuleerimiseks kasutame sisendina kella ja väljundina ülitugevat LED-i.
Vooluringi ehitamiseks vajame:
- Arduino unokella moodul RTC DS3231 - MOSFET valguse heleduse juhtimiseks - ülitugev LED (ostsin 2, üks soe, üks külm) - 9V aku LED -i toiteks - leivaplaat - LCD -ekraan (16: 2)- Bluetooth-adapter hc-05, et saaksime äratuse seadmiseks rakendust kasutada.
Kõik vajaliku saab osta saidilt www.martoparts.nl
Samm: vooluringi kokkupanek
Võite viidata minu vooluringi visandile, kahjuks ei leidnud ma programmist RTC DS3231, nii et pidin sellega hakkama saama. Ühendused on tegelikkuses natuke erinevad, siin on ühendused. (bluetooth -moodul pole visandis, kuid selgitan allpool, kuidas see töötab, põhjustades selle üsna keerulise)
RTC DS3231GND läheb arduino GND -le
VCC läheb 5v peale
SDA läheb arduinole
SCL läheb arduino me ei kasuta SQW ja 32KMOSFET
Värava tihvt läheb Arduino Uno nööpnõelale ~ 9, kuna see on PWMDrain-tihvt läheb LED-i allika tihvti negatiivsele poolele Arduino GND-le LCD-ekraan GND läheb arduino GND-le
VCC läheb 5VSDA-le läheb A4 arduinoSKL-il läheb arduinoLED-ile A5- läheb mosfet+ läheb 5v9v akule. 9-voldise aku saate osta igas kohalikus poes, ühendage pistikuribaga arduino.
Bluetooth-moodul hc-055V läheb arduino 5V-le
GND läheb arduino kaudu GND -le
Nüüd on veel 2 sisendit, kuid siin on keeruline osa, me peame ühendama nende 2 vastupidised sisendid arduino-s. TX alates hc-05 läheb RX-i arduino-le RX alates hc-05 läheb TX-le arduino
Tähtis: veenduge, et lahutate TX & RX-i HC-05-st, kui laadite oma arduino-le koodi üles, vastasel juhul saate vea, mis ütleb kompilaatoris, et "koodi üleslaadimisel läks midagi valesti".
3. samm: LCD -ekraani ja kella seadistamine
LCD-ekraani jaoks kasutatav raamatukogu on vedelkristall ja selle leiate aadressilt: https://github.com/fdebrabander/Arduino-LiquidCrys… Laadige alla zip-fail, salvestage see ja asetage see kausta Arduino/libraries
Teeki, mida ma kella käitamiseks kasutan, leiate aadressilt Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 ja veenduge, et olete DS3231 lehel. Laadige alla zip -fail, salvestage see ja asetage see oma Arduino raamatukogude kausta.
Aeg
Kaasake raamatukogu DS3231 või DS1307 oma arduino koodi
Kellaaja määramiseks tühistage need kolm koodirida:
// rtc.setDOW (ESMASPÄEV); // Määra nädalapäevaks SUNDAY // rtc.setTime (23, 57, 0); // Määra kellaajaks 12:00:00 (24h formaat) // rtc.setDate (14, 1, 2019); // Määra kuupäevaks 1. jaanuar 2014
LCD ekraan
Kaasake raamatukogu liqduicrystal_i2c oma arduino koodi
LCD -ekraanile printimiseks kasutage
lcd.setCursor (veerg, rida) // trükitud teksti asukoht lcd.print (~) // trükitud tekst
4. samm: kodeerimine
Laadige kood alla saidilt: github:
LCD -ekraanil kella seadmiseks tühistage need kolm rida:
// rtc.setDOW (ESMASPÄEV); // Määra nädalapäevaks SUNDAY // rtc.setTime (23, 57, 0); // Määra kellaajaks 12:00:00 (24h formaat) // rtc.setDate (14, 1, 2019); // Määra kuupäevaks 1. jaanuar 2014
Kasuta lcd.setCuros (col, rida); et kuvada teksti asukoht
lcd.setCursor (0, 2);
ja prindi (), et ekraanile midagi printida
lcd.print (rtc.getDateStr ());
Soovi korral muutke neid muutujaid
int fadeTime = 1; // Kui kaua valgus kustub maxint setHour = 02; // Määra äratustunnid (sõjaväeline aeg) int setMin = 49; // Määra äratamise minut int uled = 9; // Määra pinout PWM -iga
Bluetooth -mooduli kood
String firstHalf = getValue (sisend, ':', 0); // kontrollige esimest sisendit kuni ":"
String secondHalf = getValue (sisend, ':', 1); // kontrollige teist sisendit pärast ":"
// kasutage seda koodi, kui te ei kasuta bluetooth moodulit
// // if (t.hour == setHour && t.min == setMin) // Kontrollige, kas on aeg ärgata! // {// algus (); //}
// kontrollige esimest 2 -kohalist sisendit, seejärel kontrollige sisendi teist 2 -kohalist numbrit
if (t.tund == esimene pool | toInt () && t.min == sekund }}
// loogika stringide eraldamiseks
String getValue (Stringiandmed, sümbol eraldaja, int indeks) {int leitud = 0; int strIndex = {0, -1}; int maxIndex = andmed.pikkus () - 1;
jaoks (int i = 0; i <= maxIndex && leitud <= indeks; i ++) {if (data.charAt (i) == eraldaja || i == maxIndex) {leitud ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i+1: i; }} tagastamine leitud> indeks? data.substring (strIndex [0], strIndex [1]): ""; }
Samm: testimise aeg
Koostage oma kood ja testige, kas komponendid töötavad!
6. toiming: Bluetoothi rakenduse seadistamine
Kuna mulle tundus tüütu süveneda koodi sisse iga kord, kui soovisin äratust seada, tahtsin teha äratuse seadmiseks rakenduse, mis on palju lihtsam.
Minge aadressile https://ai2.appinventor.mit.edu Bluetooth -ühendus. Seejärel saate oma rakenduse avaldada ja sellega oma telefoniga ühenduse luua, kasutades QR -koodi või laadides rakenduse otse arvutisse alla, seejärel teisaldades selle telefoni kaabli abil. (ekraanipilt)
7. samm: korpuse ehitamine
Saate alati oma arduino kella ümber ehitada erineva ümbrise. Kasutasin oma äratuskellaümbrise ehitamiseks puitu ja matt pleksiklaasi. Valisin matt pleksiklaasi, nii et näete korpuse kaudu selgelt paistvat valgust, kuid te ei näe kella sisemust.
8. samm: lõpetatud
Nüüd, kui olete koodi oma arduinole üles laadinud, korpuse üles ehitanud ja kontrollinud, kas olete oma kella õigesti kokku pannud, saate bluetooth -rakenduses äratuse seada ja loomulikumalt ärgata!:)