Talaan ng mga Nilalaman:

Umagang Buddy: 8 Hakbang
Umagang Buddy: 8 Hakbang

Video: Umagang Buddy: 8 Hakbang

Video: Umagang Buddy: 8 Hakbang
Video: I used 10 COMPUTERS to hatch 500 EXCLUSIVE HOLOGRAM EGGS in Pet Sim X.. 2024, Hulyo
Anonim
Image
Image

Ang ilang mga tao ay may masyadong abalang mga iskedyul, na ginagawang madali upang makalimutan ang isang bagay sa isa o dalawa. Sa alarm clock na ito maaari kang magtakda ng maraming mga alarma upang mapanatili ka sa iskedyul. Ang orasan ay tumatakbo sa 24 na oras at ang kailangan mo lang gawin ay i-program ito upang mag-off sa iba't ibang oras ng araw na umaangkop sa iyong iskedyul. Kapag ginagawa mo ito ng mga oras na iyong itinakda ay mag-pop up sa LCD screen, upang masuri mo upang matiyak na tama sila at magsilbing isang karagdagang paalala.

Hakbang 1: Brainstorming the Idea

Sketch at Mga Materyales
Sketch at Mga Materyales

Kapag sinusubukan naming malutas ang isyu ginamit namin ang pamamaraan ng fishbone upang makabuo ng isang ideya at nagresulta sa aming alarm clock.

Hakbang 2: Sketching at Mga Materyales

Sketch at Mga Materyales
Sketch at Mga Materyales

Sa hakbang na ito sinubukan naming gumawa ng isang listahan ng lahat ng mga bagay na naisip namin na kailangan namin para sa electronics at panlabas na pambalot. Pagkatapos ay nakaisip kami ng isang sketch ng kung ano ang nais namin na magmukhang alarm alarm at kung paano namin titipunin ang panlabas na pambalot.

Hakbang 3: Paglikha ng Outter Casing

Paglikha ng Outter Casing
Paglikha ng Outter Casing
Paglikha ng Outter Casing
Paglikha ng Outter Casing

Para sa unang prototype nais ko lamang makita kung paano magkakasya ang mga kasukasuan ng daliri, kaya gumamit ako ng isang kahon ng sapatos at hindi gumagamit ng eksaktong mga sukat.

Hakbang 4: Pagputol ng Laser sa Outer Casing

Pagputol ng Laser sa Outer Casing
Pagputol ng Laser sa Outer Casing

Para sa pangalawang prototype nais kong makakuha ng eksaktong mga sukat at kailangang lumikha ng isang pdf upang maipadala sa pamutol ng laser. Upang magawa ito gumamit ako ng isang website ng box maker app, https://boxdesigner.connectionlab.org. Sa website na iyon ay inilagay ko pagkatapos ang mga sukat ng 3-D ng kahon, kapal ng aming materyal, mga yunit ng pagsukat, at kung anong uri ng file ang nais kong likhain nito. Ang mga sukat ng kahon ay 7.5 sa x 3 sa x 5 sa at gumamit ako ng 1/8 sa makapal na materyal na acrylic. Ang mga sukat ng magkasanib na tiko ay pagkatapos ay awtomatikong na-configure upang maging 0.46875 pulgada. Pinili ko ang bersyon ng pdf dahil iyon ang uri ng file na binabasa ng isang laser cutter at nais kong gumawa ng ilang mga pagbabago sa adobe sa file. Binago ko ang mga kulay ng linya sa pula, upang malaman ng pamutol ng laser na i-cut ang mga ito sa halip na ukit ang hugis, at nagdagdag ako ng isang kahon ng rektanggulo na may sukat na 3.92 sa pamamagitan ng 1.56 sa kung ano ang magiging harap na piraso ng kahon Nagdagdag din ako ng isang rektanggulo na gupitin na may mga sukat ng 1in ng 0.5in in sa kanang bahagi sa ibabang bahagi upang magsilbing isang pambungad para sa kurdon na konektado sa alarm clock. Huling nagdagdag ako ng tatlong pabilog na bukana sa itaas para sa dalawang buzzer at ang pindutan. Ang buzzer openings ay may diameter na 0.5 in at ang pagbubukas ng pindutan ay 0.375 in.

Hakbang 5: Pagsasama-sama Ito

Pagsasama-sama nito
Pagsasama-sama nito

