Агуулгын хүснэгт:

Өглөөний найз: 8 алхам
Өглөөний найз: 8 алхам

Видео: Өглөөний найз: 8 алхам

Видео: Өглөөний найз: 8 алхам
Видео: Өөртөө Итгэлтэй Болох Маш Энгийн 8 Арга 2024, Долдугаар сарын
Anonim
Image
Image

Зарим хүмүүс маш завгүй хуваарьтай байдаг нь нэг юмуу хоёр зүйлийг амархан мартдаг. Энэхүү сэрүүлэгтэй цагийг ашиглан та хуваарийг дагаж мөрдөхийн тулд олон сэрүүлэг тохируулж болно. Цаг 24 цагаар ажилладаг бөгөөд таны хийх ёстой зүйл бол цагийн хуваарийн дагуу өдрийн өөр өөр цагт унтраахаар програмчлах явдал юм. Үүнийг хийх үед таны тогтоосон цагууд LCD дэлгэц дээр гарч ирэх бөгөөд ингэснээр та тэдний зөв эсэхийг шалгаж нэмэлт сануулагч болгон ашиглах боломжтой болно.

Алхам 1: Санаа бодлоо тархинд оруулах

Ноорог ба материал
Ноорог ба материал

Асуудлыг шийдэх гэж байхдаа загасны ясны аргыг ашиглан санаа гаргаж, сэрүүлэгтэй болсон.

Алхам 2: Ноорог ба материал

Ноорог ба материал
Ноорог ба материал

Энэ үе шатанд бид электрон бараа, гадна бүрхүүлд хэрэгтэй гэж үзсэн бүх зүйлийнхээ жагсаалтыг гаргахыг хичээсэн. Дараа нь бид сэрүүлэгтэй цаг ямар байхыг хүсч байгаа, түүний гадна бүрхүүлийг хэрхэн яаж угсрах талаархи тоймыг гаргав.

Алхам 3: Гаднах бүрхүүл үүсгэх

Гаднах бүрхүүл үүсгэх
Гаднах бүрхүүл үүсгэх
Гаднах бүрхүүл үүсгэх
Гаднах бүрхүүл үүсгэх

Эхний прототипийн хувьд би хурууны үенүүд хоорондоо хэрхэн нийлж болохыг харахыг хүссэн тул би гутлын хайрцаг ашигласан бөгөөд яг хэмжилт хийгээгүй.

Алхам 4: Гадна бүрхүүлийг лазераар огтлох

Гадна бүрхүүлийг лазераар огтлох
Гадна бүрхүүлийг лазераар огтлох

Хоёрдахь загварын хувьд би яг хэмжилт хийхийг хүсч, лазер таслагч руу илгээх pdf файлыг үүсгэх шаардлагатай болсон. Үүнийг хийхийн тулд би https://boxdesigner.connectionlab.org хайрцаг үйлдвэрлэгч програмын вэбсайтыг ашигласан. Тэр вэбсайт дээр би хайрцагны 3 хэмжээст хэмжээ, бидний материалын зузаан, хэмжих нэгж, ямар төрлийн файл үүсгэхийг хүсч байгаагаа орууллаа. Хайрцагны хэмжээ нь 7.5 x 3 in x 5 in байсан бөгөөд би 1/8 in зузаан нийлэг материал ашигласан. Хурууны үений ховилын хэмжилтийг автоматаар 0.46875 инч байхаар тохируулсан болно. Би pdf хувилбарыг сонгосон, учир нь энэ бол лазер хайчлагчийн уншдаг файл бөгөөд би Adobe -д файлд зарим өөрчлөлт оруулахыг хүссэн юм. Би шугамын өнгийг улаан болгож өөрчилсөн бөгөөд ингэснээр лазер таслагч нь дүрсээ сийлбэрлэхийн оронд огтлохыг мэдэх болно, мөн 3.92 инч хэмжээтэй 1.56 инч хэмжээтэй тэгш өнцөгт хайрцгийг урд талынх нь хэсэгт нэмж оруулав. хайрцаг. Би бас сэрүүлэгтэй цагтай холбогдсон утсыг нээх үүргийг гүйцэтгэхийн тулд доод талын баруун талд 1 инч хэмжээтэй 0.5 инч хэмжээтэй тэгш өнцөгтийг нэмж оруулав. Хамгийн сүүлд би хоёр дуугаралт, товчлуурын дээд хэсэгт гурван дугуй нүх нэмсэн. Дуугаралтын нүх нь 0.5 инч диаметртэй, товчлуурын нээлхий 0.375 инч байв.

Алхам 5: Үүнийг нэгтгэх

Үүнийг хамтад нь оруулах
Үүнийг хамтад нь оруулах

