กลับหน้าหลัก
views
วิธีใช้งาน Bluetooth Module HC06 กับ Arduino ควบคุมเปิดปิดไฟบ้าน
Last updated on

วิธีใช้งาน Bluetooth Module HC06 กับ Arduino ควบคุมเปิดปิดไฟบ้าน


วิธีใช้งาน Bluetooth Module HC06 กับ Arduino ควบคุมเปิดปิดไฟบ้าน

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

HC06 ทำงานอย่างไร

HC06 ทำหน้าที่เป็น Slave คือรอให้อุปกรณ์อื่น (มือถือ) เชื่อมต่อเข้ามา เมื่อเชื่อมต่อสำเร็จแล้วข้อมูลจะส่งผ่าน Serial Port มาที่ Arduino สามารถตั้งค่าชื่ออุปกรณ์และรหัสผ่านได้ด้วย AT Command แต่ในบทความนี้จะเน้นการใช้งานจริงในการควบคุมรีเลย์

แผนภาพแสดงการเชื่อมต่อ HC06 กับ Arduino UNO ระหว่างกลาง และมือถือเชื่อมต่อ Bluetooth ไปที่ HC06 ด้านบน และรีเลย์ 4 ช่องอยู่ด้านล่าง Arduino

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

  • Arduino UNO R3 พร้อมสาย USB
  • Bluetooth Module HC06
  • บอร์ด Relay 4 ช่อง 5V (250V/10A)
  • Switching Power Supply 5V 5A (จ่ายไฟให้รีเลย์)
  • Power Adapter 9V 2A สำหรับ Arduino
  • MB-102 Breadboard 830 จุด
  • สายจัมเปอร์ผู้-ผู้, ผู้-เมีย, เมีย-เมีย
  • สายไฟพร้อมหัวปลั๊ก 220V AC

วงจรและการต่อสาย

ต่อ HC06 กับ Arduino

HC06Arduino
VCC5V
GNDGND
TXPin 2
RXPin 3

ต่อ Relay Module กับ Arduino

RelayArduino
VCC5V
GNDGND
IN1Pin 8
IN2Pin 9
IN3Pin 10
IN4Pin 11
วงจรแสดงการต่อสาย HC06 ไปที่ Arduino ขา 2 และ 3 และ Relay Module ไปที่ขา 8-11 พร้อมแหล่งจ่ายไฟ 5V 5A แยก

ข้อสำคัญ ต้องใช้ Switching Power Supply 5V 5A จ่ายไฟให้รีเลย์แยกต่างหาก ห้ามใช้ไฟจาก Arduino โดยตรง เพราะรีเลย์ 4 ช่องกินกระแสมากเกินไป

โค้ด Arduino อ่านค่าจาก HC06

#include <SoftwareSerial.h>

int i = 0;
char str[11] = {'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'};
SoftwareSerial mySerial(2, 3);  // RX, TX

void setup() {
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  
  // ตั้งค่า initial state ของรีเลย์ทุกตัวเป็น OFF (HIGH)
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(11, HIGH);
  
  Serial.begin(9600);
  while (!Serial) ;
  mySerial.begin(9600);
}

void loop() {
  if (mySerial.available()) {
    i = i + 1;
    str[i] = mySerial.read();
    Serial.println(str[i]);
    
    if (i == 9) i = 0;
    
    // ตรวจสอบค่าจากแอป: str[5] = หมายเลขรีเลย์, str[7] = คำสั่ง
    // คำสั่ง 3 = ON, คำสั่ง 2 = OFF
    
    // รีเลย์ตัวที่ 1
    if (str[5] == '1' && str[7] == '3') digitalWrite(8, LOW);
    if (str[5] == '1' && str[7] == '2') digitalWrite(8, HIGH);
    
    // รีเลย์ตัวที่ 2
    if (str[5] == '2' && str[7] == '3') digitalWrite(9, LOW);
    if (str[5] == '2' && str[7] == '2') digitalWrite(9, HIGH);
    
    // รีเลย์ตัวที่ 3
    if (str[5] == '3' && str[7] == '3') digitalWrite(10, LOW);
    if (str[5] == '3' && str[7] == '2') digitalWrite(10, HIGH);
    
    // รีเลย์ตัวที่ 4
    if (str[5] == '4' && str[7] == '3') digitalWrite(11, LOW);
    if (str[5] == '4' && str[7] == '2') digitalWrite(11, HIGH);
  }
  
  if (Serial.available())
    mySerial.write(Serial.read());
}

วิธีอ่านค่าที่แอปส่งมา

แอป Ardroid จะส่งค่ามาเป็นชุด เช่น เมื่อกดเปิดไฟรีเลย์ตัวที่ 1 จะส่งค่าที่มีตัวอักษร ‘1’ อยู่ใน str[5] และ ‘3’ อยู่ใน str[7] การเปิด/ปิดรีเลย์แต่ละตัวทำได้โดยกดปุ่ม Pin1-Pin4 ในแอป

ค่าที่ส่งมา: X1Y3 -> เปิดรีเลย์ 1
ค่าที่ส่งมา: X1Y2 -> ปิดรีเลย์ 1
ค่าที่ส่งมา: X2Y3 -> เปิดรีเลย์ 2
หน้าจอแอป Ardroid แสดงปุ่ม Pin1 Pin2 Pin3 Pin4 พร้อมสถานะ ON/OFF และปุ่ม Bluetooth สำหรับเชื่อมต่อ

การติดตั้งและใช้งานแอป Ardroid

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

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

https://www.youtube.com/embed/JhL1BYnjbj0

สรุป

จากบทความนี้เราได้เรียนรู้วิธีใช้ SoftwareSerial รับค่าจาก HC06 เก็บไว้ในอาร์เรย์แล้วตรวจสอบด้วย if เพื่อสั่งงานรีเลย์แต่ละตัว หลักการนี้ใช้ควบคุมอุปกรณ์อื่นได้หลากหลาย ไม่ว่าจะเป็นพัดลม ปั๊มน้ำ หรือมอเตอร์ แทนที่จะเป็นแค่ไฟบ้าน

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

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

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

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

ความคิดเห็น