Tartalomjegyzék:
- 1. lépés: Az ötlet ötletelése
- 2. lépés: Vázlatkészítés és anyagok
- 3. lépés: A külső burkolat létrehozása
- 4. lépés: A külső burkolat lézeres vágása
- 5. lépés: Összeállítás
- 6. lépés: Kód
- 7. lépés: Elektronika
- 8. lépés: döntő
Videó: Reggeli haver: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Vannak, akiknek nagyon sűrű a menetrendjük, ami miatt könnyen elfelejthetünk egy -két dolgot. Ezzel az ébresztőórával több ébresztést is beállíthat, hogy tartsa az ütemtervet. Az óra 24-szer működik, és mindössze annyit kell tennie, hogy beprogramozza, hogy a nap különböző időpontjaiban induljon el. Amikor ezt megteszi, a beállított időpontok megjelennek az LCD -képernyőn, így ellenőrizheti, hogy helyesek -e, és extra emlékeztetőként szolgálnak -e.
1. lépés: Az ötlet ötletelése
Amikor megpróbáltuk megoldani a problémát, a halcsont -módszerrel ötleteltünk, és megkaptuk az ébresztőórát.
2. lépés: Vázlatkészítés és anyagok
E lépés során megpróbáltunk listát készíteni mindarról, amiről úgy gondoltuk, hogy szükségünk lesz az elektronikára és a külső burkolatra. Aztán vázlatot készítettünk arról, hogy milyennek szeretnénk az ébresztőórát, és hogyan szereljük össze a külső burkolatát.
3. lépés: A külső burkolat létrehozása
Az első prototípusnál csak látni akartam, hogyan illeszkednek össze az ujjízületek, ezért cipősdobozt használtam, és nem használtam pontos méréseket.
4. lépés: A külső burkolat lézeres vágása
A második prototípushoz pontos méréseket akartam kérni, és létre kellett hoznom egy pdf -t, amelyet elküldhetek a lézervágónak. Ehhez egy dobozkészítő alkalmazás webhelyét használtam, https://boxdesigner.connectionlab.org. Ezen a weboldalon megadtam a doboz 3-D méretét, anyagunk vastagságát, mértékegységeit és azt, hogy milyen típusú fájlt szeretnék létrehozni. A dobozok mérete 7,5 x 3 x 5 hüvelyk volt, és 1/8 vastag akril anyagot használtam. Az ujjízületi bemetszések méréseit ezután automatikusan 0,46875 hüvelykre állították be. Azért választottam a pdf verziót, mert ez az a fájltípus, amelyet a lézervágó olvas, és néhány változtatást akartam végrehajtani a fájlban. A vonal színeit vörösre változtattam, hogy a lézervágó tudja, hogy kivágja őket, ahelyett, hogy az alakot gravírozná, és hozzáadtam egy téglalap alakú dobozt, amelynek mérete 3,92 x 1,56 hüvelyk volt, ami a készülék elülső darabja lesz. doboz. Hozzáadtam egy téglalapot is, amelynek mérete 1 hüvelyk és 0,5 hüvelyk volt a jobb oldali alján, hogy nyílásként szolgáljon az ébresztőórához csatlakoztatott vezetékhez. Végül három kör alakú nyílást adtam hozzá a két zümmögő és a gomb tetejéhez. A zümmögőnyílások átmérője 0,5 hüvelyk, a gombnyílás pedig 0,375 hüvelyk.
5. lépés: Összeállítás
Amikor az összes darabot kivágták, fecskendővel és akril ragasztóval lezártam. Összefogtam a darabokat és csepegtettem a ragasztót a bevágások közé, hogy összeálljanak az oldalak, de a tetejét nem ragasztották le.
6. lépés: Kód
Bevezetés:
Ezt a projektet az Arduino IDE szoftver c ++ nyelvével kódolták. Az alkalmazott mikrovezérlő a NodeMCU volt az ESP8266-mal. Ehhez a projekthez szükségünk lenne egy módra az idő pontos tartására, egy hangjelző hangjelzésére, egy riasztórendszerre, amely a riasztást megszólalná, és egy képernyőre, amely megjeleníti az összes időt és a riasztási időket. A teljes kódot ezen a linken találja:
Könyvtárak importálása
Először is importálnunk kell a szükséges könyvtárakat.
#include "RTClib.h"
#include "Wire.h" #include #include #include #include
Változók kezdeményezése
Ezután be kell állítanunk a változókat a későbbiekhez, hozzá kell rendelnünk a zümmögő gombok tűelrendezését, be kell állítanunk az RTC -t, és be kell állítanunk az LCD kijelző I2C címét.
LiquidCrystal_I2C LCD (0x27, 20, 4);
const int zümmögő1 = 12; const int zümmögő2 = 0; const int gomb = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"} int starttime; int activetime; int prevoustime = 0; char ahours1 [3]; char amins1 [3]; int óra1 = 0; int min1 = 0; char ahours2 [3]; char amins2 [3]; int óra2 = 0; int min2 = 0; char ahours3 [3]; char amins3 [3]; int óra3 = 0; int min3 = 0; int riasztás = 0; int ByteReceived; char megkaptaChar; const byte numChars = 32; char kapottChars [számChars];
Beállít
Ezután rendelkeznünk kell egy olyan funkcióval, amely elindítja az összes szükséges folyamatot. Ennél a funkciónál el kell indítanunk az LCD -t, és ki kell nyomtatnunk a kezdeti időket, el kell végeznünk egy kisebb funkciót, amely valós idejű RTC -t ad, ha még nem rendelkezik vele, és be kell indítanunk a soros monitort.
void setup () {
#ifndef ESP8266 while (! Sorozat); #endif if (! rtc.begin ()) {Serial.println ("Nem található RTC"); míg (1); } if (rtc.lostPower ()) {Serial.println ("Az RTC elvesztette az áramot, állítsuk be az időt!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))} lcd.init (); lcd.backlight (); // bekapcsolja a Baklightot. lcd.clear (); // Törli az LCD lcd.print -et ("00:00"); // megjelenítés LCD -n a kód feltöltése után lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print ("Idő"); lcd.setCursor (10, 1); lcd.print ("1. riasztás"); lcd.setCursor (0, 3); lcd.print ("2. riasztás"); lcd.setCursor (0, 2); lcd.print ("00:00"); lcd.setCursor (10, 3); lcd.print ("3. riasztás"); lcd.setCursor (10, 2); lcd.print ("00:00"); rtc.begin (); pinMode (gomb, INPUT); // PIN -kód beállítása a némagombhoz pinMode (zümmögő1, OUTPUT); // beállít egy tűt a zümmögő kimenetéhez pinMode (zümmögő2, OUTPUT); // beállít egy tűt a zümmögő kimenethez Serial.begin (9600); Serial.println ("Riasztások beviteli ideje HHMM formátumban, szóközök nélkül"); starttime = millis ()/1000; }
Adatok fogadása
Most meg kell tudnunk fogadni a riasztási időket. Ehhez létrehoztunk egy függvényt, amely megkapja az adatokat a soros monitorról, és tömbben tárolja.
void recvWithEndMarker () {
statikus int ndx = 0; Karakterlánc timein = Serial.readString (); for (ndx = 0; timein [ndx]; ndx ++) {gavoChars [ndx] = timein [ndx]; } ReceiveChars [ndx] = '\ 0'; Serial.print (ReceiveChars); }
Riasztások beállítása
A következő lépés a riasztások beállítása. Itt található az 1. riasztás kódja. A 2. és 3. riasztáshoz ugyanaz a folyamat megismétlődött néhány számváltoztatással.
/* 1. riasztás*/
recvWithEndMarker (); int h, m; for (h = 0; h <2; h ++) {ahours1 [h] = kapottChars [h]; } for (m = 2; m <4; m ++) {amins1 [m-2] = kapottChars [m]; } óra1 [h] = '\ 0'; amin1 [m-2] = '\ 0'; Soros.nyomtatás (órák1); Serial.print (amins1); óra1 = atoi (óra1); min1 = atoi (amin1); Soros.nyomtatás (óra1); Soros.nyomtatás (min1);
Zümmögő/gomb
Ha ez megtörtént, akkor a hangjelzést akkor kell kikapcsolnunk, amikor a valós és a riasztási idő megegyezik. Ebben a lépésben is létrehozunk egy szundi gombot, amely leállítja a csengőt, miközben lenyomva tartja.
/ * Csend gomb */
int csend; int b; b = digitalRead (2); ha (b == LOW) {csend = 1; } else {csend = 0; } / * Indítási riasztás * / if (óra == óra1 && perc == perc1) {riasztás = 1; } else if (óra == óra2 &&perc == min2) {riasztás = 1; } else if (óra == óra3 &&perc == min3) {riasztás = 1; } else {riasztás = 0; csend = 0; } if (riasztás == 1 && csend == 0) {hang (zümmögő1, 4000, 1000); hangjelzés (zümmögő2, 4000, 1000); késleltetés (1000); noTone (zümmögő1); noTone (zümmögő2); késleltetés (1000); }
Nyomtatási idők
Végül ki kell nyomtatnunk a riasztási időket és a valós idejű időt az LCD képernyőre.
DateTime now = rtc.now ();
int óra = (most.óra ()); int mins = (most.perc ()); / * Riasztási idő 00:00 formátumban */ lcd.setCursor (10, 0); lcd.print (órák1); lcd.setCursor (13, 0); lcd.print (amins1); lcd.setCursor (0, 2); lcd.print (ahours2); lcd.setCursor (3, 2); lcd.print (amins2); lcd.setCursor (10, 2); lcd.print (ahours3); lcd.setCursor (13, 2); lcd.print (amins3); / * Megjelenítési idő az RTC -ből */ lcd.setCursor (0, 0); lcd.print (óra); lcd.print (":"); lcd.print (perc);
7. lépés: Elektronika
Ennek a projektnek az elektronikájában több darab is található, amint az az anyaglistában is látható. Az első kép a projekt végső elektronikájának vázlata. A második kép a végső elektronikus tervezésünk. A harmadik kép a projektünkről készült, a második prototípus közepén.
Kezdésként csatlakoztassa a NodeMCU -t a kenyeretábla túlsó végéhez. Ezután csatlakoztatnia kell az összes többi elektronikát a NodeMCU -hoz és a kenyértáblához. Először csatlakoztassa az LCD -képernyőt a SC1 D1 és SDA SD2 tűkhöz. Az LCD segítségével a felhasználó láthatja az aktuális időt és a beállított ébresztési időket. Most egy vezetékkel csatlakoztassa a zümmögőket a D3 és D6 csapokhoz. A hangjelzők lehetővé teszik, hogy a riasztó figyelmeztesse a felhasználót a beállított idő elérésekor. Most csatlakoztatnia kell egy gombot a riasztás leállításához. Csatlakoztassa ezt a gombot a D4 tűhöz. Most rögzíti a valós idejű óráját a kenyértáblához. Csatlakoztassa a valós idejű órát úgy, hogy ugyanazokat az SDA és SCL érintkezőket használja, mint az LCD kijelző.
8. lépés: döntő
Ha követte a megadott információkat, a projekt úgy nézhet ki, mint a fenti képen. Sok sikert kívánunk a projekt újrateremtéséhez, és miután befejezte a projektet, javasoljuk, hogy ossza meg velünk képeket és megjegyzéseket megjegyzésekben. Köszönöm és sok sikert készítőtársaimnak.
Ajánlott:
Az arcmosás reggeli rutinja (gyerekeknek): 7 lépés
Arcmosás reggeli rutin (gyerekeknek): A hétvégén az unokatestvérem a házunkban maradt, mivel a szülei nem voltak otthon, miután két napig együtt lakott vele, észrevettem, hogy egy kicsit nehezen emlékszik minden egyes mosási lépésre az arca, miután felébredt. Ezért úgy döntöttem, hogy felépítem őt
Napkelte ébresztőóra (javítja a reggeli éberséget): 13 lépés
Napkelte ébresztőóra (javítsa a reggeli éberséget): ütemezze be saját napfelkeltét, javítsa a reggeli ébrenlétet Legújabb véletlenszerű találmány, ütemezze fel saját napfelkeltét! Napközben a kék fény a napfényben fokozza figyelmünket, memóriánkat, energiaszintünket, reakcióidejünket és általános hangulatunkat . A kék fény
Reggeli és éjszakai fény: 4 lépés
Reggeli és éjszakai fény: Ez egy saját készítésű papírlámpa, amelyet reggel és este használnak
Arduino kenyértábla haver: 12 lépés
Arduino Bread Board Buddy: Minden áramkört egy kenyértáblára építek; azonban ugyanazt az áramkört százszor felépíteni monoton lehet, ezért szeretem a moduláris alkatrészeket prototípusok építéséhez. A legtöbb áramkör, mint például az 5 voltos tápegység, meglehetősen szabványos. Az Arduino kenyértábla Budd
Beszélő UV-index mérőeszköz, a VEML6075 érzékelő és a kis haver beszélő használatával: 5 lépés
Beszélő UV-index mérőeszköz, a VEML6075 érzékelő és a kis haver beszélő segítségével: Nyár jön! Süt a nap! Ez nagyszerű. De ahogy az ultraibolya (UV) sugárzás egyre intenzívebbé válik, a hozzám hasonló szeplők, kis barna szigetek úsznak a vörös, leégett, viszkető bőr tengerében. Valós idejű információhoz juthat