อุปกรณ์ควบคุมด้วยเสียงผ่าน Bluetooth ด้วย 'OK Google'
นวัตกรรมด้าน home automation ได้พัฒนาไปอย่างรวดเร็ว โดยเฉพาะการควบคุมด้วยเสียงผ่านแพลตฟอร์มยอดนิยมอย่าง Google Home หรือ Amazon Echo อย่างไรก็ตาม การสำรวจโครงการอินเทอร์เน็ตส่วนใหญ่เผยให้เห็นว่าระบบควบคุมด้วยเสียงมักจะอิงกับเครือข่าย Wi-Fi เป็นหลัก แม้จะมีประสิทธิภาพสูง แต่วิธีการนี้ก็มีข้อจำกัดในเรื่องของการตั้งค่าที่ซับซ้อนและการพึ่งพา internet gateway ตลอดเวลา
ด้วยเหตุนี้ ผมจึงได้คิดค้นแนวคิดในการสร้างระบบควบคุมที่เสถียรและประหยัดพลังงานมากขึ้นโดยใช้ Bluetooth อย่างไรก็ตาม ปัญหาสำคัญของแอปพลิเคชัน Bluetooth ที่มีอยู่ในตลาดคือ "การขาด automation ที่แท้จริง" ผู้ใช้มักจะต้องหยิบโทรศัพท์ขึ้นมาและกดปุ่มบนหน้าจอเพื่อเปิดใช้งาน Google Speech Recognizer ทุกครั้ง ซึ่งขัดแย้งกับหลักการ hands-free ของ smart homes
ในโปรเจกต์นี้ ผมได้ออกแบบโซลูชันที่ผสานรวมพลังของ Google Assistant ('OK Google') เข้ากับเทคโนโลยี Bluetooth เพื่อขจัดความจำเป็นในการกดปุ่ม ทำให้เราสามารถควบคุมอุปกรณ์ต่างๆ ได้ทันทีโดยใช้เพียงคำสั่งเสียง แม้ว่า Google Home โดยทั่วไปจะรองรับ Bluetooth สำหรับ audio streaming ไปยังลำโพงเท่านั้น แต่ด้วยการพัฒนา Android application เป็นตัวกลาง เราก็สามารถส่งคำสั่งผ่าน Bluetooth ไปยัง microcontroller ได้อย่างราบรื่น
ชมวิดีโอสาธิตและขั้นตอนการสร้างได้ที่นี่:
แผนภาพ Block Diagram และสถาปัตยกรรมระบบ
ระบบนี้ทำงานโดยการผสานรวมเทคโนโลยีหลายอย่าง เริ่มต้นด้วยการรับคำสั่งเสียงผ่าน smartphone จากนั้นแปลงข้อมูลเป็นสัญญาณ Serial เพื่อส่งไปยัง hardware เป้าหมาย

ส่วนประกอบหลักของระบบ:
- Google Assistant: ทำหน้าที่เป็น Voice Trigger หรือตัวเริ่มต้นคำสั่ง เมื่อผู้ใช้พูดว่า "OK Google" ตามด้วยคำสั่งเปิดแอป ระบบจะเปิดใช้งาน Speech-to-Text module เพื่อแปลงคำพูดเป็น String
- Bluetooth HC-05 Module: เป็น wireless communication module ที่ใช้ Bluetooth 2.0 protocol และสื่อสารผ่าน UART (Universal Asynchronous Receiver-Transmitter) โดยจะรับ String จาก application และส่งต่อไปยัง Arduino ผ่าน TX/RX pins
- Arduino Microcontroller: เป็นแกนหลักสำหรับการประมวลผล logic จะทำการ String Comparison ของข้อความที่ได้รับเพื่อตรวจสอบเงื่อนไขเฉพาะ ตัวอย่างเช่น หากได้รับ "light on" จะส่งสัญญาณ Digital High ไปยัง pin ที่กำหนด
- Relay Module: ทำหน้าที่เป็น electronic switch ที่แยกส่วนควบคุมแรงดันต่ำ (5V DC) ออกจากส่วนกำลังแรงดันสูง (220V AC) เพื่อความปลอดภัยและเพื่อเปิดใช้งานการควบคุมเครื่องใช้ไฟฟ้าจริง
แผนภาพวงจรและการเชื่อมต่อทางเทคนิค
การออกแบบวงจรในโปรเจกต์นี้เน้นความเรียบง่ายแต่มีประสิทธิภาพ จุดสำคัญที่ควรทราบคือการเชื่อมต่อระดับแรงดันไฟฟ้าของสัญญาณ

รายละเอียดทางเทคนิคของการเชื่อมต่อ:
- HC-05 Bluetooth Module: เชื่อมต่อ VCC pin เข้ากับ 5V และ GND เข้ากับ GND ของ Arduino สำหรับ TX pin ของ module ให้เชื่อมต่อเข้ากับ RX pin ของ Arduino และ RX pin ของ module ให้เชื่อมต่อเข้ากับ TX pin ของ Arduino (ควรใช้ Voltage Divider หากใช้บอร์ด 3.3V เพื่อความปลอดภัยของ module)
- Relay Module: Input pin ของ Relay เชื่อมต่อกับ Arduino Digital Pin (เช่น Pin 8, 9, 10) เมื่อ Arduino ส่งสัญญาณ 'LOW' หรือ 'HIGH' (ขึ้นอยู่กับว่า Relay เป็น Active Low หรือ High) electromagnetic coil ภายใน Relay จะสร้าง magnetic field เพื่อดึง contact ทำให้วงจร AC สมบูรณ์
- Code Logic: ภายในโปรแกรม Arduino จะมีการประกาศตัวแปร
Stringเพื่อเก็บค่าที่ได้รับจากSerial.readString()ตัวอย่างเช่น:
เทคนิคสำคัญคือการใช้ functions สำหรับ trimming whitespace หรือ converting to lowercase เพื่อป้องกันข้อผิดพลาดในการประมวลผลคำสั่งจาก Google Assistantif (voice == "turn on fan") { digitalWrite(fanPin, HIGH); } else if (voice == "turn off fan") { digitalWrite(fanPin, LOW); }
โปรเจกต์นี้แสดงให้เห็นว่าเทคโนโลยีที่มีอยู่รอบตัวเราสามารถนำมาประยุกต์ใช้เพื่อสร้างความสะดวกสบายในชีวิตประจำวันได้โดยไม่ต้องลงทุนสูง ระบบนี้ไม่เพียงตอบโจทย์ความทันสมัย แต่ยังช่วยให้บุคคลที่มีข้อจำกัดทางกายภาพสามารถควบคุมสภาพแวดล้อมภายในบ้านได้อย่างง่ายดายด้วยพลังของเสียงเพียงอย่างเดียว
Bluetooth Voice Controlled Appliances with 'OK Google' Copyright (C) 2018 by Suman Kumar Das
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.