ในโปรเจคนี้ เราจะเรียนรู้วิธีสร้างการควบคุมการเปิด-ปิดไฟ ด้วยบลูทูธแบบ DIY โดยใช้โมดูล บลูทูธ HC-06 และ Arduino Uno โดยโปรเจคนี้เป็นการแนะนำเกี่ยวกับ IoT ซึ่งเป็นวิธีที่ยอดเยี่ยมในการเรียนรู้เกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์และการเขียนโปรแกรม ด้วยองค์ประกอบเพียงไม่กี่อย่างและทักษะการเขียนโค้ดพื้นฐานบางอย่าง คุณก็สามารถสร้างการควบคุม เปิด-ปิด ไฟด้วยการสั่งงานได้จากสมาร์ทโฟนหรือแท็บเล็ต ผ่าน Bluetooth ของคุณ

ทำไมต้องใช้บลูทูธ?

Bluetooth เป็นเทคโนโลยีการสื่อสารไร้สายที่ช่วยให้อุปกรณ์อิเล็กทรอนิกส์เชื่อมต่อและแลกเปลี่ยนข้อมูลในระยะทางสั้นๆ ทำงานบนย่านความถี่ 2.4 GHz และใช้คลื่นวิทยุในการส่งและรับข้อมูลระหว่างอุปกรณ์ นอกจากนี้ยังมีอีกหนึ่งเทคโนโลยีไร้สายที่มีชื่อเสียงนั่นคือ Wi-Fi เรายังสามารถใช้ wi-fi สำหรับโครงการบ้านอัตโนมัติ โมดูลสำหรับ wifi ที่หาได้ทั่วไปคือ ESP8266 และ ESP32 แต่ใช้งานและเขียนโค้ดใน Arduino IDE ได้ไม่ง่ายนัก ในทางกลับกัน โมดูล Bluetooth นั้นใช้งานง่ายมากและเร็วกว่าในการสื่อสารในระยะทางสั้นๆ นั่นคือเหตุผลที่เราจะใช้ Bluetooth HC-06 สำหรับโปรเจคนี้



รายการอุปกรณ์

  1. Arduino UNO R3
  2. Bluetooth HC-06 Slave
  3. Relay 4 Channel DC 5V High Level Trigger
  4. Jumper cable wire 20cm Female to Male
  5. รางถ่าน AA 8 ก้อน 12 โวลต์
  6. แจ๊กขั้วถ่าน 9 โวลต์ สำหรับ Ardiuno
  7. แผ่นอะคริลิค ขนาด A4
  8. สายไฟแดงดำ ขนาด 22AWG
  9. หลอดแอลอีดี (LED) ดีซี 12 โวลต์ สีแดง
  10. หลอดแอลอีดี (LED) ดีซี 12 โวลต์ สีเขียว
  11. หลอดแอลอีดี (LED) ดีซี 12 โวลต์ สีน้ำเงิน
  12. หลอดแอลอีดี (LED) ดีซี 12 โวลต์ สีเหลือง
  13. เสารองแผ่นพีซีบีโลหะแบบเหลี่ยม 8 mm
  14. สกรูหัวกลม+น็อตตัวเมีย ขนาด 3 มม ยาว 25 มม.


ประกอบโปรเจค

#1 – เชื่อมต่อ Bluetooth HC-06 เข้ากับบอร์ด Arduino

HC-06 <-> Arduino

RXD <——> 3
TXD <——> 2
GND <——> GND
VCC <——> 5V




#2 เชื่อมต่อ Relay 4 Channel เข้ากับบอร์ด Arduino

Relay <-> Arduino

GND <——> GND
IN1 <——-> 11
IN2 <——> 10
IN3 <——> 9
IN4 <——> 8
VCC <——> 5V

*** ขา VCC ของ Relay ใช้ร่วมกันกับ VCC ของ Bluetooth HC-06 ให้บัดกรีสายร่วมกันก่อน แล้วจึงเชื่อมต่อเข้ากับขา 5V ของ Arduino ***



#3 เชื่อมต่อ รางถ่าน และ หลอดไฟ เข้ากับ Relay





#4 เชื่อมต่อ แจ๊กขั้วถ่านกับรางถ่าน แล้วเสียบเข้าบอร์ด Arduino





#5 ภาพรวมการต่อวงจร




ทดสอบการทำงาน

#1 ติดตั้งโปรแกรม Arduino IDE


ติดตั้งโปรแกรม Arduino IDE และทดสอบตามลิงค์ด้านล่าง



#2 อัพโหลดโค้ดเข้าบอร์ด


Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3

#include <SoftwareSerial.h> // เรียกใช้ไลบรารี SoftwareSerial เพื่อสร้างพอร์ตอนุกรมเสมือน
SoftwareSerial mySerial(2, 3); // กำหนดขา 2 เป็น RX และขา 3 เป็น TX สำหรับ SoftwareSerial

char data = 0; // ตัวแปรเก็บค่าข้อมูลที่อ่านได้จาก Serial

void setup()
{
  Serial.begin(9600); // เปิดพอร์ตอนุกรมหลัก (Hardware Serial) ที่ความเร็ว 9600 bps
  while (!Serial); // รอจนกว่าพอร์ตอนุกรมพร้อมใช้งาน
  mySerial.begin(9600); // เปิดพอร์ตอนุกรมเสมือนที่ความเร็ว 9600 bps

  pinMode(8, OUTPUT); // กำหนดขา 8 เป็นเอาต์พุต
  pinMode(9, OUTPUT); // กำหนดขา 9 เป็นเอาต์พุต
  pinMode(10, OUTPUT); // กำหนดขา 10 เป็นเอาต์พุต
  pinMode(11, OUTPUT); // กำหนดขา 11 เป็นเอาต์พุต

  digitalWrite(8, HIGH); // ตั้งค่าให้ขา 8 เริ่มต้นเป็น HIGH (ปิด LED หรือรีเลย์)
  digitalWrite(9, HIGH); // ตั้งค่าให้ขา 9 เริ่มต้นเป็น HIGH
  digitalWrite(10, HIGH); // ตั้งค่าให้ขา 10 เริ่มต้นเป็น HIGH
  digitalWrite(11, HIGH); // ตั้งค่าให้ขา 11 เริ่มต้นเป็น HIGH
}

void loop()
{
  if (mySerial.available() > 0) // ตรวจสอบว่ามีข้อมูลเข้ามาในพอร์ตอนุกรมเสมือนหรือไม่
  {
    data = mySerial.read(); // อ่านข้อมูลที่รับเข้ามาเก็บในตัวแปร data
    Serial.print(data); // ส่งข้อมูลที่รับมาไปแสดงผลผ่าน Serial Monitor
    Serial.print("\n"); // ขึ้นบรรทัดใหม่ใน Serial Monitor

    if (data == 'a') // ถ้าข้อมูลที่รับเข้ามาคือ 'a'
      digitalWrite(8, LOW); // เปลี่ยนขา 8 เป็น LOW (เปิด LED หรือรีเลย์)
    else if (data == 'b') // ถ้าข้อมูลเป็น 'b'
      digitalWrite(8, HIGH); // เปลี่ยนขา 8 เป็น HIGH (ปิด LED หรือรีเลย์)

    if (data == 'c') // ถ้าข้อมูลเป็น 'c'
      digitalWrite(9, LOW); // เปลี่ยนขา 9 เป็น LOW
    else if (data == 'd') // ถ้าข้อมูลเป็น 'd'
      digitalWrite(9, HIGH); // เปลี่ยนขา 9 เป็น HIGH

    if (data == 'e') // ถ้าข้อมูลเป็น 'e'
      digitalWrite(10, LOW); // เปลี่ยนขา 10 เป็น LOW
    else if (data == 'f') // ถ้าข้อมูลเป็น 'f'
      digitalWrite(10, HIGH); // เปลี่ยนขา 10 เป็น HIGH

    if (data == 'g') // ถ้าข้อมูลเป็น 'g'
      digitalWrite(11, LOW); // เปลี่ยนขา 11 เป็น LOW
    else if (data == 'h') // ถ้าข้อมูลเป็น 'h'
      digitalWrite(11, HIGH); // เปลี่ยนขา 11 เป็น HIGH
  }
}


จากนั้น ที่รางถ่าน ให้ใส่ถ่าน ขนาด AA จำนวน 8 ก้อน และเปิดสวิตช์เพื่อจ่ายไฟให้กับแผงวงจร โดยควรมีไฟติดที่ บอร์ด Arduino ส่วนที่ Bluetooth HC-06 ควรมีไฟกระพริบ

#3 เปิดการเชื่อมต่อ Bluetooth

ที่สมาร์ทโฟน ระบบปฏิบัติการ แอนดรอยด์ (Android) เปิดการเชื่อมต่อ Bluetooth ควรเห็นอุปกรณ์ที่สามารถเชื่อมต่อชื่อ HC-06



เลือกจับคู่กับ HC-06 ใส่ PIN รหัสผ่านเป็น 1234 -> จับคู่


แสดงการจับคู่สำเร็จ



#4 ติดตั้งแอพ Arduino Bluetooth Controller


ใช้สมาร์ทโฟนดาวน์ จากข้อที่ 3 ดาวน์โหลดและติดตั้งแอพ Arduino Bluetooth Controller จาก Google Play Store


เปิดแอพ แล้วเลือก Connect to Bluetooth


เลือก HC-06



จะเห็นข้อความ Connected แสดงว่าการเชื่อมต่อกับ Bluetooth HC-06 สำเร็จแล้ว จึงทดสอบการเปิดปิดไฟ

Leave a Reply

Your email address will not be published. Required fields are marked *