Satura rādītājs:
- 1. solis: idejas prāta vētra
- 2. darbība: skicēšana un materiāli
- 3. darbība: ārējā apvalka izveide
- 4. solis: ārējā apvalka griešana ar lāzeru
- 5. solis: salieciet to kopā
- 6. darbība: kods
- 7. solis: elektronika
- 8. solis: fināls
Video: Rīta draugs: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
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
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
Šī 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
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
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ā
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
Šī 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
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:
Studiju draugs: 10 soļi
Studiju draugs: Šajā pamācībā ir paskaidrots, kā izveidot draugu. Šī studiju drauga uzdevums ir palīdzēt pusaudžiem vecumā no 14 līdz 18 gadiem iemācīties plānot un mācīties. Mērķis ir, lai robots varētu mācīties kopā ar skolēniem. Vāks ir krāsots
ShWelcome Box: dažreiz draugs: 8 soļi
ShWelcome Box: dažreiz draugs: Vai jūs meklējat uzņēmumu?
Inženieru draugs Bluetooth Kbd un pele: 3 soļi
Inženieru draugs Bluetooth Kbd un pele: Engineers Buddy USB tastatūras un peles emulatora modulis. Šī parocīgā mazā ierīce ar zilo zobu savienojumu padara jūsu Android tālruni/planšetdatoru par bezvadu tālvadības pulti jebkuram datoram. Tas ļauj jūsu Android ierīcei kontrolēt visu HID comp
Slinks 301 šautriņu draugs!: 5 soļi
Slinks 301 šautriņu draugs !: Es un mani koledžas istabas biedri nesen mantojām piekauto šautriņu dēli … Mēs sākām izpētīt tādas spēles kā 301, kurās katrs spēlētājs sāk ar 301 punktu, dažu raundu laikā nokāpj līdz nullei . Tas bija jautri, tomēr rakstot par
Bārmeņa draugs: @ Home radošais slēdzis: 6 soļi
Bārmeņa draugs: @ Home radošais slēdzis: vai esat kādreiz pie sevis padomājis, izklaidējot viesus mājās … " Gee - Es vēlos, lai man būtu unikāls veids, kā parādīt savam viesim, kad viņu dzēriens ir sasniedzis optimālo ballītes dzeršanas līmeni. .. " ? Tagad jūs varat īstenot šo vēlmi ar