Kapag pinutol ang lahat ng mga piraso ay gumamit ako ng isang hiringgilya at pandikit na acrylic upang mai-seal ito nang magkasama. Pinagsama ko ang mga piraso at tinulo ang kola sa pagitan ng mga bingaw upang magkasama ang mga gilid, ngunit ang tuktok ay hindi nakadikit.

Hakbang 6: Code

Panimula:

Ang proyekto na ito ay naka-code gamit ang wika c ++ sa Arduino IDE software. Ang ginamit na micro-controller ay ang NodeMCU kasama ang ESP8266. Para sa proyektong ito, kakailanganin namin ng isang paraan upang tumpak na mapanatili ang oras, isang tunog ng buzzer, isang sistema ng alarma upang magdulot ng alarma sa alarma, at isang screen upang maipakita ang oras lahat at ang mga oras ng alarma. Para sa buong code sumangguni sa link na ito

Pag-import ng Mga Aklatan

Una sa mga bagay, kailangan nating i-import ang mga kinakailangang aklatan.

# isama ang "RTClib.h"

# isama ang "Wire.h" # isama ang # isama ang # isama ang # isama

Nagsisimula ng mga variable

Susunod na kailangan namin upang simulan ang mga variable para sa paglaon, italaga ang layout ng pin para sa mga pindutan ng buzzer, i-set up ang RTC, at itakda ang I2C address ng LCD display.

LiquidCrystal_I2C lcd (0x27, 20, 4);

const int buzzer1 = 12; const int buzzer2 = 0; Const int button = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"} int starttime; int aktibo; int prevoustime = 0; char ahours1 [3]; char amins1 [3]; int oras1 = 0; int min1 = 0; char ahours2 [3]; char amins2 [3]; int oras2 = 0; int min2 = 0; char ahours3 [3]; char amins3 [3]; int oras3 = 0; int min3 = 0; int alarm = 0; int ByteReceived; char recievedChar; const byte numChars = 32; char natanggapChars [numChars];

Pag-set up

Susunod, kailangan nating magkaroon ng isang pagpapaandar na nagsisimula sa lahat ng kinakailangang proseso. Sa pagpapaandar na ito, kailangan naming simulan ang LCD at i-print ang paunang oras, gumawa ng isang mas maliit na pagpapaandar na nagbibigay sa RTC ng tunay na oras kung wala ito, at simulan ang serial monitor.

