Turinys:

Saulėtekio žadintuvas su LCD ekranu ir „Bluetooth“programa: 8 žingsniai
Saulėtekio žadintuvas su LCD ekranu ir „Bluetooth“programa: 8 žingsniai

Video: Saulėtekio žadintuvas su LCD ekranu ir „Bluetooth“programa: 8 žingsniai

Video: Saulėtekio žadintuvas su LCD ekranu ir „Bluetooth“programa: 8 žingsniai
Video: Part 1 - Babbitt Audiobook by Sinclair Lewis (Chs 01-05) 2024, Liepa
Anonim
Saulėtekio žadintuvas su LCD ekranu ir „Bluetooth“programa
Saulėtekio žadintuvas su LCD ekranu ir „Bluetooth“programa
Saulėtekio žadintuvas su LCD ekranu ir „Bluetooth“programa
Saulėtekio žadintuvas su LCD ekranu ir „Bluetooth“programa

Žiema gali būti liūdna. Tu pabundi, tamsu ir turi išlipti iš lovos. Paskutinis dalykas, kurį norite išgirsti, yra erzinantis žadintuvo garsas. Jei jums, kaip ir man, sunku pabusti ryte, šis žadintuvas yra būtent tai, ko jums reikia.

Šioje pamokoje mes sukursime saulėtekio žadintuvą. Tai žadintuvas, kaip ir bet kuris kitas, nes galite nustatyti valandą ir minutę, kurią norite pabusti, bet naudodamiesi šviesa, kad per tam tikrą laikotarpį apšviestumėte savo miegamąjį, kaip saulėtekis, kad pažadintumėte, o ne erzinate švilpukas!

Mes taip pat naudosime „Bluetooth“modulį kurdami programą, kuri leis jums nustatyti žadintuvą telefonu pagal laikrodį. LCD ekrane bus rodomas laikas, data ir savaitės diena. Saulėtekio lempos yra rinkoje, tačiau jos gali būti brangios (greita paieška „Google“pateikia 100 eurų asortimento produktus), trapios ir gana klinikinės išvaizdos. Štai kodėl aš nusprendžiau sukurti savo „Arduino“mokyklos projektą. Visos dalys bus išvardytos kitame žingsnyje. Kodą galima atsisiųsti iš mano „Github“repo saulėtekio žadintuvo. Pradėkime:)

visą kodą galite rasti:

1 žingsnis: Surinkite dalis

Dalių surinkimas
Dalių surinkimas
Dalių surinkimas
Dalių surinkimas
Dalių surinkimas
Dalių surinkimas

Mes naudosime laikrodį kaip įvestį ir itin ryškų šviesos diodą kaip išvestį, kad imituotume saulėtekį.

Norėdami sukurti grandinę, mums reikės:

- „Arduino Uno clockmodule RTC DS3231“- MOSFET, reguliuojantis šviesos ryškumą - itin ryškus šviesos diodas (aš nusipirkau 2, vieną šiltą, vieną šaltą) - 9 V baterija, skirta LED maitinti - duonos lenta - LCD ekranas (16: 2)- „Bluetooth“adapteris hc-05, kad galėtume naudoti programą žadintuvui nustatyti.

Visko, ko jums reikia, galite nusipirkti www.martoparts.nl

2 žingsnis: grandinės surinkimas

Grandinės surinkimas
Grandinės surinkimas
Grandinės surinkimas
Grandinės surinkimas

Galite kreiptis į mano grandinės eskizą, deja, aš negalėjau rasti RTC DS3231 programoje, todėl turėjau tai padaryti. Ryšiai iš tikrųjų šiek tiek skiriasi, čia yra jungtys. („Bluetooth“modulis nėra eskize, bet toliau paaiškinsiu, kaip jis veikia, todėl tai gana sudėtinga)

RTC DS3231GND eina į arnino GND

VCC pereina prie 5v

SDA eina į arduino

SCL eina į arduino. Mes nenaudosime SQW ir 32KMOSFET

Vartų kaištis eina į „Arduino Uno“kaištį ~ 9, nes tai yra PWM. Išleidimo kaištis eina į neigiamą šviesos diodo šaltinio kaiščio pusę ir eina į „Arduino“GND

VCC eina į 5VSDA eina į A4 ant arduinoSKL eina į A5 ant arduinoLED- eina į mosfet+ eina į 5v9v bateriją Galite nusipirkti 9v bateriją bet kurioje vietinėje parduotuvėje, prijunkite prie arduino su jungties juosta.

„Bluetooth“modulis hc-055V pereina prie 5 V iš „arduino“

GND eina į GND ant arduino

Dabar yra dar 2 įėjimai, bet čia yra sudėtinga dalis, mes turime prijungti priešingus tų 2 įėjimus į arduino. TX iš „hc-05“eina į „RX“naudojant „arduino“.

Svarbu: įsitikinkite, kad atjungėte TX ir RX iš HC-05, kai įkeliate kodą į savo arduino, arba kompiliavimo kompiuteryje pasirodys klaida, sakanti „kažkas nepavyko įkeliant kodą“.

3 veiksmas: LCD ekrano ir laikrodžio nustatymas

LCD ekrano ir laikrodžio nustatymas
LCD ekrano ir laikrodžio nustatymas
LCD ekrano ir laikrodžio nustatymas
LCD ekrano ir laikrodžio nustatymas

