Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Talvi voi olla surullista. Heräät, on pimeää ja sinun täytyy nousta sängystä. Viimeinen asia, jonka haluat kuulla, on herätyskellosi ärsyttävä ääni. Jos sinulla, kuten minulla, on vaikeuksia herätä aamulla, tämä herätyskello on juuri sitä mitä tarvitset.
Tässä opetusohjelmassa aiomme rakentaa auringonnousun herätyskellon. Se on herätyskello kuten kaikki muutkin, koska voit asettaa herätysajan ja -hetken, mutta sen avulla voit kirkastaa makuuhuoneesi valon avulla tietyn ajanjakson ajan kuin auringonnousu herättää sinut ärsyttävän sijasta summeri!
Luomme myös Bluetooth -moduulin avulla sovelluksen, jonka avulla voit asettaa hälytyksen puhelimen kautta kelloon. Nestekidenäytössä näkyy kellonaika, päivämäärä ja viikonpäivä. Sunrise-lamppuja on markkinoilla, mutta ne voivat olla kalliita (pikahaku Googlesta palauttaa 100 euron valikoiman tuotteita), hauraita ja melko kliinisen näköisiä. Siksi päätin tehdä oman Arduinon kouluprojektilleni. Kaikki osat luetellaan seuraavassa vaiheessa. Koodin voi ladata Github repo sunrise-herätyskellostani. Aloitetaanpa:)
kaikki koodit löytyvät osoitteesta:
Vaihe 1: Osien kokoaminen
Käytämme kelloa tuloissamme ja erittäin kirkas LED-tuotetta simuloimaan auringonnousua.
Piirin rakentamiseksi tarvitsemme:
- Arduino Uno clockmodule RTC DS3231 - MOSFET valon kirkkauden säätämiseen - erittäin kirkas LED (ostin 2, yksi lämmin, yksi kylmä) - 9 V: n akku LED -virtalähteeksi - leipälauta - LCD -näyttö (16: 2)- Bluetooth-sovitin hc-05, jotta voimme asettaa hälytyksen sovelluksen avulla.
Kaikki tarvitsemasi voi ostaa osoitteesta www.martoparts.nl
Vaihe 2: Piirin kokoaminen
Voit viitata piirin luonnokseen, valitettavasti en löytänyt RTC DS3231: tä ohjelmasta, joten minun täytyi tehdä tämä. Liitännät ovat todellisuudessa hieman erilaisia, tässä on liitännät. (bluetooth -moduuli ei ole luonnoksessa, mutta selitän kuinka se toimii alla, koska se on melko hankala)
RTC DS3231GND siirtyy arduinon GND: hen
VCC menee 5v
SDA menee arduinoon
SCL menee arduinoon Emme käytä SQW: tä ja 32KMOSFETia
Porttitappi menee nastaan ~ 9 Arduino Unossa, koska se on PWMDrain-tappi menee LED-lähdetapin negatiiviselle puolelle menee GND: lle ArduinollaLCD-näyttöGND menee GND: lle arduinolla
VCC menee 5VSDA menee A4 arduinoSKL menee A5 arduinoLED- menee mosfet+ menee 5v9v akku Voit ostaa 9v akku mistä tahansa paikallisesta kaupasta, kytke arduino liittimellä.
Bluetooth-moduuli hc-055V menee 5 V: iin Arduino-laitteesta
GND siirtyy GND: hen arduinolla
Nyt on 2 muuta tuloa, mutta tässä on hankala osa, meidän on liitettävä näiden 2 vastakkaiset tulot arduino-TX: ssä hc-05 menee RX: lle arduinoRX: stä hc-05: stä menee TX: lle arduino
Tärkeää: Varmista, että irrotat TX & RX -laitteen HC-05-laitteesta, kun lataat koodia arduinoosi, tai saat virheilmoituksen, jossa sanotaan "jotain meni pieleen koodin lataamisessa" kääntäjässä.
Vaihe 3: LCD -näytön ja kellon asettaminen
Nestekidenäytössä käytettävä kirjasto on nestekide, ja se löytyy osoitteesta: https://github.com/fdebrabander/Arduino-LiquidCrys… Lataa zip-tiedosto, tallenna se ja aseta se Arduinon/libraries-kansioon
Kirjasto, jota käytän kellon käyttämiseen, löytyy osoitteesta Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 ja varmista, että olet DS3231-sivulla. Lataa zip -tiedosto, tallenna se ja aseta se Arduinon kirjastojen kansioon.
Aika
Sisällytä kirjasto DS3231 tai DS1307 arduino -koodiin
Aseta aika poistamalla kommentit näistä 3 koodirivistä:
// rtc.setDOW (MAANANTAI); // Aseta viikonpäiväksi SUNNUNTA // rtc.setTime (23, 57, 0); // Aseta kellonaika 12:00:00 (24 tunnin muoto) // rtc.setDate (14, 1, 2019); // Aseta päivämääräksi 1. tammikuuta 2014
LCD -näyttö
Sisällytä kirjasto liqduicrystal_i2c arduino -koodiin
Tulosta nestekidenäytöllä
lcd.setCursor (sarake, rivi) // tekstin sijainti lcd.print (~) // teksti tulostettu
Vaihe 4: Koodaus
Lataa koodi: github:
Aseta kello nestekidenäytölle poistamalla nämä kolme riviä:
// rtc.setDOW (MAANANTAI); // Aseta viikonpäiväksi SUNNUNTA // rtc.setTime (23, 57, 0); // Aseta kellonaika 12:00:00 (24 tunnin muoto) // rtc.setDate (14, 1, 2019); // Aseta päivämääräksi 1. tammikuuta 2014
Käytä lcd.setCuros (sarake, rivi); asettaaksesi näytön sijainnin näytössä
lcd.setCursor (0, 2);
ja tulosta () tulostaaksesi jotain näytölle
lcd.print (rtc.getDateStr ());
Muuta näitä muuttujia, jos haluat
int fadeTime = 1; // Kuinka kauan valo haalistuu maxint setHour = 02; // Aseta herätysaika (sotilaallinen aika) int setMin = 49; // Aseta minuutti heräämään int uled = 9; // Aseta pinout PWM: llä
Bluetooth -moduulin koodi
Jono firstHalf = getValue (input, ':', 0); // tarkista ensimmäinen tulo, kunnes ":"
Merkkijono secondHalf = getValue (input, ':', 1); // tarkista toinen syöttö ":": n jälkeen
// käytä tätä koodia, jos et käytä bluetooth -moduulia
// // if (t.hour == setHour && t.min == setMin) // Tarkista, onko aika herätä! // { // alkaa(); //}
// tarkista 2 ensimmäisen numeron tulot ja tarkista sitten tulon 2 muuta numeroa
if (t.tunti == ensimmäinenPuoli -alk. () && t.min == toinen }}
// logiikka erillisille merkkijonoille
Merkkijono getValue (merkkijonotiedot, merkkien erotin, int -indeksi) {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) == erotin || i == maxIndex) {löytynyt ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i+1: i; }} palautus löytyi> hakemisto? data.substring (strIndex [0], strIndex [1]): ""; }
Vaihe 5: Aika testata
Kokoa koodi ja testaa, toimivatko komponentit!
Vaihe 6: Bluetooth-sovelluksen käyttöönotto
Koska minusta oli ärsyttävää kaivaa koodi aina, kun halusin asettaa hälytyksen, halusin tehdä sovelluksen, joka asettaa hälytyksen, mikä on paljon helpompaa.
Siirry osoitteeseen https://ai2.appinventor.mit.edu, jossa voimme tehdä yksinkertaisen sovelluksen, jonka avulla voimme asettaa hälytyksen. Olen lisännyt yksinkertaisen suunnittelun (voit aina muokata tätä myöhemmin) ja koodin. Voit sitten julkaista sovelluksesi ja muodostaa yhteyden siihen puhelimellasi käyttämällä QR -koodia tai lataamalla sovelluksen suoraan tietokoneellesi ja siirtämällä sen sitten puhelimen kaapelilla. (kuvakaappaus)
Vaihe 7: Kotelon rakentaminen
Voit aina rakentaa erilaisen kotelon arduino -kellosi ympärille. Rakensin puuta ja mattaplexiglassia oman herätyskellokotelon rakentamiseen. Valitsin mattaplexiglassin, jotta näet valon kirkkaasti kotelon läpi, mutta et näe kellon sisäpuolta.
Vaihe 8: Valmis
Nyt kun olet ladannut koodin arduinoosi, rakentanut kotelon ja tarkistanut, oletko koonnut kellosi oikein, voit asettaa hälytyksen bluetooth -sovellukseen ja aloittaa heräämisen luonnollisemmin!:)