Бүх хэсгүүдийг хайчилж авсны дараа би тариур, нийлэг цавуугаар битүүмжилсэн. Би хэсгүүдийг хооронд нь холбож, цавуугаа ховилын хооронд дусааж, талыг нь хооронд нь нийлүүлсэн боловч дээд хэсгийг нь наасангүй.

Алхам 6: Код

Танилцуулга:

Энэ төслийг Arduino IDE програм дээр c ++ хэл ашиглан кодчилсон болно. Ашигласан микро хянагч нь ESP8266-тай NodeMCU байв. Энэхүү төслийн хувьд бидэнд цагийг зөв барих арга, дуугарах дуугаралт, сэрүүлгийг дуугаргах дохиоллын систем, бүх цаг болон сэрүүлгийн цагийг харуулах дэлгэц хэрэгтэй болно. Бүрэн кодыг энэ линкээс үзнэ үү

Номын санг импортлох

Юуны өмнө бид шаардлагатай номын сангуудыг импортлох хэрэгтэй.

#"RTClib.h" -ийг оруулна уу

#оруулах "Wire.h" #оруулах #оруулах #оруулах #оруулах

Хувьсагчдыг эхлүүлэх

Дараа нь бид дараа нь хувьсагчдыг эхлүүлэх, дуугаралтын товчлууруудын зүү байрлуулах, RTC -ийг тохируулах, LCD дэлгэцийн I2C хаягийг тохируулах шаардлагатай болно.

LiquidCrystal_I2C lcd (0x27, 20, 4);

const int buzzer1 = 12; const int buzzer2 = 0; const int товчлуур = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"Ням", "Даваа гариг", "Мягмар", "Лхагва", "Пүрэв", "Баасан", "Бямба"} эхлэх цаг; int идэвхтэй цаг; int prevoustime = 0; char ahours1 [3]; char amins1 [3]; int hour1 = 0; int min1 = 0; char ahours2 [3]; char amins2 [3]; int hour2 = 0; int min2 = 0; char ahours3 [3]; char amins3 [3]; int hour3 = 0; int min3 = 0; int дохиолол = 0; int Byte Хүлээн авсан; char хүлээн авсанChar; const байт numChars = 32; char хүлээн авсанChars [numChars];

Тохируулах

Дараа нь бид шаардлагатай бүх процессыг эхлүүлэх функцтэй байх ёстой. Энэ функцэд бид LCD -ийг асааж, анхны цагийг хэвлэх, RTC -т байхгүй бол бодит цагийг өгөх жижиг функцийг хийж, цуваа дэлгэцийг эхлүүлэх шаардлагатай болно.