Skystųjų kristalų ekranui naudojama biblioteka yra skystųjų kristalų, ją galima rasti adresu: https://github.com/fdebrabander/Arduino-LiquidCrys… Atsisiųskite zip failą, išsaugokite jį ir įdėkite į aplanką „Arduino“

Biblioteką, kurią naudoju laikrodžiui paleisti, rasite „Rinky-Dinky Electronics“https://www.rinkydinkelectronics.com/library.php?id=73 ir įsitikinkite, kad esate DS3231 puslapyje. Atsisiųskite ZIP failą, išsaugokite jį ir įdėkite į savo „Arduino“bibliotekų aplanką.

Laikas

Į savo arduino kodą įtraukite biblioteką DS3231 arba DS1307

Norėdami nustatyti laiką, ištrinkite šias 3 kodo eilutes:

// rtc.setDOW (PIRMADIENIS); // Nustatykite savaitės dieną į SUNDAY // rtc.setTime (23, 57, 0); // Nustatykite laiką iki 12:00:00 (24 val. Formatas) // rtc.setDate (14, 1, 2019); // Nustatykite datą į 2014 m. Sausio 1 d

LCD ekranas

Į savo arduino kodą įtraukite biblioteką liqduicrystal_i2c

Norėdami spausdinti naudodami LCD ekraną, naudokite

lcd.setCursor (kolona, eilutė) // atspausdinto teksto padėtis lcd.print (~) // spausdintas tekstas

4 žingsnis: kodavimas

Kodavimas
Kodavimas

Atsisiųskite kodą: github:

Norėdami nustatyti laikrodį savo LCD ekrane, atmeskite šias 3 eilutes:

// rtc.setDOW (PIRMADIENIS); // Nustatykite savaitės dieną į SUNDAY // rtc.setTime (23, 57, 0); // Nustatykite laiką iki 12:00:00 (24 val. Formatas) // rtc.setDate (14, 1, 2019); // Nustatykite datą į 2014 m. Sausio 1 d

Naudokite lcd.setCuros (stulpelis, eilutė); norėdami nustatyti rodomo teksto padėtį

lcd.setCursor (0, 2);

ir spausdinkite (), kad ką nors atspausdintumėte ekrane

lcd.print (rtc.getDateStr ());

Jei norite, pakeiskite šiuos kintamuosius

int fadeTime = 1; // Kiek laiko šviesa išnyks iki maxint setHour = 02; // Nustatykite pabudimo valandas (karinis laikas) int setMin = 49; // Nustatyti pabudimo minutę int uled = 9; // Nustatyti pinout naudojant PWM

„Bluetooth“modulio kodas

Styga firstHalf = getValue (įvestis, ':', 0); // patikrinkite pirmąjį įvestį iki ":"

Eilutė secondHalf = getValue (įvestis, ':', 1); // patikrinkite antrąjį įvestį po ":"

// naudokite šį kodą, jei nenaudojate „Bluetooth“modulio

// // if (t.hour == setHour && t.min == setMin) // Patikrinkite, ar jau laikas pabusti! // {// start (); //}

// patikrinkite pirmuosius 2 skaitmenų įvestis, tada patikrinkite antrus 2 įvesties skaitmenis

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

// logika atskiroms eilutėms

Styga getValue (eilutės duomenys, simbolių separatorius, int indeksas) {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) {rasta ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i+1: i; }} grąžinti rasti> indeksas? data.substring (strIndex [0], strIndex [1]): ""; }

5 žingsnis: laikas išbandyti

Sudarykite savo kodą ir patikrinkite, ar komponentai veikia!

6 veiksmas: „Bluetooth“programos sąranka

„Bluetooth“programos sąranka
„Bluetooth“programos sąranka
„Bluetooth“programos sąranka
„Bluetooth“programos sąranka
„Bluetooth“programos sąranka
„Bluetooth“programos sąranka

Kadangi man buvo erzina kasti kodą kiekvieną kartą, kai norėjau nustatyti žadintuvą, norėjau sukurti programą, kuri nustatytų žadintuvą, o tai yra daug lengviau.

Eikite į https://ai2.appinventor.mit.edu „Bluetooth“ryšį. Tada galite paskelbti savo programą ir prisijungti prie jos naudodami savo telefoną naudodami QR kodą arba tiesiogiai atsisiųsdami programą į savo kompiuterį, tada perkelkite ją savo telefono kabeliu. (ekrano kopija)

7 žingsnis: korpuso kūrimas

Bylos kūrimas
Bylos kūrimas
Bylos kūrimas
Bylos kūrimas
Bylos kūrimas
Bylos kūrimas

Visada galite sukurti kitą dėklą aplink savo arduino laikrodį. Savo medinio žadintuvo dėklo gamybai naudojau medinį ir matinį organinį stiklą. Aš pasirinkau matinį organinį stiklą, kad galėtum matyti, jog pro korpusą aiškiai sklinda šviesa, bet nematai laikrodžio vidinės pusės.

8 žingsnis: baigta

Baigta!
Baigta!
Baigta!
Baigta!
Baigta!
Baigta!

Dabar, kai įkėlėte kodą į savo arduino, sukūrėte dėklą ir patikrinote, ar tinkamai surinkote laikrodį, galite nustatyti žadintuvą „Bluetooth“programoje ir pradėti žadinti natūraliau!:)

Rekomenduojamas: