Turinys:
- 1 žingsnis: idėjos šturmas
- 2 žingsnis: eskizas ir medžiagos
- 3 žingsnis: išorinio korpuso sukūrimas
- 4 žingsnis: išorinio korpuso pjaustymas lazeriu
- 5 žingsnis: sujungimas
- 6 žingsnis: kodas
- 7 žingsnis: Elektronika
- 8 žingsnis: finalas
Video: Ryto bičiulis: 8 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Kai kurie žmonės turi labai užimtą tvarkaraštį, todėl lengva pamiršti vieną ar du dalykus. Naudodami šį žadintuvą galite nustatyti kelis žadintuvus, kad būtų laikomasi tvarkaraščio. Laikrodis veikia 24 valandas ir viskas, ką jums reikia padaryti, tai suprogramuoti, kad jis išsijungtų skirtingu paros metu. Kai tai darysite, LCD ekrane pasirodys nustatytas laikas, kad galėtumėte patikrinti, ar jie teisingi, ir būti papildomas priminimas.
1 žingsnis: idėjos šturmas
Kai bandėme išspręsti problemą, sugalvojome žuvies kaulų metodą ir gavome žadintuvą.
2 žingsnis: eskizas ir medžiagos
Šio žingsnio metu mes bandėme sudaryti sąrašą visų dalykų, kurie, mūsų manymu, bus reikalingi elektronikai ir išoriniam korpusui. Tada mes sugalvojome eskizą, kaip norime, kad žadintuvas atrodytų ir kaip surinksime jo išorinį korpusą.
3 žingsnis: išorinio korpuso sukūrimas
Pirmam prototipui tiesiog norėjau pamatyti, kaip pirštų sąnariai derės tarpusavyje, todėl naudojau batų dėžutę ir nenaudojau tikslių matavimų.
4 žingsnis: išorinio korpuso pjaustymas lazeriu
Antram prototipui norėjau gauti tikslius matavimus ir turėjau sukurti pdf failą, kurį nusiųsti lazeriniam pjaustytuvui. Norėdami tai padaryti, naudoju dėžutės kūrimo programos svetainę https://boxdesigner.connectionlab.org. Toje svetainėje aš įvedžiau 3-D dėžutės matmenis, mūsų medžiagos storį, matavimo vienetus ir kokio tipo failą norėjau sukurti. Dėžutės matmenys buvo 7,5 x 3 x 5 coliai, o aš naudoju 1/8 storos akrilo medžiagos. Tada pirštų sąnarių įpjovų matavimai buvo automatiškai sukonfigūruoti kaip 0,46875 colio. Pasirinkau pdf versiją, nes tai yra failo tipas, kurį skaito lazerinis pjaustytuvas, ir norėjau šiek tiek pakeisti „Adobe“failą. Aš pakeičiau linijos spalvas į raudoną, kad lazerinis pjoviklis žinotų, kaip jas iškirpti, o ne graviruoti formą, ir pridėjau stačiakampę dėžutę, kurios matmenys buvo 3,92 x 1,56 colio, o tai bus priekinė dalis. dėžė. Aš taip pat pridėjau stačiakampį, iškirptą 1 colio ir 0,5 colio įstrižainės dešinėje šoninėje dalyje apačioje, kad jis būtų kaip žadintuvo prijungto laido anga. Paskutinį kartą viršuje pridėjau tris apskritas angas dviem garsiniams signalams ir mygtukui. Garso signalo angų skersmuo buvo 0,5 colio, o mygtuko anga - 0,375 colio.
5 žingsnis: sujungimas
Kai visi gabalai buvo išpjauti, aš uždėjau švirkštą ir akrilo klijus. Aš laikiau gabalus ir lašinau klijus tarp įpjovų, kad šonai būtų sujungti, bet viršus nebuvo priklijuotas žemyn.
6 žingsnis: kodas
Įvadas:
Šis projektas buvo užkoduotas naudojant kalbą c ++ „Arduino IDE“programinėje įrangoje. Naudotas mikrovaldiklis buvo „NodeMCU“su ESP8266. Šiam projektui mums reikia būdo, kaip tiksliai išlaikyti laiką, skambėti signalizatoriumi, signalizacijos sistemai, kuri sukels aliarmą, ir ekranui, rodančiam visą laiką ir aliarmo laikus. Visą kodą rasite šioje nuorodoje
Bibliotekų importavimas
Pirmiausia reikia importuoti reikiamas bibliotekas.
#include "RTClib.h"
#įtraukti „Wire.h“#įtraukti #įtraukti #įtraukti #įtraukti
Kintamųjų inicijavimas
Toliau turime inicijuoti kintamuosius vėlesniam laikui, priskirti garsinių signalų mygtukų išdėstymą, nustatyti RTC ir nustatyti LCD ekrano I2C adresą.
LiquidCrystal_I2C LCD (0x27, 20, 4);
const int garsinis signalas1 = 12; const int garsinis signalas2 = 0; const int mygtukas = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"} int starttime; int aktyvetime; int prevoustime = 0; char ahours1 [3]; char amins1 [3]; int valanda1 = 0; int min1 = 0; char ahours2 [3]; char amins2 [3]; int valanda2 = 0; int min2 = 0; char ahours3 [3]; char amins3 [3]; int valanda3 = 0; int min3 = 0; int aliarmas = 0; int ByteReceived; char gautasChar; const baitas numChars = 32; char gavoChars [numChars];
Sąranka
Toliau turime turėti funkciją, kuri paleidžia visus būtinus procesus. Naudodami šią funkciją turime paleisti skystųjų kristalų ekraną ir atspausdinti pradinį laiką, sukurti mažesnę funkciją, kuri RTC suteikia realų laiką, jei ji dar neturi, ir paleisti serijinį monitorių.
void setup () {
#ifndef ESP8266 while (! Serial); #endif if (! rtc.begin ()) {Serial.println ("Nepavyko rasti RTC"); tuo tarpu (1); } if (rtc.lostPower ()) {Serial.println ("RTC dingo energija, leidžia nustatyti laiką!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))} lcd.init (); lcd.backlight (); // įjungia „Baklight“. lcd.clear (); // Išvalo LCD lcd.print ("00:00"); // rodyti LCD ekrane po kodo įkėlimo lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print („Laikas“); lcd.setCursor (10, 1); lcd.print („1 pavojaus signalas“); lcd.setCursor (0, 3); lcd.print („2 pavojaus signalas“); lcd.setCursor (0, 2); lcd.print ("00:00"); lcd.setCursor (10, 3); lcd.print („3 pavojaus signalas“); lcd.setCursor (10, 2); lcd.print ("00:00"); rtc.begin (); pinMode (mygtukas, INPUT); // Nustatykite tylos mygtuko smeigtuką pinMode (buzzer1, OUTPUT); // nustatyti kaištį garsinio signalo išėjimui pinMode (buzzer2, OUTPUT); // nustatyti kaištį garsinio signalo išėjimui Serial.begin (9600); Serial.println ("Pavojaus signalų įvesties laikas HHMM formatu, be tarpo tarp aliarmų"); pradžios laikas = milis ()/1000; }
Duomenų priėmimas
Dabar turime sugebėti gauti žadintuvo laiką. Norėdami tai padaryti, sukūrėme funkciją, skirtą duomenims iš serijinio monitoriaus gauti ir išsaugoti masyve.
void recvWithEndMarker () {
statinis int ndx = 0; Styga timein = Serial.readString (); už (ndx = 0; timein [ndx]; ndx ++) {gavoChars [ndx] = timein [ndx]; } gavoChars [ndx] = '\ 0'; Serial.print (gavoChars); }
Signalų nustatymas
Kitas žingsnis - nustatyti žadintuvus. Čia yra 1 pavojaus signalo kodas. 2 ir 3 pavojaus signalui tas pats procesas buvo kartojamas keletą kartų pakeitus numerį.
/* 1 signalas*/
recvWithEndMarker (); int h, m; (h = 0; h <2; h ++) {ahours1 [h] = gavoChars [h]; } už (m = 2; m <4; m ++) {amins1 [m-2] = gautaChars [m]; } valandos1 [h] = '\ 0'; amins1 [m-2] = '\ 0'; Serial.print (ahours1); Serial.print (amins1); valanda1 = atoi (valandos1); min1 = atoi (amins1); Serijinis atspaudas (1 valanda); Serijinis atspaudas (min1);
Garsinis signalas/mygtukas
Tai padarę, mes turime išjungti garsinį signalą, kai realusis ir aliarmo laikas yra vienodi. Taip pat šiame žingsnyje mes atliekame snaudimo tipo mygtuką, kuris sustabdo signalą, kol jį laikote.
/ * Tylėjimo mygtukas */
int tyla; int b; b = digitalRead (2); if (b == LOW) {tyla = 1; } else {tyla = 0; } / * Paleidimo signalas * / if (valandos == valanda1 && min. == min1) {aliarmas = 1; } else if (valandos == valanda2 && minutės == min2) {aliarmas = 1; } else if (valandos == valanda3 && min = = min3) {aliarmas = 1; } else {signal = 0; tyla = 0; } if (signalizacija == 1 && tyla == 0) {tonas (garsinis signalas1, 4000, 1000); tonas (garsinis signalas2, 4000, 1000); vėlavimas (1000); noTone (garsinis signalas1); noTone (garsinis signalas2); vėlavimas (1000); }
Spausdinimo laikas
Galiausiai, LCD ekrane turime atspausdinti žadintuvo laiką ir realiu laiku.
DateTime dabar = rtc.now ();
int valandos = (dabar.valanda ()); int mins = (dabar.minute ()); / * Žadintuvo laikas 00:00 formatu */ lcd.setCursor (10, 0); lcd.print (ahours1); 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); / * Rodymo laikas iš RTC */ lcd.setCursor (0, 0); lcd.print (valandos); lcd.print (":"); lcd.print (min.);
7 žingsnis: Elektronika
Šio projekto elektronikoje yra daug dalių, kaip matyti iš medžiagų sąrašo. Pirmasis vaizdas yra projekto galutinės elektronikos schema. Antrasis vaizdas yra mūsų galutinis elektroninis dizainas. Trečiasis mūsų projekto vaizdas yra antrojo prototipo viduryje.
Norėdami pradėti, pritvirtinkite „NodeMCU“prie tolimiausio savo lentos galo. Tada turėsite prijungti visą kitą elektroniką prie „NodeMCU“ir duonos lentos. Pradėkite prijungdami LCD ekraną prie kaiščių D1 SCL ir D2 SDA. Skystųjų kristalų ekranas leis vartotojui matyti esamą laiką ir nustatytą žadintuvo laiką. Dabar su viela prijunkite signalus prie kaiščių D3 ir D6. Garsiniai signalai leis signalui įspėti vartotoją, kai pasibaigs nustatytas laikas. Dabar turite pridėti mygtuką, kad būtų galima sustabdyti aliarmą. Pritvirtinkite šį mygtuką prie kaiščio D4. Dabar prie duonos lentos pritvirtinsite savo realaus laiko laikrodį. Prijunkite laikrodį realiuoju laiku, kad jis naudotų tuos pačius SDA ir SCL kaiščius, naudojamus skystųjų kristalų ekrane.
8 žingsnis: finalas
Jei sekėte pateiktą informaciją, jūsų projektas gali atrodyti kaip aukščiau pateiktas vaizdas. Linkime sėkmės bandant atkurti šį projektą ir, kai baigsite savo projektą, raginame pasidalinti nuotraukomis ir pastabomis su mumis komentaruose. Ačiū ir sėkmės kolegoms kūrėjams.
Rekomenduojamas:
Inžinierių bičiulis „Bluetooth Kbd“ir pelė: 3 žingsniai
Inžinierių bičiulis „Bluetooth Kbd“ir pelė: „Engineers Buddy“USB klaviatūros ir pelės emuliatoriaus modulis. Šis patogus mažas įrenginys, turintis mėlynų dantų jungtį, paverčia jūsų „Android“telefoną/planšetinį kompiuterį bet kurio kompiuterio belaidžiu nuotolinio valdymo pultu. Tai suteikia jūsų „Android“įrenginiui galimybę valdyti visus HID kompiuterius
Saulėtekio žadintuvas (pagerinti ryto budrumą): 13 žingsnių
Saulėtekio žadintuvas (pagerinti ryto budrumą): suplanuokite savo asmeninį saulėtekį, pagerina ryto pabudimą Paskutinis atsitiktinis išradimas, suplanuokite savo saulėtekį! Dienos metu mėlyna saulės šviesa padidina mūsų dėmesį, atmintį, energijos lygį, reakcijos laiką ir bendrą nuotaiką . Mėlyna šviesa
Ryto ir nakties šviesa: 4 žingsniai
Ryto ir nakties šviesa: Tai yra paties pagaminta popierinė lemputė, naudojama ryte ir vakare
Barmeno bičiulis: @ Home Creative Switch: 6 žingsniai
Barmeno bičiulis: „ @ Home Creative Switch“: ar kada nors pagalvojote, linksmindamas svečius namuose … " Gee - norėčiau, kad turėčiau unikalų būdą parodyti savo svečiui, kai jų gėrimas pasiekė optimalų vakarėlio puodelio gėrimo lygį. .. " ? Dabar galite įgyvendinti šį norą, kai
Ryto mašina: 5 žingsniai (su nuotraukomis)
„Ryto mašina“: ar kada nors pabudote ryte nuo jūsų erzinančio žadintuvo, o paskui nuėjote iki virtuvės, norėdami išgerti gėrimo. Na, neieškokite toliau! Ši pamoka išmokys jus padaryti mašiną, kuri negali