เรียนรู้วิธีสร้าง Bluetooth Proxy ด้วย ESP32 และ ESPHome เพื่อขยายระยะการเชื่อมต่อ Bluetooth ของ Home Assistant พร้อมคำอธิบายภาษาไทยและวิธีติดตั้งทีละขั้นตอน
Bluetooth Proxy คืออุปกรณ์ที่ทำหน้าที่เป็นตัวกลางในการส่งผ่านสัญญาณ Bluetooth ระหว่างอุปกรณ์ Bluetooth Low Energy (BLE) และ Home Assistant ผ่านการเชื่อมต่อ WiFi
💡 เคล็ดลับ: สำหรับบ้านขนาดใหญ่ แนะนำให้ติดตั้ง ESP32 Bluetooth Proxy หลายตัวในตำแหน่งต่างๆ เพื่อครอบคลุมทุกห้อง เช่น ห้องนั่งเล่น ห้องนอน ครัว และโรงรถ
แนะนำให้ใช้ ESP32 รุ่นที่มี External Antenna เช่น ESP32-WROOM-32 หรือ ESP32-S3 สำหรับระยะการเชื่อมต่อที่ดีกว่า หลีกเลี่ยงรุ่นที่มี Antenna ภายในบน PCBA หากต้องการวางไว้ในกล่อง
ก่อนที่จะสร้าง Bluetooth Proxy เราต้องติดตั้ง ESPHome Add-on บน Home Assistant ก่อน
ไปที่ Settings → Add-ons → Add-on Store
พิมพ์ "ESPHome" ในช่องค้นหา แล้วเลือก ESPHome add-on
คลิก Install → รอสักครู่ → คลิก Start → เปิด Start on boot
คลิก Open Web UI เพื่อเข้าสู่หน้าจอจัดการ ESPHome
หากไม่สามารถเปิดผ่านปุ่มได้ ให้ใช้ URL นี้:http://your-home-assistant-ip:6052
ตอนนี้เราจะสร้าง configuration สำหรับ Bluetooth Proxy และอัปโหลดไปยัง ESP32
ใน ESPHome Web UI คลิก + New Device → ใส่ชื่อ (เช่น "ble-proxy-1") → คลิก Next
เลือกบอร์ด ESP32 ที่ใช้ (เช่น "ESP32-WROOM") → คลิก Next
เสียบ ESP32 เข้ากับคอมพิวเตอร์ด้วยสาย USB
คลิก Upload → รอจนกว่าการอัปโหลดเสร็จสิ้น
ไฟล์ configuration จะถูกสร้างขึ้นอัตโนมัติ แต่คุณสามารถแก้ไขเพื่อเพิ่มการตั้งค่าเพิ่มเติมได้:
# ชื่อและข้อมูลพื้นฐาน
substitutions:
name: "ble-proxy-1"
friendly_name: "Bluetooth Proxy 1"
esphome:
name: ${name}
friendly_name: ${friendly_name}
# กำหนดประเภทบอร์ด ESP32
esp32:
board: esp32dev
framework:
type: arduino
# เปิดใช้งาน WiFi
wifi:
ssid: "YOUR_WIFI_SSID"
password: "YOUR_WIFI_PASSWORD"
# เปิดใช้งาน Logging
logger:
# เปิดใช้งาน API สำหรับ Home Assistant
api:
# เปิดใช้งาน OTA
ota:
# เปิดใช้งาน Bluetooth Proxy
esp32_ble_tracker:
scan_duration: 60s # ระยะเวลาสแกน (วินาที)
# เปิดใช้งาน Bluetooth Proxy สำหรับ Home Assistant
bluetooth_proxy:
active: true # เปิด active scanning⚠️ ข้อควรระวัง: อย่าลืมเปลี่ยน YOUR_WIFI_SSID และ YOUR_WIFI_PASSWORD เป็นชื่อและรหัสผ่าน WiFi ของคุณ
หลังจากอัปโหลด firmware แล้ว ต่อไปคือเชื่อมต่อ ESP32 กับ Home Assistant
กลับไปที่หน้าจอหลักบ้าน (Home) ใน Home Assistant → คลิกที่ notification "ESPHome discovered new device" หรือไปที่ Settings → Devices & Services → Add Integration → เลือก ESPHome
ใส่ IP address ของ ESP32 หรือปล่อยให้ค้นหาอัตโนมัติ → คลิก Submit
ตรวจสอบข้อมูลที่แสดง → คลิก Submit เพื่อยืนยัน
✅ เรียบร้อย! เมื่อเชื่อมต่อสำเร็จ คุณจะเห็น ESP32 Bluetooth Proxy ปรากฏในรายการอุปกรณ์ และ Home Assistant จะเริ่มสแกนหาอุปกรณ์ Bluetooth โดยอัตโนมัติ
ตอนนี้มาทดสอบว่า Bluetooth Proxy ทำงานได้หรือไม่
ไปที่ ESPHome Web UI → คลิกที่ชื่ออุปกรณ์ → คลิก Logs
คุณควรเห็นข้อความเช่น Found device XX:XX:XX:XX:XX:XX ซึ่งแสดงว่ามีการค้นพบอุปกรณ์ BLE
ไปที่ Home Assistant → Settings → Devices & Services → Add Integration → ค้นหาอุปกรณ์ BLE (เช่น "Xiaomi Mi Temperature")
ถ้า Bluetooth Proxy ทำงาน อุปกรณ์จะถูกค้นพบและเพิ่มได้อย่างรวดเร็ว
นำอุปกรณ์ BLE (เช่นเซ็นเซอร์วัดอุณหภูมิ) ไปวางไว้ในห้องต่างๆ และดูว่า Home Assistant ยังเชื่อมต่อได้หรือไม่
สาเหตุ: รหัสผ่านผิด, อยู่ไกลเกินไปจาก AP, หรือมีการรบกวน
วิธีแก้: ตรวจสอบ SSID และ Password, ลองวางใกล้ Router หรือใช้ WiFi Extender
สาเหตุ: IP ผิด, Firewall บล็อก, หรือ ESPHome service ไม่ทำงาน
วิธีแก้: ตรวจสอบ IP ใน Router, เปิด port 6052, รีสตาร์ท ESPHome Add-on
สาเหตุ: อุปกรณ์อยู่ไกลเกินไป, แบตเตอรี่หมด, หรือไม่รองรับ
วิธีแก้: วางใกล้อุปกรณ์มากขึ้น, เปลี่ยนแบตเตอรี่, ตรวจสอบว่าอุปกรณ์รองรับ BLE
สาเหตุ: สัญญาณอ่อน, รบกวนจากอุปกรณ์อื่น, หรือแบตเตอรี่อ่อน
วิธีแก้: เพิ่ม ESP32 Proxy เพิ่ม, เปลี่ยนช่องสัญญาณ WiFi, หรือใช้ ESP32 หลายตัว
สาเหตุ: Driver USB ไม่ถูกต้อง, พอร์ตผิด, หรือบอร์ดเสีย
วิธีแก้: ติดตั้ง CP2102/CH340 driver, เปลี่ยนพอร์ต USB, ลองบอร์ดอื่น