хүчингүй тохиргоо () {

#ifndef ESP8266 while (! Цуваа); #endif if (! rtc.begin ()) {Serial.println ("RTC олж чадсангүй"); байхад (1); } if (rtc.lostPower ()) {Serial.println ("RTC хүчээ алдсан, цагийг тохируулцгаая!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))}} lcd.init (); lcd.backlight (); // Baklight -ийг асаана. lcd.clear (); // LCD lcd.print -ийг цэвэрлэнэ ("00:00"); // кодыг байршуулсны дараа LCD дэлгэц дээр харуулах lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print ("Цаг"); lcd.setCursor (10, 1); lcd.print ("Сэрүүлэг 1"); lcd.setCursor (0, 3); lcd.print ("Сэрүүлэг 2"); lcd.setCursor (0, 2); lcd.print ("00:00"); lcd.setCursor (10, 3); lcd.print ("Сэрүүлэг 3"); lcd.setCursor (10, 2); lcd.print ("00:00"); rtc.begin (); pinMode (товчлуур, оролт); // Чимээгүй байдлын товчлуурыг тохируулах pinMode (buzzer1, OUTPUT); // дуугаралтын гаралтын pinMode (buzzer2, OUTPUT) зүү тохируулах; // дуут дохионы гаралтыг тохируулах Serial.begin (9600); Serial.println ("Сэрүүлгийн хооронд зай байхгүй HHMM форматаар дохиолол оруулах цаг"); эхлэх цаг = millis ()/1000; }

Өгөгдөл хүлээн авах

Одоо бид сэрүүлгийн цагийг хүлээн авах чадвартай байх ёстой. Үүний тулд бид цуваа монитороос өгөгдлийг хүлээн авч массивт хадгалах функцийг бий болгосон.

хүчингүй recvWithEndMarker () {

статик int ndx = 0; String timein = Serial.readString (); for (ndx = 0; timein [ndx]; ndx ++) {хүлээн авсанChars [ndx] = timein [ndx]; } хүлээн авсанChars [ndx] = '\ 0'; Цуваа.хэвлэх (хүлээн авсанChars); }

Сэрүүлэг тохируулах

Дараагийн алхам бол сэрүүлгийг тохируулах явдал юм. Энд дохиоллын код 1 байна. 2 ба 3 дугаар дохиоллын хувьд хэд хэдэн тооны өөрчлөлттэй ижил үйлдлийг давтсан.

/* Сэрүүлэг 1*/

recvWithEndMarker (); int h, m; for (h = 0; h <2; h ++) {ahours1 [h] = хүлээн авсанChars [h]; } (m = 2; m <4; m ++) {amins1 [m-2] = хүлээн авсанChars [m]; } ahours1 [h] = '\ 0'; amins1 [m-2] = '\ 0'; Serial.print (ahours1); Цуваа.хэвлэх (амин1); hour1 = atoi (ahours1); min1 = atoi (amins1); Цуваа.хэвлэх (цаг1); Цуваа.хэвлэх (мин1);

Buzzer/товчлуур

Үүнийг хийснээр бид бодит цаг болон сэрүүлгийн цаг тэнцүү үед дуугарагчийг унтраах хэрэгтэй. Мөн энэ алхам дээр бид дуугаруулагчийг барьж байх үед түүнийг зогсоодог түр хойшлуулах товчлуурыг хийдэг.

/ * Чимээгүй байх товч */

чимээгүй байдал; int b; b = digitalRead (2); if (b == LOW) {чимээгүй байдал = 1; } өөр {чимээгүй байдал = 0; } / * Сэрүүлгийг эхлүүлэх * / if (hours == hour1 && mins == min1) {alarm = 1; } if if (hours == hour2 && mins == min2) {alarm = 1; } if if (hours == hour3 && mins == min3) {alarm = 1; } өөр {дохиолол = 0; чимээгүй байдал = 0; } if (дохиолол == 1 && чимээгүй байдал == 0) {ая (buzzer1, 4000, 1000); ая (дуугаралт2, 4000, 1000); саатал (1000); noTone (дуугаралт1); noTone (дуугаралт2); саатал (1000); }

Хэвлэх цаг

Эцэст нь хэлэхэд бид сэрүүлгийн цаг, бодит цагийг LCD дэлгэц дээр хэвлэх хэрэгтэй.

DateTime now = rtc.now ();

int hours = (now.hour ()); int mins = (now.minute ()); / * 00:00 формат дахь сэрүүлгийн цаг */ lcd.setCursor (10, 0); lcd.print (ahours1); lcd.setCursor (13, 0); lcd.print (amins1); lcd.setCursor (0, 2); lcd.хэвлэх (хоёр цаг); lcd.setCursor (3, 2); lcd.хэвлэх (амин2); lcd.setCursor (10, 2); lcd.print (ahours3); lcd.setCursor (13, 2); lcd.хэвлэх (амин 3); / * RTC -ээс харуулах цаг */ lcd.setCursor (0, 0); lcd.хэвлэх (цаг); lcd.print (":"); lcd.хэвлэх (мин);

Алхам 7: Электроник

Электроник
Электроник
Электроник
Электроник
Электроник
Электроник

Энэ төслийн электроникийн олон хэсгүүд байгаа нь материалын хуудаснаас харагдаж байна. Эхний зураг нь эцсийн электроникийн төслүүдийн схем юм. Хоёрдахь зураг бол бидний эцсийн электрон загвар юм. Гурав дахь зураг бол манай төслийн хоёр дахь загвар дээр байгаа зураг юм.

Эхлэхийн тулд NodeMCU -г талхны самбарын хамгийн төгсгөлд хавсаргана уу. Дараа нь та бусад бүх электроникуудаа NodeMCU болон талхны самбарт холбох хэрэгтэй болно. LCD дэлгэцээ SCL -ийн D1, SDA -ийн D2 зүү рүү холбож эхэл. LCD нь хэрэглэгчдэд одоогийн цаг болон тогтоосон сэрүүлгийн цагийг харах боломжийг олгоно. Одоо таны дуугарагчийг D3 ба D6 голтой холбосон утас барь. Дуут дохиолол нь тогтоосон цаг дуусахад хэрэглэгчдэд дохиолол өгөх боломжийг олгодог. Та одоо сэрүүлгийг зогсоохын тулд товчлуур хавсаргах ёстой. Энэ товчлуурыг D4 зүүгээр холбоно уу. Одоо та бодит цагийнхаа цагийг талхны самбар дээр хавсаргах болно. Бодит цагийн цагийг утсаар холбож LCD дэлгэц дээр ашигладаг SDA ба SCL зүүг ашигладаг.

Алхам 8: Эцсийн шат

Төгсгөл
Төгсгөл

Хэрэв та өгсөн мэдээллийг дагаж мөрдвөл таны төсөл дээрх зураг шиг харагдаж магадгүй юм. Энэхүү төслийг дахин бүтээх оролдлогод тань амжилт хүсье, төслөө дуусгасны дараа биднийг сэтгэгдэл дээр зураг, тайлбараа хуваалцахыг зөвлөж байна. Баярлалаа, бүтээгчиддээ амжилт хүсье.

Зөвлөмж болгож буй: