ชื่อโปรเจกต์: Arduino Bluetooth (HC-05) ป้ายประกาศไร้สายโดยใช้ LCD
การพิมพ์ข้อความจากสมาร์ทโฟน: ป้ายประกาศ Bluetooth 16x2
จอ LCD มาตรฐานไม่สามารถเปลี่ยนข้อความได้แบบไดนามิกหากไม่มีโปรแกรมเมอร์เขียนโค้ด C++ ใหม่บนแล็ปท็อป ป้ายประกาศไร้สาย Bluetooth โดยใช้ LCD จะเปลี่ยนหน้าจอที่อยู่นิ่งให้กลายเป็นเครื่องรับข้อความ IoT แบบสด คุณสามารถส่งข้อความเตือนภัยฉุกเฉิน (Evacuate Area!) หรือข้อความเตือนประจำวันไปยังโครงสร้างอาคารทั้งหลังได้แบบไร้สาย โดยการเชื่อมต่อ HC-05 Radio เข้ากับแอปพลิเคชันบนสมาร์ทโฟน

การแยกวิเคราะห์และการสะสมข้อมูลใน Buffer
ข้อผิดพลาดที่ใหญ่ที่สุดที่ผู้เริ่มต้นมักทำคือการสมมติว่า Serial.read() อ่านได้ทั้งคำ ที่จริงแล้วมันอ่านได้เพียงหนึ่งตัวอักษร (char) เท่านั้น ('E', 'v', 'a')
- บัส SoftwareSerial: HC-05 ต่อสายเข้ากับ
Pin 10 (RX), Pin 11 (TX) - ผู้ใช้พิมพ์
ROOM LOCKED\nบนโทรศัพท์ - โค้ด C++ ใช้ลูป
while()สำหรับ buffer:
String inData = "";
while (bluetooth.available() > 0) {
char incoming = bluetooth.read();
if (incoming == '\n') { // ตัวกระตุ้นการสิ้นสุดที่แน่นอน!
processData(inData);
inData = ""; // ล้าง buffer!
break;
}
inData += incoming;
delay(3); // สำคัญ: ป้องกันไม่ให้ Arduino ตรวจสอบ buffer เร็วกว่าที่ Bluetooth สามารถส่งข้อมูลได้!
}
การคำนวณการแบ่งหน้าจอ (16 ตัวอักษร)
หน้าจอ LCD มีขนาดเล็กมาก หากสตริงข้อความคือ WELCOME TO THE MEETING ROOM EARLY ข้อความจะล้นออกขอบด้านขวาของ LCD ไปทั้งหมด!
- Uno ต้องคำนวณทางกายภาพว่า
inData.length() > 16หรือไม่ - หากสตริงมีขนาดใหญ่มาก โค้ด C++ จะต้องแบ่งมันออกเป็นส่วนๆ!
lcd.setCursor(0, 0); lcd.print(inData.substring(0, 16));(บรรทัดแรก)lcd.setCursor(0, 1); lcd.print(inData.substring(16, 32));(บรรทัดที่สอง)- A physical Buzzer ทำหน้าที่เป็นชั้นการแจ้งเตือน โดยจะส่งเสียง "BEEP-BEEP!" ที่แหลมคมเพื่อแจ้งให้ห้องทราบทันทีที่มีข้อความใหม่มาถึง!
ข้อกำหนดสำหรับการส่งข้อมูลไร้สาย
- Arduino Uno/Nano (สถาปัตยกรรมมาตรฐาน)
- HC-05 or HC-06 Bluetooth Slave Module (ต้องใช้ Resistor Voltage Divider 1k/2k เพื่อลดแรงดันไฟฟ้าจากขา 5V TX ของ Uno เพื่อไม่ให้วงจร 3.3V HC-05 RX ที่บอบบางเสียหาย!)
- 16x2 I2C Character Display Module (I2C ช่วยประหยัดสายไป 10 เส้น!)
- Standard Active Piezo Buzzer สำหรับระบบแจ้งเตือนด้วยเสียง