ในโปรเจคนี้ เราจะเรียนรู้วิธีสร้างการควบคุมการเปิด-ปิดไฟ ด้วยบลูทูธแบบ DIY โดยใช้โมดูล บลูทูธ HC-06 และ Arduino Uno โดยโปรเจคนี้เป็นการแนะนำเกี่ยวกับ IoT ซึ่งเป็นวิธีที่ยอดเยี่ยมในการเรียนรู้เกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์และการเขียนโปรแกรม ด้วยองค์ประกอบเพียงไม่กี่อย่างและทักษะการเขียนโค้ดพื้นฐานบางอย่าง คุณก็สามารถสร้างการควบคุม เปิด-ปิด ไฟด้วยการสั่งงานได้จากสมาร์ทโฟนหรือแท็บเล็ต ผ่าน Bluetooth ของคุณ
ทำไมต้องใช้บลูทูธ?
Bluetooth เป็นเทคโนโลยีการสื่อสารไร้สายที่ช่วยให้อุปกรณ์อิเล็กทรอนิกส์เชื่อมต่อและแลกเปลี่ยนข้อมูลในระยะทางสั้นๆ ทำงานบนย่านความถี่ 2.4 GHz และใช้คลื่นวิทยุในการส่งและรับข้อมูลระหว่างอุปกรณ์ นอกจากนี้ยังมีอีกหนึ่งเทคโนโลยีไร้สายที่มีชื่อเสียงนั่นคือ Wi-Fi เรายังสามารถใช้ wi-fi สำหรับโครงการบ้านอัตโนมัติ โมดูลสำหรับ wifi ที่หาได้ทั่วไปคือ ESP8266 และ ESP32 แต่ใช้งานและเขียนโค้ดใน Arduino IDE ได้ไม่ง่ายนัก ในทางกลับกัน โมดูล Bluetooth นั้นใช้งานง่ายมากและเร็วกว่าในการสื่อสารในระยะทางสั้นๆ นั่นคือเหตุผลที่เราจะใช้ Bluetooth HC-06 สำหรับโปรเจคนี้
รายการอุปกรณ์
- Arduino UNO R3
- Bluetooth HC-06 Slave
- Relay 4 Channel DC 5V High Level Trigger
- Jumper cable wire 20cm Female to Male
- รางถ่าน AA 8 ก้อน 12 โวลต์
- แจ๊กขั้วถ่าน 9 โวลต์ สำหรับ Ardiuno
- แผ่นอะคริลิค ขนาด A4
- สายไฟแดงดำ ขนาด 22AWG
- หลอดแอลอีดี (LED) ดีซี 12 โวลต์ สีแดง
- หลอดแอลอีดี (LED) ดีซี 12 โวลต์ สีเขียว
- หลอดแอลอีดี (LED) ดีซี 12 โวลต์ สีน้ำเงิน
- หลอดแอลอีดี (LED) ดีซี 12 โวลต์ สีเหลือง
- เสารองแผ่นพีซีบีโลหะแบบเหลี่ยม 8 mm
- สกรูหัวกลม+น็อตตัวเมีย ขนาด 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 สำเร็จแล้ว จึงทดสอบการเปิดปิดไฟ
