Talaan ng mga Nilalaman:
- Hakbang 1: Brainstorming the Idea
- Hakbang 2: Sketching at Mga Materyales
- Hakbang 3: Paglikha ng Outter Casing
- Hakbang 4: Pagputol ng Laser sa Outer Casing
- Hakbang 5: Pagsasama-sama Ito
- Hakbang 6: Code
- Hakbang 7: Elektronika
- Hakbang 8: Pangwakas
Video: Umagang Buddy: 8 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
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
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
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
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
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
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
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
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:
Pag-aaral ng Buddy: 10 Hakbang
Study Buddy: Ang itinuturo na ito ay nagpapaliwanag kung paano gumawa ng isang buddy na buddy Ang pag-andar ng buddy na ito ng pag-aaral ay upang matulungan ang mga kabataan sa pagitan ng edad na 14 at 18 na malaman kung paano magplano at mag-aral. Ang layunin ay upang ang robot ay maaaring matuto sa mga mag-aaral. Ang takip ay ipininta sa isang
Mga Engineers na Buddy Bluetooth Kbd at Mouse .: 3 Mga Hakbang
Mga inhinyero Buddy Bluetooth Kbd at Mouse .: Mga inhinyero Buddy USB keyboard at module ng mouse emulator. Ang madaling gamiting maliit na aparato, na may koneksyon na asul na ngipin, ginagawang isang wireless remote control para sa anumang computer ang mga Android phone / tablet. Binibigyan nito ang iyong Android aparato ng kontrol sa lahat ng HID comp
Pagbuo ng 3D Printed Arduino Social Robot Buddy: 9 Mga Hakbang
Pagbuo ng 3D Printed Arduino Social Robot Buddy: Si Buddy ay isang 3D Printed na arduino na social robot. Nakikipag-ugnay siya sa mundo sa pamamagitan ng paggamit ng isang ultrasonic sensor upang mai-map ang kanyang agarang lugar. Kapag may nagbago sa kanyang kapaligiran gumanti siya. Maaari siyang mabigla o matanong at kung minsan ay medyo mapusok
Mga Circuit buddy: 14 Hakbang (na may Mga Larawan)
Mga Circuit Buddy: Naisip mo ba kung paano gumagana ang kuryente? Tulad ng pagdadala ng dugo ng dugo sa buong katawan, ang mga wire sa isang circuit ay nagdadala ng mga daloy ng kuryente sa iba't ibang bahagi ng isang elektronikong sistema. Ano ang isang circuit? Ang isang circuit ay isang landas na gumagalaw electrica
Tamad 301 Dart Buddy !: 5 Hakbang
Tamad na 301 Dart Buddy !: Ang aking mga kasama sa kolehiyo at Kamakailan ko ay nagmana ng isang binugbog na board ng dart … Sinimulan namin ang paggalugad ng mga laro tulad ng 301, kung saan ang bawat manlalaro ay nagsisimula sa 301 na puntos na bumaba sa zero puntos sa kurso ng ilang mga pag-ikot . Ito ay masaya, subalit nagsusulat sa