สารบัญ:
- ขั้นตอนที่ 1: รวบรวมชิ้นส่วน
- ขั้นตอนที่ 2: การประกอบวงจร
- ขั้นตอนที่ 3: การตั้งค่าจอ LCD และนาฬิกา
- ขั้นตอนที่ 4: การเข้ารหัส
- ขั้นตอนที่ 5: เวลาสำหรับการทดสอบ
- ขั้นตอนที่ 6: การตั้งค่าแอพ Bluetooth
- ขั้นตอนที่ 7: สร้างเคส
- ขั้นตอนที่ 8: เสร็จแล้ว
วีดีโอ: นาฬิกาปลุกพระอาทิตย์ขึ้นพร้อมจอ LCD และแอพ Bluetooth: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ฤดูหนาวอาจเศร้า ตื่นมาก็มืดแล้วต้องลุกจากเตียง สิ่งสุดท้ายที่คุณอยากได้ยินคือเสียงนาฬิกาปลุกที่น่ารำคาญ หากคุณมีปัญหาในการตื่นขึ้นในตอนเช้า นาฬิกาปลุกนี้คือสิ่งที่คุณต้องการ
ในบทช่วยสอนนี้ เราจะสร้างนาฬิกาปลุกพระอาทิตย์ขึ้น เป็นนาฬิกาปลุกแบบอื่นๆ ที่คุณสามารถตั้งเวลาชั่วโมงและนาทีที่ต้องการตื่นได้ แต่ด้วยการใช้แสงช่วยทำให้ห้องนอนสว่างขึ้นในช่วงเวลาหนึ่งเหมือนพระอาทิตย์ขึ้นเพื่อปลุกคุณให้ตื่นขึ้นแทนการรบกวน ออด!
เราจะใช้โมดูลบลูทูธเพื่อสร้างแอปที่ให้คุณตั้งเวลาปลุกผ่านโทรศัพท์เป็นนาฬิกาได้ จอ LCD จะแสดงเวลา วันที่ และวันในสัปดาห์ มีโคมไฟพระอาทิตย์ขึ้นในท้องตลาด แต่อาจมีราคาแพง (การค้นหาอย่างรวดเร็วบน Google จะส่งคืนผลิตภัณฑ์ในช่วง 100 ยูโร) ซึ่งเปราะบางและดูเป็นธรรมชาติ นั่นเป็นเหตุผลที่ฉันตัดสินใจสร้างโครงการ Arduino School ของตัวเองขึ้นมาเอง ชิ้นส่วนทั้งหมดจะแสดงในขั้นตอนต่อไป สามารถดาวน์โหลดรหัสได้จาก Github repo sunrise-alarm-clock ของฉัน เอาล่ะ:)
รหัสทั้งหมดสามารถพบได้ใน:
ขั้นตอนที่ 1: รวบรวมชิ้นส่วน
เราจะใช้นาฬิกาเป็นอินพุตและไฟ LED ที่สว่างเป็นพิเศษเป็นเอาต์พุตเพื่อจำลองพระอาทิตย์ขึ้น
ในการสร้างวงจรเราต้องการ:
- Arduino Uno- โมดูลนาฬิกา RTC DS3231 - MOSFET เพื่อควบคุมความสว่างของแสง - LED ที่สว่างมาก (ฉันซื้อ 2 อัน อุ่นหนึ่งอัน เย็นหนึ่งอัน) - แบตเตอรี่ 9V สำหรับจ่ายไฟ LED - เขียงหั่นขนม- จอ LCD (16:2) - อะแดปเตอร์ Bluetooth hc-05 เพื่อให้เราสามารถใช้แอปเพื่อตั้งปลุกได้
ทุกสิ่งที่คุณต้องการสามารถซื้อได้ที่ www.martoparts.nl
ขั้นตอนที่ 2: การประกอบวงจร
คุณสามารถอ้างถึงภาพร่างสำหรับวงจรของฉัน แต่น่าเสียดายที่ฉันไม่พบ RTC DS3231 ในโปรแกรม ดังนั้นฉันจึงต้องทำสิ่งนี้ การเชื่อมต่อนั้นแตกต่างกันเล็กน้อยในความจริง นี่คือการเชื่อมต่อ (โมดูลบลูทู ธ ไม่ได้อยู่ในภาพร่าง แต่ฉันจะอธิบายวิธีการทำงานด้านล่างเพราะมันค่อนข้างยุ่งยาก)
RTC DS3231GND ไปที่ GND บน arduino
VCC ไปที่5v
SDA ไปที่ arduino
SCL ไปที่ arduinoเราจะไม่ใช้ SQW & 32KMOSFET
เกทพินไปที่พิน ~ 9 บน Arduino Uno เพราะเป็น PWMDrain พินไปที่ด้านลบของพิน LED Source ไปที่ GND บน ArduinoLCD-DisplayGND ไปที่ GND บน Arduino
VCC ไปที่ 5VSDA ไปที่ A4 บน arduinoSKL ไปที่ A5 บน arduinoLED- ไปที่ mosfet + ไปที่แบตเตอรี่ 5v9v คุณสามารถซื้อแบตเตอรี่ 9v ในร้านค้าในพื้นที่ใด ๆ เสียบเข้ากับ Arduino พร้อมแถบเชื่อมต่อ
โมดูล Bluetooth hc-055V ไปที่ 5V จาก arduino
GND ไปที่ GND บน Arduino
ตอนนี้มีอินพุตเพิ่มอีก 2 รายการ แต่ส่วนที่ยุ่งยากมาถึงแล้ว เราต้องเชื่อมต่ออินพุตตรงข้ามของ 2 อินพุตดังกล่าวบน arduinoTX จาก hc-05 ไปที่ RX บน arduinoRX จาก hc-05 ไปที่ TX บน Arduino
สำคัญ: ตรวจสอบให้แน่ใจว่าคุณได้ตัดการเชื่อมต่อ TX & RX จาก HC-05 เมื่อคุณอัปโหลดโค้ดบน Arduino ไม่เช่นนั้นคุณจะได้รับข้อผิดพลาดว่า "เกิดข้อผิดพลาดในการอัปโหลดโค้ด" ในคอมไพเลอร์
ขั้นตอนที่ 3: การตั้งค่าจอ LCD และนาฬิกา
ไลบรารีที่ใช้สำหรับจอ LCD เป็นผลึกเหลวและสามารถพบได้ที่: https://github.com/fdebrabander/Arduino-LiquidCrys… ดาวน์โหลดไฟล์ zip บันทึกแล้ววางลงในโฟลเดอร์ /libraries ของ Arduino
ห้องสมุดที่ฉันใช้เพื่อเรียกใช้นาฬิกาสามารถพบได้ที่ Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 และตรวจสอบว่าคุณอยู่ในหน้า DS3231 ดาวน์โหลดไฟล์ zip บันทึกแล้ววางลงในโฟลเดอร์ไลบรารีของ Arduino
เวลา
รวมไลบรารี DS3231 หรือ DS1307 ไว้ในโค้ด Arduino ของคุณ
ยกเลิกการใส่เครื่องหมายรหัส 3 บรรทัดเหล่านี้เพื่อตั้งเวลา:
// rtc.setDOW (วันจันทร์); // ตั้งค่าวันในสัปดาห์เป็นวันอาทิตย์// rtc.setTime(23, 57, 0); // ตั้งเวลาเป็น 12:00:00 (รูปแบบ 24 ชม.) // rtc.setDate(14, 1, 2019); // ตั้งวันที่เป็น 1 มกราคม 2557
จอ LCD
รวมไลบรารี liqduicrystal_i2c ไว้ในโค้ด Arduino ของคุณ
ในการพิมพ์บนจอ LCD ให้ใช้
lcd.setCursor(col, row) // ตำแหน่งของข้อความ printedlcd.print(~) // พิมพ์ข้อความ
ขั้นตอนที่ 4: การเข้ารหัส
ดาวน์โหลดรหัสได้ที่: github:
Uncomment 3 บรรทัดเหล่านี้เพื่อตั้งนาฬิกาบนจอ LCD ของคุณ:
// rtc.setDOW (วันจันทร์); // ตั้งวันในสัปดาห์เป็นวันอาทิตย์// rtc.setTime(23, 57, 0); // ตั้งเวลาเป็น 12:00:00 (รูปแบบ 24 ชม.) // rtc.setDate(14, 1, 2019); // ตั้งวันที่เป็น 1 มกราคม 2557
ใช้ lcd.setCuros(col, row); เพื่อกำหนดตำแหน่งของข้อความบนจอแสดงผล
lcd.setCursor(0, 2);
และ print() เพื่อพิมพ์บางอย่างบนจอแสดงผล
lcd.print(rtc.getDateStr());
เปลี่ยนตัวแปรเหล่านี้หากคุณต้องการ
int fadeTime = 1; // นานแค่ไหนที่แสงจะจางลงจนถึง maxint setHour = 02; // ตั้งเวลาปลุก (เวลาทหาร) int setMin = 49; // ตั้งค่านาทีเพื่อปลุก int uled = 9; // ตั้งค่าพินเอาต์ด้วย PWM
รหัสโมดูลบลูทูธ
สตริง firstHalf = getValue(อินพุต, ':', 0); // ตรวจสอบอินพุตแรกจนถึง ":"
สตริงวินาทีครึ่ง = getValue(อินพุต, ':', 1); // ตรวจสอบอินพุตที่สองหลังจาก ":"
// ใช้รหัสนี้หากคุณไม่ได้ใช้โมดูลบลูทูธ
// //if (t.hour == setHour && t.min == setMin) // ตรวจสอบว่าได้เวลาตื่นแล้ว! // { // เริ่ม(); // }
// ตรวจสอบอินพุต 2 หลักแรก จากนั้นตรวจสอบอินพุต 2 หลักที่สอง
ถ้า (t.hour == firstHalf.toInt() && t.min == secondHalf.toInt()) { start(); } }
// ตรรกะในการแยกสตริง
สตริง getValue (ข้อมูลสตริง ตัวคั่นอักขระ ดัชนี int) { พบ int = 0; int strIndex = { 0, -1 }; int maxIndex = data.length() - 1;
สำหรับ (int i = 0; i <= maxIndex && พบ <= ดัชนี; i ++) { if (data.charAt (i) == ตัวคั่น || i == maxIndex) { พบ ++; strIndex[0] = strIndex[1] + 1; strIndex[1] = (i == maxIndex) ? i+1: ผม; } } พบผลตอบแทน> index ? data.substring(strIndex[0], strIndex[1]): ""; }
ขั้นตอนที่ 5: เวลาสำหรับการทดสอบ
รวบรวมรหัสของคุณและทดสอบว่าส่วนประกอบทำงานหรือไม่!
ขั้นตอนที่ 6: การตั้งค่าแอพ Bluetooth
เพราะฉันพบว่ามันน่ารำคาญที่จะขุดลงไปในโค้ดทุกครั้งที่ฉันต้องการตั้งนาฬิกาปลุก ฉันต้องการสร้างแอปที่จะตั้งนาฬิกาปลุก ซึ่งง่ายกว่ามาก
ไปที่ https://ai2.appinventor.mit.eduhere เราสามารถสร้างแอพง่าย ๆ ที่ช่วยให้เราตั้งนาฬิกาปลุกได้ ฉันได้รวมการตั้งค่าการออกแบบที่เรียบง่าย (คุณสามารถปรับแต่งได้ในภายหลัง) และรหัสที่ใช้สำหรับ การเชื่อมต่อบลูทูธ จากนั้นคุณสามารถเผยแพร่แอปและเชื่อมต่อกับโทรศัพท์โดยใช้โค้ด QR หรือดาวน์โหลดแอปบนคอมพิวเตอร์โดยตรง จากนั้นจึงย้ายแอปโดยใช้สายเคเบิลในโทรศัพท์ (ภาพหน้าจอ)
ขั้นตอนที่ 7: สร้างเคส
คุณสามารถสร้างเคสอื่นได้ตลอดนาฬิกา Arduino ของคุณ ฉันใช้ไม้และลูกแก้วด้านเพื่อสร้างกล่องนาฬิกาปลุกของตัวเอง ฉันเลือกลูกแก้วแบบด้านเพื่อให้คุณมองเห็นแสงที่ส่องผ่านเคสได้ชัดเจน แต่คุณไม่สามารถมองเห็นด้านในของนาฬิกาได้
ขั้นตอนที่ 8: เสร็จแล้ว
เมื่อคุณได้อัปโหลดโค้ดไปยัง Arduino แล้ว สร้างเคสและตรวจสอบว่าคุณประกอบนาฬิกาอย่างถูกต้องหรือไม่ คุณสามารถตั้งเวลาปลุกบนแอปบลูทูธและเริ่มตื่นขึ้นอย่างเป็นธรรมชาติมากขึ้น!:)
แนะนำ:
การควบคุม LED โดยใช้โมดูล NodeMCU WiFi และแอพ Blynk: 7 ขั้นตอน
การควบคุม LED โดยใช้โมดูล NodeMCU WiFi และแอพ Blynk: คำแนะนำนี้จะแสดงวิธีควบคุม LED โดยใช้โมดูล NodeMCU ESP8266 WiFi ผ่านแอพสมาร์ทโฟน Blynk หากคุณเป็นมือใหม่ อ่านต่อ หากคุณมีประสบการณ์มากกว่านี้ คุณอาจสนใจข้ามไปจนจบ ซึ่งผมพูดถึงเ
กระดานวาดภาพ LED Bluetooth และแอพ IOS: 9 ขั้นตอน (พร้อมรูปภาพ)
Bluetooth LED Drawing Board และ IOS App: ในบทช่วยสอนนี้ คุณจะสามารถสร้างบอร์ด Bluetooth LED ที่สามารถวาดภาพจากแอพ iPhone ที่เราสร้างขึ้น ในแอพนี้ ผู้ใช้จะสามารถสร้างเกม Connect 4 ซึ่งจะแสดงบนกระดานเกมนี้ด้วย นี่จะเป็นช
หุ่นยนต์ควบคุม Wi-Fi โดยใช้ Wemos D1 ESP8266, Arduino IDE และแอพ Blynk: 11 ขั้นตอน (พร้อมรูปภาพ)
หุ่นยนต์ควบคุม Wi-Fi โดยใช้ Wemos D1 ESP8266, Arduino IDE และ Blynk App: ในบทช่วยสอนนี้ ฉันจะแสดงวิธีสร้างถังหุ่นยนต์ที่ควบคุมด้วย Wi-Fi ที่ควบคุมจากสมาร์ทโฟนโดยใช้ Blynk App ในโครงการนี้ มีการใช้บอร์ด ESP8266 Wemos D1 แต่ยังสามารถใช้เพลตรุ่นอื่นๆ ได้ (NodeMCU, Firebeetle เป็นต้น) และปริ
Laser Maze ที่ปรับแต่งได้ด้วย Arduino และแอพ Android: 13 ขั้นตอน (พร้อมรูปภาพ)
Laser Maze ที่ปรับแต่งได้ด้วย Arduino และแอพ Android: ดูเขาวงกตมากมายตั้งแต่หนังสือสำหรับเด็กไปจนถึงหุ่นยนต์ไขเขาวงกตอัตโนมัติ ที่นี่ฉันลองทำบางสิ่งที่แตกต่างออกไปเพื่อแก้เขาวงกตโดยใช้การสะท้อนด้วยเลเซอร์ เมื่อเริ่มต้นฉันคิดว่ามันง่ายมาก แต่ทำในราคาถูกต้องใช้เวลามากขึ้นในความแม่นยำ หากใครต้องการเ
8 การควบคุมรีเลย์ด้วย NodeMCU และตัวรับสัญญาณ IR โดยใช้ WiFi และ IR Remote และแอพ Android: 5 ขั้นตอน (พร้อมรูปภาพ)
8 การควบคุมรีเลย์ด้วย NodeMCU และตัวรับสัญญาณ IR โดยใช้ WiFi และ IR Remote และแอพ Android: การควบคุมสวิตช์รีเลย์ 8 ตัวโดยใช้ nodemcu และตัวรับ ir ผ่าน wifi และ ir รีโมทและแอพ android รีโมท ir ทำงานเป็นอิสระจากการเชื่อมต่อ wifi ที่นี่เป็นรุ่นปรับปรุงคลิก ที่นี่