สารบัญ:
- ขั้นตอนที่ 1: การระดมความคิดของไอเดีย
- ขั้นตอนที่ 2: การร่างภาพและวัสดุ
- ขั้นตอนที่ 3: การสร้าง Outter Casing
- ขั้นตอนที่ 4: เลเซอร์ตัดปลอกด้านนอก
- ขั้นตอนที่ 5: นำมันมารวมกัน
- ขั้นตอนที่ 6: รหัส
- ขั้นตอนที่ 7: อิเล็กทรอนิกส์
- ขั้นตอนที่ 8: รอบชิงชนะเลิศ
วีดีโอ: Morning Buddy: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
บางคนมีตารางงานที่ยุ่งมาก ซึ่งทำให้ลืมสิ่งหนึ่งหรือสองสิ่งได้ง่าย ด้วยนาฬิกาปลุกนี้ คุณสามารถตั้งเวลาปลุกได้หลายแบบเพื่อให้คุณตรงต่อเวลา นาฬิกาทำงานแบบ 24 เวลา และสิ่งที่คุณต้องทำคือตั้งโปรแกรมให้ทำงานตามเวลาต่างๆ ของวันที่ตรงกับตารางเวลาของคุณ เมื่อคุณทำเช่นนี้ เวลาที่คุณตั้งค่าไว้จะปรากฏขึ้นบนหน้าจอ LCD เพื่อให้คุณสามารถตรวจสอบเพื่อให้แน่ใจว่าถูกต้องและใช้เป็นเครื่องเตือนความจำเพิ่มเติม
ขั้นตอนที่ 1: การระดมความคิดของไอเดีย
เมื่อเราพยายามแก้ปัญหานี้ เราใช้วิธีก้างปลาเพื่อคิดไอเดียและได้ผลลัพธ์เป็นนาฬิกาปลุก
ขั้นตอนที่ 2: การร่างภาพและวัสดุ
ในระหว่างขั้นตอนนี้ เราพยายามสร้างรายการของทุกสิ่งที่เราคิดว่าเราต้องการสำหรับอุปกรณ์อิเล็กทรอนิกส์และตัวเครื่องด้านนอก จากนั้น เราก็ได้ภาพร่างของสิ่งที่เราต้องการให้นาฬิกาปลุกมีหน้าตาเป็นอย่างไร และเราจะประกอบปลอกหุ้มด้านนอกอย่างไร
ขั้นตอนที่ 3: การสร้าง Outter Casing
สำหรับต้นแบบแรก ฉันแค่ต้องการดูว่าข้อต่อนิ้วจะพอดีกันอย่างไร ฉันจึงใช้กล่องรองเท้าและไม่ได้ใช้ขนาดที่แน่นอน
ขั้นตอนที่ 4: เลเซอร์ตัดปลอกด้านนอก
สำหรับต้นแบบที่สอง ฉันต้องการได้การวัดที่แน่นอนและต้องสร้าง pdf เพื่อส่งไปยังเครื่องตัดเลเซอร์ ในการทำเช่นนี้ ฉันใช้เว็บไซต์แอป box maker https://boxdesigner.connectionlab.org ในเว็บไซต์นั้น ฉันได้ป้อนมิติข้อมูลสามมิติของกล่อง ความหนาของวัสดุ หน่วยการวัด และไฟล์ประเภทใดที่ฉันต้องการให้สร้าง ขนาดกล่องคือ 7.5 x 3 ใน x 5 นิ้ว และฉันใช้วัสดุอะคริลิคหนา 1/8 ใน จากนั้น การวัดรอยบากของรอยต่อนิ้วได้รับการกำหนดค่าโดยอัตโนมัติเป็น 0.46875 นิ้ว ฉันเลือกเวอร์ชัน pdf เนื่องจากเป็นไฟล์ประเภทที่เครื่องตัดเลเซอร์อ่าน และฉันต้องการทำการเปลี่ยนแปลงบางอย่างใน Adobe กับไฟล์ ฉันเปลี่ยนสีเส้นเป็นสีแดง เพื่อให้เครื่องตัดเลเซอร์รู้ว่าต้องตัดมันออกแทนที่จะแกะสลักรูปร่าง และฉันเพิ่มกล่องสี่เหลี่ยมที่มีขนาด 3.92 นิ้ว x 1.56 นิ้วในสิ่งที่จะเป็นส่วนหน้าของ กล่อง. ฉันยังเพิ่มสี่เหลี่ยมผืนผ้าที่ตัดออกด้วยขนาด 1in x 0.5in ที่ชิ้นส่วนด้านขวาที่ด้านล่างเพื่อใช้เป็นช่องสำหรับสายไฟที่เชื่อมต่อกับนาฬิกาปลุก ครั้งสุดท้ายที่ฉันเพิ่มช่องเปิดแบบวงกลมสามช่องที่ด้านบนสำหรับออดสองตัวและปุ่ม ช่องเปิดออดมีเส้นผ่านศูนย์กลาง 0.5 นิ้ว และปุ่มเปิดคือ 0.375 นิ้ว
ขั้นตอนที่ 5: นำมันมารวมกัน
เมื่อตัดชิ้นส่วนทั้งหมดออก ฉันใช้หลอดฉีดยาและกาวอะคริลิกเพื่อผนึกเข้าด้วยกัน ฉันจับชิ้นส่วนต่างๆ เข้าด้วยกันแล้วหยดกาวระหว่างรอยบากเพื่อให้ด้านเข้าด้วยกัน แต่ด้านบนไม่ได้ติดกาว
ขั้นตอนที่ 6: รหัส
บทนำ:
โครงการนี้ถูกเข้ารหัสโดยใช้ภาษา c++ บนซอฟต์แวร์ Arduino IDE ไมโครคอนโทรลเลอร์ที่ใช้คือ NodeMCU กับ ESP8266 สำหรับโครงการนี้ เราจำเป็นต้องมีวิธีรักษาเวลาให้ถูกต้อง เสียงกริ่ง ระบบเตือนภัยที่ทำให้เสียงเตือนดังขึ้น และหน้าจอแสดงเวลาทั้งหมดและเวลาปลุก สำหรับรหัสเต็มโปรดดูที่ลิงค์นี้
การนำเข้าไลบรารี
ก่อนอื่นเราต้องนำเข้าไลบรารีที่จำเป็น
#include "RTClib.h"
#รวม "Wire.h" #รวม #รวม #รวม #รวม
การเริ่มต้นตัวแปร
ต่อไป เราต้องเริ่มต้นตัวแปรในภายหลัง กำหนดรูปแบบพินสำหรับปุ่มออด ตั้งค่า RTC และตั้งค่าที่อยู่ I2C ของจอแสดงผล LCD
LiquidCrystal_I2C จอแอลซีดี (0x27, 20, 4);
const int buzzer1 = 12; const int buzzer2 = 0; ปุ่ม int const = 2; RTC_DS3231 rtc; char daysOfTheWeek[7][12] = {"วันอาทิตย์", "วันจันทร์", "วันอังคาร", "วันพุธ", "วันพฤหัสบดี", "วันศุกร์", "วันเสาร์"} เวลาเริ่มต้น; เวลาใช้งานภายใน; int ก่อนเวลา = 0; ถ่าน ahours1[3]; ถ่าน amins1[3]; int hour1 = 0; int min1 = 0; ถ่าน ahours2[3]; ถ่าน amins2[3]; int hour2 = 0; int min2 = 0; ถ่าน ahours3[3]; ถ่าน amins3[3]; int hour3 = 0; int min3 = 0; สัญญาณเตือน int = 0; int ByteReceived; ถ่านที่ได้รับChar; const ไบต์ numChars = 32; ถ่านที่ได้รับChars[numChars];
ติดตั้ง
ต่อไป เราจำเป็นต้องมีฟังก์ชันที่เริ่มต้นกระบวนการที่จำเป็นทั้งหมด ในฟังก์ชันนี้ เราต้องเริ่มการทำงานของ LCD และพิมพ์เวลาเริ่มต้น สร้างฟังก์ชันที่เล็กลงซึ่งจะให้ RTC แบบเรียลไทม์หากยังไม่มี และเริ่มมอนิเตอร์แบบอนุกรม
การตั้งค่าเป็นโมฆะ () {
#ifndef ESP8266 ในขณะที่ (!Serial); #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(ปุ่ม, INPUT); //ตั้งค่าพินสำหรับปุ่มปิดเสียง pinMode(buzzer1, OUTPUT); // ตั้งค่าพินสำหรับเอาต์พุตเสียงกริ่ง pinMode(buzzer2, OUTPUT); // ตั้งค่าพินสำหรับเอาต์พุตออด Serial.begin(9600); Serial.println("เวลาอินพุตของการเตือนในรูปแบบ HHMM โดยไม่มีช่องว่างระหว่างสัญญาณเตือน"); เวลาเริ่มต้น = millis()/1000; }
การรับข้อมูล
ตอนนี้เราต้องสามารถรับเวลาปลุกได้ ในการทำเช่นนั้น เราได้สร้างฟังก์ชันเพื่อรับข้อมูลจากมอนิเตอร์แบบอนุกรมและจัดเก็บไว้ในอาร์เรย์
เป็นโมฆะ recvWithEndMarker () {
คงที่ int ndx = 0; เวลาสตริง = Serial.readString (); สำหรับ (ndx = 0; timein [ndx]; ndx++) { receivedChars[ndx] = timein [ndx]; } ได้รับChars[ndx] = '\0'; Serial.print(receivedChars); }
การตั้งปลุก
ขั้นตอนต่อไปคือการตั้งนาฬิกาปลุกได้ นี่คือรหัสสำหรับการเตือน 1 สำหรับสัญญาณเตือน 2 และ 3 กระบวนการเดียวกันถูกทำซ้ำโดยมีการเปลี่ยนแปลงตัวเลขเล็กน้อย
/* นาฬิกาปลุก 1*/
recvWithEndMarker(); int ชั่วโมง, m; สำหรับ (h = 0; h < 2; h ++) { ahours1[h] = getsChars[h]; } สำหรับ (m = 2; m < 4; m++) { amins1[m-2] = getsChars[m]; } ahours1[h] = '\0'; อามิน1[m-2] = '\0'; Serial.print(ahours1); Serial.print (amins1); ชั่วโมงที่ 1 = atoi(ahours1); min1 = atoi(อมินส์1); Serial.print(ชั่วโมง1); Serial.print(นาที1);
Buzzer/ปุ่ม
เมื่อเสร็จแล้ว เราจำเป็นต้องปิดเสียงกริ่งเมื่อเวลาจริงและเวลาปลุกเท่ากัน นอกจากนี้ ในขั้นตอนนี้ เราสร้างปุ่มเลื่อนการเตือนเพื่อหยุดเสียงกริ่งในขณะที่คุณกดค้างไว้
/* ปุ่มปิดเสียง */
ความเงียบภายใน; int ข; b = digitalRead(2); ถ้า (b == ต่ำ) { ความเงียบ = 1; } อื่น ๆ { ความเงียบ = 0; } /* เริ่มการเตือน */ ถ้า (ชั่วโมง == ชั่วโมง 1 && นาที == นาที1) { สัญญาณเตือน = 1; } else if (hours == hour2 && mins == min2) { alarm = 1; } else 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 ตอนนี้ = rtc.now();
int ชั่วโมง = (now.hour()); int นาที = (now.minute()); /* เวลาปลุกในรูปแบบ 00:00 */ 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); /* แสดงเวลาจาก RTC */ lcd.setCursor(0, 0); lcd.print(ชั่วโมง); lcd.print(":"); lcd.print (นาที);
ขั้นตอนที่ 7: อิเล็กทรอนิกส์
ชิ้นส่วนอิเล็กทรอนิกส์ของโครงการนี้มีหลายชิ้น ดังที่เห็นในรายการวัสดุ ภาพแรกเป็นแผนผังของโครงการอิเล็กทรอนิกส์ขั้นสุดท้าย ภาพที่สองคือการออกแบบทางอิเล็กทรอนิกส์ขั้นสุดท้ายของเรา ภาพที่สามเป็นโครงการของเราท่ามกลางต้นแบบที่สอง
ในการเริ่มต้นแนบ NodeMCU ของคุณกับปลายสุดของเขียงหั่นขนมของคุณ จากนั้นคุณจะต้องเชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์อื่นๆ ทั้งหมดของคุณกับ NodeMCU และเขียงหั่นขนม เริ่มต้นด้วยการเชื่อมต่อหน้าจอ LCD ของคุณกับพิน D1 สำหรับ SCL และ D2 สำหรับ SDA จอ LCD จะอนุญาตให้ผู้ใช้ดูเวลาปัจจุบันและเวลาปลุกที่ตั้งไว้ ตอนนี้มีสายเชื่อมต่อออดของคุณกับพิน D3 และ D6 ออดจะอนุญาตให้นาฬิกาปลุกเตือนผู้ใช้เมื่อถึงเวลาที่ตั้งไว้ ตอนนี้คุณต้องแนบปุ่มเพื่อให้สามารถหยุดการเตือนได้ แนบปุ่มนี้เพื่อตรึง D4 ตอนนี้คุณจะแนบนาฬิกาเรียลไทม์ของคุณเข้ากับเขียงหั่นขนม ต่อนาฬิกาแบบเรียลไทม์เพื่อให้ใช้หมุด SDA และ SCL เดียวกันกับที่ใช้สำหรับจอแสดงผล LCD
ขั้นตอนที่ 8: รอบชิงชนะเลิศ
หากคุณได้ติดตามข้อมูลที่ให้โครงการของคุณอาจมีลักษณะเหมือนภาพด้านบน เราหวังว่าคุณจะโชคดีในความพยายามของคุณที่จะสร้างโครงการนี้ขึ้นมาใหม่ และเมื่อคุณทำโครงการของคุณเสร็จแล้ว เราขอแนะนำให้คุณแบ่งปันรูปภาพและข้อสังเกตกับเราในความคิดเห็น ขอขอบคุณและขอให้โชคดีเพื่อนผู้สร้าง
แนะนำ:
วิศวกร Buddy Bluetooth Kbd และเมาส์: 3 ขั้นตอน
Engineers Buddy Bluetooth Kbd และ Mouse.: Engineers Buddy USB คีย์บอร์ดและโมดูลจำลองเมาส์ อุปกรณ์ขนาดเล็กที่มีประโยชน์นี้ด้วยการเชื่อมต่อแบบบลูทูธ จะเปลี่ยนโทรศัพท์/แท็บเล็ต Android ของคุณให้เป็นรีโมทคอนโทรลไร้สายสำหรับคอมพิวเตอร์ทุกเครื่อง มันให้อุปกรณ์ Android ของคุณควบคุมคอมพ์ HID ทั้งหมด
Lazy 301 Dart Buddy!: 5 ขั้นตอน
Lazy 301 Dart Buddy!: เพื่อนร่วมห้องในวิทยาลัยของฉันและฉันเพิ่งได้รับกระดานปาเป้าที่พ่ายแพ้มา … เราเริ่มสำรวจเกมอย่าง 301 ซึ่งผู้เล่นแต่ละคนเริ่มต้นที่ 301 คะแนน จนถึงจุดศูนย์ตลอดสองสามรอบ . เรื่องนี้สนุกดีแต่เขียน
Bartender's Buddy: an @ Home Creative Switch: 6 ขั้นตอน
Bartender's Buddy: an @ Home Creative Switch: คุณเคยคิดกับตัวเองในขณะที่ให้ความบันเทิงกับแขกที่บ้านหรือไม่…"Gee - ฉันหวังว่าฉันจะมีวิธีที่ไม่เหมือนใครในการแสดงให้แขกของฉันเห็นเมื่อเครื่องดื่มของพวกเขาถึงระดับการดื่มถ้วยปาร์ตี้ที่เหมาะสมที่สุด .." ?ตอนนี้คุณสามารถทำให้ความปรารถนานี้เป็นจริงกับ
Arduino Bread Board Buddy: 12 ขั้นตอน
Arduino Bread Board Buddy: ฉันสร้างวงจรทั้งหมดบนบอร์ดขนมปัง อย่างไรก็ตาม การสร้างวงจรเดียวกันเป็นร้อยๆ ครั้งอาจทำให้ดูซ้ำซากจำเจ ดังนั้นฉันจึงชอบชิ้นส่วนโมดูลาร์สำหรับการสร้างต้นแบบ วงจรส่วนใหญ่เช่นแหล่งจ่ายไฟ 5 โวลต์นั้นค่อนข้างมาตรฐาน Arduino Bread Board Budd
The Morning Machine: 5 ขั้นตอน (พร้อมรูปภาพ)
The Morning Machine: คุณเคยตื่นนอนตอนเช้าเพราะเสียงนาฬิกาปลุกที่น่ารำคาญไหม แล้วจากนั้นก็เดินไปที่ห้องครัวเพื่อพยายามเทเครื่องดื่มของคุณลงไป ดีมองไม่เพิ่มเติม! คำแนะนำนี้จะสอนวิธีทำเครื่องที่ไม่สามารถ