สารบัญ:

นาฬิกาปลุกพระอาทิตย์ขึ้นพร้อมจอ LCD และแอพ Bluetooth: 8 ขั้นตอน
นาฬิกาปลุกพระอาทิตย์ขึ้นพร้อมจอ LCD และแอพ Bluetooth: 8 ขั้นตอน

วีดีโอ: นาฬิกาปลุกพระอาทิตย์ขึ้นพร้อมจอ LCD และแอพ Bluetooth: 8 ขั้นตอน

วีดีโอ: นาฬิกาปลุกพระอาทิตย์ขึ้นพร้อมจอ LCD และแอพ Bluetooth: 8 ขั้นตอน
วีดีโอ: ลำโพง นาฬิกา 2024, กรกฎาคม
Anonim
นาฬิกาปลุกพระอาทิตย์ขึ้นพร้อมจอ LCD และแอพ Bluetooth
นาฬิกาปลุกพระอาทิตย์ขึ้นพร้อมจอ LCD และแอพ Bluetooth
นาฬิกาปลุกพระอาทิตย์ขึ้นพร้อมจอ LCD และแอพ Bluetooth
นาฬิกาปลุกพระอาทิตย์ขึ้นพร้อมจอ LCD และแอพ Bluetooth

ฤดูหนาวอาจเศร้า ตื่นมาก็มืดแล้วต้องลุกจากเตียง สิ่งสุดท้ายที่คุณอยากได้ยินคือเสียงนาฬิกาปลุกที่น่ารำคาญ หากคุณมีปัญหาในการตื่นขึ้นในตอนเช้า นาฬิกาปลุกนี้คือสิ่งที่คุณต้องการ

ในบทช่วยสอนนี้ เราจะสร้างนาฬิกาปลุกพระอาทิตย์ขึ้น เป็นนาฬิกาปลุกแบบอื่นๆ ที่คุณสามารถตั้งเวลาชั่วโมงและนาทีที่ต้องการตื่นได้ แต่ด้วยการใช้แสงช่วยทำให้ห้องนอนสว่างขึ้นในช่วงเวลาหนึ่งเหมือนพระอาทิตย์ขึ้นเพื่อปลุกคุณให้ตื่นขึ้นแทนการรบกวน ออด!

เราจะใช้โมดูลบลูทูธเพื่อสร้างแอปที่ให้คุณตั้งเวลาปลุกผ่านโทรศัพท์เป็นนาฬิกาได้ จอ 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 และนาฬิกา
การตั้งค่าจอ LCD และนาฬิกา
การตั้งค่าจอ LCD และนาฬิกา
การตั้งค่าจอ 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

การตั้งค่าแอพ Bluetooth
การตั้งค่าแอพ Bluetooth
การตั้งค่าแอพ Bluetooth
การตั้งค่าแอพ Bluetooth
การตั้งค่าแอพ Bluetooth
การตั้งค่าแอพ Bluetooth

เพราะฉันพบว่ามันน่ารำคาญที่จะขุดลงไปในโค้ดทุกครั้งที่ฉันต้องการตั้งนาฬิกาปลุก ฉันต้องการสร้างแอปที่จะตั้งนาฬิกาปลุก ซึ่งง่ายกว่ามาก

ไปที่ https://ai2.appinventor.mit.eduhere เราสามารถสร้างแอพง่าย ๆ ที่ช่วยให้เราตั้งนาฬิกาปลุกได้ ฉันได้รวมการตั้งค่าการออกแบบที่เรียบง่าย (คุณสามารถปรับแต่งได้ในภายหลัง) และรหัสที่ใช้สำหรับ การเชื่อมต่อบลูทูธ จากนั้นคุณสามารถเผยแพร่แอปและเชื่อมต่อกับโทรศัพท์โดยใช้โค้ด QR หรือดาวน์โหลดแอปบนคอมพิวเตอร์โดยตรง จากนั้นจึงย้ายแอปโดยใช้สายเคเบิลในโทรศัพท์ (ภาพหน้าจอ)

ขั้นตอนที่ 7: สร้างเคส

การสร้างเคส
การสร้างเคส
การสร้างเคส
การสร้างเคส
การสร้างเคส
การสร้างเคส

คุณสามารถสร้างเคสอื่นได้ตลอดนาฬิกา Arduino ของคุณ ฉันใช้ไม้และลูกแก้วด้านเพื่อสร้างกล่องนาฬิกาปลุกของตัวเอง ฉันเลือกลูกแก้วแบบด้านเพื่อให้คุณมองเห็นแสงที่ส่องผ่านเคสได้ชัดเจน แต่คุณไม่สามารถมองเห็นด้านในของนาฬิกาได้

ขั้นตอนที่ 8: เสร็จแล้ว

ที่เสร็จเรียบร้อย!
ที่เสร็จเรียบร้อย!
ที่เสร็จเรียบร้อย!
ที่เสร็จเรียบร้อย!
ที่เสร็จเรียบร้อย!
ที่เสร็จเรียบร้อย!

เมื่อคุณได้อัปโหลดโค้ดไปยัง Arduino แล้ว สร้างเคสและตรวจสอบว่าคุณประกอบนาฬิกาอย่างถูกต้องหรือไม่ คุณสามารถตั้งเวลาปลุกบนแอปบลูทูธและเริ่มตื่นขึ้นอย่างเป็นธรรมชาติมากขึ้น!:)

แนะนำ: