กลับไปหน้ารวมไฟล์
arduino-bluetooth-hc-05-wireless-notice-board-using-lcd-898936.md

ชื่อโปรเจกต์: Arduino Bluetooth (HC-05) ป้ายประกาศไร้สายโดยใช้ LCD

การพิมพ์ข้อความจากสมาร์ทโฟน: ป้ายประกาศ Bluetooth 16x2

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

stock_counter_lcd_setup_1772706693516.png

การแยกวิเคราะห์และการสะสมข้อมูลใน Buffer

ข้อผิดพลาดที่ใหญ่ที่สุดที่ผู้เริ่มต้นมักทำคือการสมมติว่า Serial.read() อ่านได้ทั้งคำ ที่จริงแล้วมันอ่านได้เพียงหนึ่งตัวอักษร (char) เท่านั้น ('E', 'v', 'a')

  1. บัส SoftwareSerial: HC-05 ต่อสายเข้ากับ Pin 10 (RX), Pin 11 (TX)
  2. ผู้ใช้พิมพ์ ROOM LOCKED\n บนโทรศัพท์
  3. โค้ด 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 สำหรับระบบแจ้งเตือนด้วยเสียง

ข้อมูล Frontmatter ดั้งเดิม

title: "Arduino Bluetooth (HC-05) Wireless Notice Board using LCD"
description: "Serial communication streams! Completely master the UART Rx/Tx buffer structure, receiving massive text strings from Android smartphones and elegantly paginating them onto a classic 16x2 character display."
category: "Screens & Displays"
difficulty: "Intermediate"