กลับหน้าหลัก
views
วิธีใช้งาน Bluetooth Module HC05 กับ Arduino ผ่านมือถือ
Last updated on

วิธีใช้งาน Bluetooth Module HC05 กับ Arduino ผ่านมือถือ


วิธีใช้งาน Bluetooth Module HC05 กับ Arduino ผ่านมือถือ

HC05 เป็นโมดูล Bluetooth ที่ใช้งานง่าย ราคาถูก และสามารถสื่อสารกับ Arduino ผ่าน Serial Port ได้โดยตรง โมดูลตัวนี้เหมาะสำหรับคนที่ต้องการควบคุมอุปกรณ์อิเล็กทรอนิกส์ผ่านมือถือ ไม่ว่าจะเป็นการเปิดปิดไฟ ควบคุมมอเตอร์ หรือรับค่าจากเซนเซอร์

วงจรเชื่อมต่อ HC05 กับ Arduino UNO แสดงขา VCC, GND, TX, RX และตำแหน่ง Pin 2, Pin 3

คุณสมบัติของ HC05

HC05 มีจุดเด่นที่ต่างจาก HC06 ตรงที่สามารถตั้งค่าเป็นได้ทั้ง:

  • โหมด Slave — ให้อุปกรณ์อื่น (เช่น มือถือ) มาเชื่อมต่อ
  • โหมด Master — ให้ HC05 ไปหาเชื่อมต่อกับอุปกรณ์อื่น

การตั้งค่าต่าง ๆ เช่น ชื่ออุปกรณ์ รหัสผ่าน ทำได้ผ่าน AT Command โดยกดปุ่มบนโมดูลค้างไว้ก่อนจ่ายไฟ แล้วค่อยปล่อย

อุปกรณ์ที่ต้องใช้

อุปกรณ์จำนวน
Arduino UNO R31 บอร์ด
Bluetooth Module HC051 ตัว
Breadboard MB-1021 ตัว
สายจัมเปอร์ ผู้-เมีย4 เส้น
Power Adapter 9V 2A1 ตัว (ถ้าจ่ายไฟจากภายนอก)

การต่อวงจร HC05 กับ Arduino

การเชื่อมต่อทำได้ตามตารางด้านล่าง:

HC05Arduino
VCC5V
GNDGND
TXPin 2 (RX)
RXPin 3 (TX)
แผนผังการต่อสายระหว่าง HC05 กับ Arduino แสดงสาย 4 เส้นพร้อมสี

สิ่งที่ต้องระวังคือ HC05 รับไฟที่ 3.3V บนขา RX แต่ขา TX ของมันส่งสัญญาณออกมาเป็น 3.3V ซึ่ง Arduino UNO อ่านได้ (เพราะระดับ HIGH ของ 3.3V อยู่เหนือเกณฑ์) จึงไม่ต้องต่อ Voltage Divider ก็ใช้งานได้เลย

โค้ด Arduino สำหรับอ่านค่าจาก HC05

#include <SoftwareSerial.h>

// กำหนดขา RX = Pin 2, TX = Pin 3
SoftwareSerial mySerial(2, 3);

void setup() {
  Serial.begin(9600);
  while (!Serial) ; // รอจนกว่า Serial พร้อม (สำหรับ Leonardo)
  mySerial.begin(9600);
}

void loop() {
  // ถ้ามีข้อมูลเข้ามาจาก HC05 ให้ส่งไป Serial Monitor
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  // ถ้ามีข้อมูลจาก Serial Monitor ให้ส่งไป HC05
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

โค้ดนี้ทำหน้าที่ส่งต่อข้อมูลระหว่าง HC05 กับ Serial Monitor ของ Arduino ทุกทิศทาง เมื่อกดปุ่มในแอปบนมือถือ ค่าจะไปปรากฏที่ Serial Monitor และเราก็เห็นว่าแอปส่งอะไรมา

วิธีประยุกต์ใช้ค่าจาก Bluetooth

จากโค้ดตัวอย่าง mySerial.read() จะเก็บค่าตัวอักษรที่ส่งมาจากมือถือ เรานำค่านี้ไปเขียนเงื่อนไขควบคุมอุปกรณ์ได้เลย เช่น:

void loop() {
  if (mySerial.available()) {
    char data = mySerial.read();
    if (data == 'A') {
      digitalWrite(13, HIGH);  // เปิดไฟ LED
    } else if (data == 'B') {
      digitalWrite(13, LOW);   // ปิดไฟ LED
    }
    // แสดงค่าที่รับได้ที่ Serial Monitor
    Serial.println(data);
  }
}

ถ้าอยากควบคุมรีเลย์เพื่อเปิดปิดไฟบ้านก็ทำได้โดยต่อขา Signal ของรีเลย์เข้ากับ Pin ที่ต้องการ แล้วเปลี่ยนเงื่อนไขในโค้ดตามปุ่มที่กดในแอป

วงจรเชื่อมต่อ HC05 กับ Arduino พร้อมรีเลย์แสดงการต่อขา Signal และไฟบ้าน

ติดตั้งแอป Ardroid บนมือถือ

แอปที่ใช้กับบทความนี้ชื่อ Ardroid ดาวน์โหลดได้จาก Play Store:

ขั้นตอนการใช้งานแอป:

  1. เปิดแอป Ardroid กดปุ่ม 3 จุดมุมขวาบน
  2. เลือก Bluetooth แล้วจับคู่กับ HC05 (รหัสผ่านปกติคือ 1234)
  3. เมื่อเชื่อมต่อสำเร็จ ไฟสถานะบน HC05 จะเปลี่ยนจากกระพริบเร็วเป็นติดค้าง

แอปมีหลายหน้าสำหรับทดสอบ:

  • หน้า Digital — กด Pin1 Pin2 Pin3 เพื่อส่งค่าตัวเลขไปยัง Arduino
  • หน้า Analog — ลากแถบบาร์เพื่อส่งค่าตัวเลขแบบต่อเนื่อง
  • หน้า Data — พิมพ์ข้อความแล้วกดส่ง เช่น พิมพ์ “myarduino” แล้วกด Send ค่านั้นจะไปแสดงที่ Serial Monitor

[image: หน้าตาแอป Ardroid แสดงปุ่ม Pin1 Pin2 Pin3 ที่ใช้สำหรับทดสอบ]

วิดีโออ้างอิง

สรุป

HC05 เป็นตัวเลือกที่ดีสำหรับโปรเจกต์ที่ต้องการควบคุม Arduino ผ่านมือถือ ข้อดีคือต่อวงจรง่าย ใช้ไฟ 5V จาก Arduino ได้เลย และสื่อสารผ่าน Serial Port ทำให้เขียนโค้ดไม่ซับซ้อน ข้อควรระวังคือต้องต่อ TX ของ HC05 เข้าขา RX ของ Arduino และ RX ของ HC05 เข้าขา TX ของ Arduino ถ้าต่อกลับข้อมูลจะส่งไม่ได้

อยากทำโปรเจคแบบนี้?

รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน

หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก

จ้างทำโปรเจคเลย

ความคิดเห็น