walang bisa ang pag-setup () {

#ifndef ESP8266 habang (! Serial); #endif if (! rtc.begin ()) {Serial.println ("Hindi mahanap ang RTC"); habang (1); } kung (rtc.lostPower ()) {Serial.println ("Nawalan ng kuryente ang RTC, hinahayaan mong itakda ang oras!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))} lcd.init (); lcd.backlight (); // ginagawang ON ang Baklight. lcd.clear (); // Nilinaw ang LCD lcd.print ("00:00"); // display sa LCD pagkatapos ng pag-upload ng code lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print ("Oras"); lcd.setCursor (10, 1); lcd.print ("Alarm 1"); lcd.setCursor (0, 3); lcd.print ("Alarm 2"); lcd.setCursor (0, 2); lcd.print ("00:00"); lcd.setCursor (10, 3); lcd.print ("Alarm 3"); lcd.setCursor (10, 2); lcd.print ("00:00"); rtc.begin (); pinMode (pindutan, INPUT); // Magtakda ng isang pin para sa pindutan ng katahimikan pinMode (buzzer1, OUTPUT); // magtakda ng isang pin para sa buzzer output pinMode (buzzer2, OUTPUT); // magtakda ng isang pin para sa buzzer output na Serial.begin (9600); Serial.println ("Oras ng pag-input ng mga alarma sa format na HHMM na walang puwang na nasa pagitan ng mga alarma"); oras ng pagsisimula = millis () / 1000; }

Pagtanggap ng Data

Ngayon, kailangan nating makatanggap ng mga oras ng alarma. Upang gawin iyon lumikha kami ng isang pagpapaandar upang matanggap ang data mula sa serial monitor at iimbak ito sa isang array.

walang bisa recvWithEndMarker () {

static int ndx = 0; String timein = Serial.readString (); para sa (ndx = 0; timein [ndx]; ndx ++) {acceptChars [ndx] = timein [ndx]; } natanggapChars [ndx] = '\ 0'; Serial.print (natanggapChars); }

Pagtatakda ng Mga Alarma

Ang susunod na hakbang ay makapagtakda ng mga alarma. Narito ang code para sa alarma 1. Para sa alarma 2 at 3 ang parehong proseso ay paulit-ulit na may ilang mga pagbabago sa bilang.

/ * Alarm 1 * /

recvWithEndMarker (); int h, m; para sa (h = 0; h <2; h ++) {ahours1 [h] = natanggapChars [h]; } para sa (m = 2; m <4; m ++) {amins1 [m-2] = natanggapChars [m]; } ahours1 [h] = '\ 0'; amins1 [m-2] = '\ 0'; Serial.print (ahours1); Serial.print (amins1); oras1 = atoi (ahours1); min1 = atoi (amins1); Serial.print (oras1); Serial.print (min1);

Buzzer / Button

Sa tapos na, kailangan naming gawin ang buzzer na patayin kapag ang tunay na oras at oras ng alarma ay pantay. Gayundin sa hakbang na ito gumawa kami ng isang snooze tulad ng pindutan na humihinto sa buzzer habang hinahawakan mo ito.

/ * Button ng Katahimikan * /

int katahimikan; int b; b = digitalRead (2); kung (b == LOW) {manahimik = 1; } iba pa {manahimik = 0; } / * Start Alarm * / if (oras == hour1 && mins == min1) {alarm = 1; } iba pa kung (oras == hour2 && mins == min2) {alarm = 1; } iba pa kung (oras == hour3 && mins == min3) {alarm = 1; } iba pa {alarm = 0; katahimikan = 0; } kung (alarma == 1 && katahimikan == 0) {tone (buzzer1, 4000, 1000); tono (buzzer2, 4000, 1000); pagkaantala (1000); noTone (buzzer1); noTone (buzzer2); pagkaantala (1000); }

Oras ng Pagpi-print

Sa wakas, kailangan nating i-print ang mga oras ng alarma at real time sa LCD screen.

DateTime ngayon = rtc.now ();

int oras = (ngayon.hour ()); int mins = (now.minute ()); / * Oras ng pag-alarm sa 00:00 format * / 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); / * Oras ng Pagpapakita mula sa RTC * / lcd.setCursor (0, 0); lcd.print (oras); lcd.print (":"); lcd.print (mins);

Hakbang 7: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Mayroong maraming mga piraso sa electronics ng proyektong ito, tulad ng nakikita sa singil ng mga materyales. Ang Unang imahe ay isang eskematiko ng mga proyekto huling electronics. Ang Pangalawang imahe ay ang aming pangwakas na elektronikong disenyo. Ang Pangatlong imahe ay ng aming proyekto sa gitna ng pangalawang prototype.

Upang simulang ilakip ang iyong NodeMCU sa pinakadulo ng iyong pisara. Kakailanganin mong ikonekta ang lahat ng iyong iba pang mga electronics sa NodeMCU at breadboard. Magsimula sa pamamagitan ng pagkonekta sa iyong LCD screen sa mga pin na D1 para sa SCL at D2 para sa SDA. Papayagan ng LCD ang gumagamit na makita ang kasalukuyang oras at ang itinakdang mga oras ng alarma. Ngayon ay may isang kawad na ikonekta ang iyong mga buzzer sa mga pin D3 at D6. Papayagan ng mga buzzer ang alarma na alerto ang gumagamit kapag naabot na ang itinakdang oras. Dapat mo na ngayong maglakip ng isang pindutan upang payagan ang alarma na ihinto. Ikabit ang pindutan na ito upang i-pin ang D4. Ngayon ay ikakabit mo ang iyong real-time na orasan sa breadboard. I-wire ang Real-time na orasan kaya gumagamit ito ng parehong mga SDA at SCL na pin na ginamit para sa LCD display.

Hakbang 8: Pangwakas

Panghuli
Panghuli

Kung sinundan mo ang impormasyong ibinigay sa iyong proyekto ay maaaring magmukhang ang imahe sa itaas. Nais naming swerte ka sa iyong mga pagtatangka upang muling likhain ang proyektong ito at kapag nakumpleto mo ang iyong proyekto hinihikayat ka namin na magbahagi ng mga larawan at puna sa amin sa mga komento. Salamat at good luck kapwa Makers.

Inirerekumendang: