Turinys:

Ryto bičiulis: 8 žingsniai
Ryto bičiulis: 8 žingsniai

Video: Ryto bičiulis: 8 žingsniai

Video: Ryto bičiulis: 8 žingsniai
Video: 8 zingsniai, kurie reikalingi sukurti verslą, nežinant nuo ko pradėti ir neprarandant savo pajamų 2024, Liepa
Anonim
Image
Image

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

Eskizai ir medžiagos
Eskizai ir medžiagos

Kai bandėme išspręsti problemą, sugalvojome žuvies kaulų metodą ir gavome žadintuvą.

2 žingsnis: eskizas ir medžiagos

Eskizai ir medžiagos
Eskizai 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

Išorinio korpuso kūrimas
Išorinio korpuso kūrimas
Išorinio korpuso kūrimas
Išorinio korpuso kū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

Išorinio korpuso pjovimas lazeriu
Išorinio korpuso pjovimas 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

Sujungimas
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

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
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

Finalas
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: