Satura rādītājs:

Rīta draugs: 8 soļi
Rīta draugs: 8 soļi

Video: Rīta draugs: 8 soļi

Video: Rīta draugs: 8 soļi
Video: Golden Earring - Radar Love (Official Music Video [HD]) 2024, Jūlijs
Anonim
Image
Image

Dažiem cilvēkiem ir ļoti aizņemts grafiks, kas ļauj viegli aizmirst vienu vai divas lietas. Izmantojot šo modinātāju, varat iestatīt vairākus modinātājus, lai saglabātu jūsu grafiku. Pulkstenis darbojas visu diennakti, un viss, kas jums jādara, ir ieprogrammēt tā izslēgšanu dažādos dienas laikos, kas atbilst jūsu grafikam. To darot, LCD ekrānā parādīsies iestatītie laiki, lai jūs varētu pārbaudīt, vai tie ir pareizi, un kalpot kā papildu atgādinājums.

1. solis: idejas prāta vētra

Skices un materiāli
Skices un materiāli

Kad mēs mēģinājām atrisināt problēmu, mēs izmantojām zivju kaula metodi, lai radītu ideju, un mēs radījām modinātāju.

2. darbība: skicēšana un materiāli

Skices un materiāli
Skices un materiāli

Šī soļa laikā mēs centāmies izveidot sarakstu ar visām lietām, kuras, mūsuprāt, vajadzēs elektronikai un ārējam apvalkam. Tad mēs izdomājām skici, kā mēs gribējām, lai izskatās modinātājs un kā mēs saliktu tā ārējo apvalku.

3. darbība: ārējā apvalka izveide

Ārējā apvalka izveide
Ārējā apvalka izveide
Ārējā apvalka izveide
Ārējā apvalka izveide

Pirmajam prototipam es tikai gribēju redzēt, kā pirkstu locītavas saderēs kopā, tāpēc es izmantoju apavu kasti un neizmantoju precīzus mērījumus.

4. solis: ārējā apvalka griešana ar lāzeru

Ārējā apvalka griešana ar lāzeru
Ārējā apvalka griešana ar lāzeru

Otrajam prototipam es vēlējos iegūt precīzus mērījumus, un man bija jāizveido pdf, lai to nosūtītu uz lāzera griezēju. Lai to izdarītu, es izmantoju kastes veidotāja lietotnes vietni https://boxdesigner.connectionlab.org. Šajā vietnē es ievadīju kastes trīsdimensiju izmērus, mūsu materiāla biezumu, mērvienības un kāda veida failu es vēlos izveidot. Kastes izmēri bija 7,5 x 3 x 5 collas, un es izmantoju 1/8 biezu akrila materiālu. Pēc tam pirkstu locītavu iegriezumu mērījumi tika automātiski konfigurēti kā 0,46875 collas. Es izvēlējos pdf versiju, jo tas ir faila veids, ko lasa lāzera griezējs, un es gribēju veikt dažas izmaiņas Adobe failā. Es nomainīju līnijas krāsas uz sarkanu, lai lāzera griezējs zinātu tās izgriezt, nevis gravēt formu, un es pievienoju taisnstūra lodziņu ar izmēriem 3,92 x 1,56 collas uz tā, kas būs priekšējais gabals. kaste. Es arī pievienoju taisnstūri, kas izgriezts ar izmēriem 1 collas līdz 0,5 collas labajā pusē, apakšā, lai kalpotu kā atvērums modinātājam pievienotajam vadam. Visbeidzot, augšpusē pievienoju trīs apaļas atveres abiem signāliem un pogai. Signāla atveru diametrs bija 0,5 collas, bet pogas atvērums - 0,375 collas.

5. solis: salieciet to kopā

Liekot to kopā
Liekot to kopā

Kad visi gabali tika izgriezti, es izmantoju šļirci un akrila līmi, lai to noslēgtu. Es turēju gabalus kopā un pilēju līmi starp iecirtumiem, lai saliktu malas, bet augšdaļa nebija pielīmēta.

6. darbība: kods

Ievads:

Šis projekts tika kodēts, izmantojot Arduino IDE programmatūras valodu c ++. Izmantotais mikrokontrolleris bija NodeMCU ar ESP8266. Šim projektam mums ir nepieciešams veids, kā precīzi saglabāt laiku, atskan skaņas signāls, signalizācijas sistēma, kas izraisa trauksmes signālu, un ekrāns, kas parāda visu laiku un trauksmes laikus. Pilnu kodu skatiet šajā saitē

Bibliotēku importēšana

Pirmkārt, mums ir jāimportē nepieciešamās bibliotēkas.

#include "RTClib.h"

#iekļaut "Wire.h" #iekļaut #iekļaut #iekļaut #iekļaut

Mainīgo sākšana

Tālāk mums jāuzsāk mainīgie lielumi vēlākam laikam, jāpiešķir zvana taustiņu izkārtojums, jāiestata RTC un jāiestata LCD displeja I2C adrese.

LiquidCrystal_I2C LCD (0x27, 20, 4);

const int buzzer1 = 12; const int buzzer2 = 0; const int poga = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena"} int starttime; int activetime; int prevoustime = 0; char ahours1 [3]; char amins1 [3]; int stunda1 = 0; int min1 = 0; char ahours2 [3]; char amins2 [3]; int stunda2 = 0; int min2 = 0; char ahours3 [3]; char amins3 [3]; int stunda3 = 0; int min3 = 0; int signalizācija = 0; int ByteReceived; char saņēmisChar; const baits numChars = 32; char saņēmaChars [numChars];

Uzstādīt

Tālāk mums ir nepieciešama funkcija, kas sāk visus nepieciešamos procesus. Šajā funkcijā mums jāuzsāk LCD ekrāns un jāizdrukā sākotnējie laiki, jāizveido mazāka funkcija, kas nodrošina RTC reāllaiku, ja tā vēl nav, un jāsāk sērijveida monitors.

void setup () {

#ifndef ESP8266 while (! Serial); #endif if (! rtc.begin ()) {Serial.println ("Nevarēja atrast RTC"); kamēr (1); } if (rtc.lostPower ()) {Serial.println ("RTC zaudēja jaudu, ļauj iestatīt laiku!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))} lcd.init (); lcd.fona apgaismojums (); // ieslēdz Baklight. lcd.clear (); // Notīra LCD lcd.print ("00:00"); // displejs LCD ekrānā pēc koda augšupielādes lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print ("Laiks"); lcd.setCursor (10, 1); lcd.print ("1. trauksme"); lcd.setCursor (0, 3); lcd.print ("2. trauksme"); lcd.setCursor (0, 2); lcd.print ("00:00"); lcd.setCursor (10, 3); lcd.print ("3. trauksme"); lcd.setCursor (10, 2); lcd.print ("00:00"); rtc.begin (); pinMode (poga, INPUT); // Iestatiet piespraudi klusuma pogai pinMode (buzzer1, OUTPUT); // iestatīt taustiņu skaņas signāla izejai pinMode (buzzer2, OUTPUT); // iestatīt taustiņu skaņas signāla izvadei Serial.begin (9600); Serial.println ("Trauksmju ievades laiks HHMM formātā bez atstarpes starp trauksmēm"); sākuma laiks = milis ()/1000; }

Datu saņemšana

Tagad mums jāspēj saņemt trauksmes laikus. Lai to izdarītu, mēs izveidojām funkciju datu saņemšanai no sērijas monitora un to saglabāšanai masīvā.

void recvWithEndMarker () {

statisks int ndx = 0; String timein = Serial.readString (); par (ndx = 0; timein [ndx]; ndx ++) {saņēmaChars [ndx] = timein [ndx]; } ReceiveChars [ndx] = '\ 0'; Sērijas.druka (saņēmaChars); }

Modinātāju iestatīšana

Nākamais solis ir modinātāju iestatīšana. Šeit ir 1. trauksmes kods. 2. un 3. trauksmes gadījumā tas pats process tika atkārtots ar dažām numuru izmaiņām.

/* 1. modinātājs*/

recvWithEndMarker (); int h, m; par (h = 0; h <2; h ++) {ahours1 [h] = saņemtsChars [h]; } par (m = 2; m <4; m ++) {amins1 [m-2] = saņemtsChars [m]; } stundas1 [h] = '\ 0'; amins1 [m-2] = '\ 0'; Serial.print (ahours1); Sērijas nospiedums (amins1); stunda1 = atoi (stundas1); min1 = atoi (amins1); Sērijas nospiedums (stunda1); Sērijas nospiedums (min1);

Signāls/poga

Kad tas ir izdarīts, mums ir jāizslēdz skaņas signāls, kad reālais laiks un trauksmes laiks ir vienādi. Arī šajā solī mēs izveidojam atlikšanas pogu, kas aptur skaņas signālu, kamēr to turat.

/ * Klusuma poga */

int klusums; int b; b = digitalRead (2); ja (b == LOW) {klusums = 1; } cits {klusums = 0; } / * Sākt modinātāju * / if (stundas == stunda1 && min = = min1) {modinātājs = 1; } cits if (stundas == stunda2 && min = = min2) {signalizācija = 1; } cits if (stundas == stunda3 && min = = min3) {modinātājs = 1; } cits {modinātājs = 0; klusums = 0; } if (modinātājs == 1 && klusums == 0) {tonis (zvana signāls1, 4000, 1000); tonis (zummeris2, 4000, 1000); kavēšanās (1000); noTone (zumeris1); noTone (zumeris2); kavēšanās (1000); }

Drukāšanas laiki

Visbeidzot, mums ir jāizdrukā trauksmes laiki un reālais laiks LCD ekrānā.

DateTime now = rtc.now ();

int stundas = (tagad.stunda ()); int mins = (tagad.minūte ()); / * Modinātāja laiks 00:00 formātā */ 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); / * Displeja laiks no RTC */ lcd.setCursor (0, 0); lcd.print (stundas); lcd.print (":"); lcd.print (min);

7. solis: elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Šī projekta elektronikā ir vairāki gabali, kā redzams materiālu sarakstā. Pirmais attēls ir projekta galīgās elektronikas shēma. Otrais attēls ir mūsu galīgais elektroniskais dizains. Trešais attēls ir mūsu projekts otrā prototipa vidū.

Lai sāktu, pievienojiet savu NodeMCU maizes dēļa tālajam galam. Pēc tam jums būs jāpievieno visa cita elektronika NodeMCU un maizes dēļam. Sāciet, savienojot LCD ekrānu ar tapām D1 SCL un D2 SDA. LCD ļaus lietotājam redzēt pašreizējo laiku un iestatītos modinātāja laikus. Tagad izveidojiet vadu, lai savienotu skaņas signālus ar tapām D3 un D6. Signāli ļaus modinātājam brīdināt lietotāju, kad ir sasniegts iestatītais laiks. Tagad jums jāpievieno poga, lai ļautu pārtraukt modinātāja darbību. Pievienojiet šo pogu tapai D4. Tagad jūs pievienosit savu reāllaika pulksteni maizei. Pievienojiet reāllaika pulksteni, lai tas izmantotu tās pašas SDA un SCL tapas, ko izmanto LCD displejam.

8. solis: fināls

Fināls
Fināls

Ja esat ievērojis sniegto informāciju, jūsu projekts var izskatīties kā attēlā iepriekš. Mēs novēlam jums veiksmi mēģinājumos atjaunot šo projektu un, kad esat pabeidzis savu projektu, mēs iesakām komentāros dalīties ar mums attēlos un piezīmēs. Paldies un veiksmi kolēģiem Makerniekiem.

Ieteicams: