ชื่อโปรเจกต์: วิธีที่ง่ายที่สุดในการควบคุม Arduino ของคุณด้วยอุปกรณ์มือถือ!
การเชื่อมต่อ Serial โดยตรง: สมาร์ทโฟน Bluetooth สู่ Arduino
โปรเจกต์ Wi-Fi IoT มักจะตั้งค่ายุ่งยากอย่างไม่น่าเชื่อ โดยต้องกำหนดค่า IP Addresses, router firewalls และ MQTT Cloud dashboards โปรเจกต์ การควบคุมอุปกรณ์มือถือที่ง่ายที่สุด นี้อาศัยความเรียบง่ายดิบ ๆ ของ Bluetooth Classic / BLE (Bluetooth Low Energy) เป็นหลัก! ด้วยการใช้โมดูล HC-05 ราคาถูกอย่างเหลือเชื่อ หรือโมดูล HM-10 ขั้นสูง, Arduino จะทำงานเหมือนกับ Wireless Serial Monitor ทุกประการ เปิด Bluetooth Terminal App ฟรีบนอุปกรณ์ Android ใดก็ได้ กดเชื่อมต่อ แล้วพิมพ์ "1" ลงในโทรศัพท์อย่างรวดเร็ว จะส่งอักขระ ASCII ตรง ๆ ข้ามย่านความถี่ RF 2.4GHz ตรงไปยัง pin ของ Arduino ทันที!

โปรโตคอลการบายพาสทางกายภาพด้วย SoftwareSerial
คุณต้องไม่ต่อ TX และ RX pin ของโมดูล Bluetooth เข้ากับ Pin 0 และ 1 ของ Arduino โดยตรง! หากคุณทำเช่นนั้น คุณจะไม่สามารถอัปโหลดโค้ดใหม่จาก PC ได้เลย เพราะชิป Bluetooth จะไปบล็อกชิป USB อย่างรุนแรง!
- คุณใช้สถาปัตยกรรมจำลองของ
<SoftwareSerial.h>! - คุณประกาศ Pins
10และ11ให้เป็นพอร์ต Serial ฮาร์ดแวร์เสมือน - โมดูล Bluetooth ที่ทรงพลังอย่างเหลือเชื่อจะสื่อสารกับ Arduino ผ่านช่องทางด้านข้างทั้งหมด ปล่อยให้ Main
Serial.println()bus ว่างอย่างเต็มที่สำหรับการดีบักบน PC!
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX (Connects to BT TX), TX (Connects to BT RX - via divider!)
int LED_PIN = 13;
void setup() {
Serial.begin(9600); // The PC Debugger Pipeline!
BTSerial.begin(9600); // The Bluetooth 2.4GHz RF Pipeline!
pinMode(LED_PIN, OUTPUT);
}
void loop() {
if (BTSerial.available()) { // The exact second a character is received from Android!
char incomingByte = BTSerial.read();
if (incomingByte == '1') {
digitalWrite(LED_PIN, HIGH);
BTSerial.println("Arduino: LED IGNITED NATIVELY!"); // Send a text message BACK to the Phone!
}
else if (incomingByte == '0') {
digitalWrite(LED_PIN, LOW);
BTSerial.println("Arduino: LED EXTINGUISHED!");
}
}
}
อันตรายจากการทำลาย Logic 5V (Voltage Divider)
โมดูล Bluetooth ส่วนใหญ่ (HC-05, HM-10, JDY-31) ทำงานภายในด้วย Logic 3.3 โวลต์!
- แม้ว่าโดยปกติจะมีวงจร regulator 5V ในตัวที่จ่ายไฟ VCC ให้ แต่
RX (Receive)Pin จริง ๆ นั้นไม่มีการป้องกันใด ๆ เลย! - หากขา Transmit (
TX Pin 11) ของ Arduino SoftwareSerial ส่งสัญญาณ 5V HIGH แบบคลื่นสี่เหลี่ยมที่รุนแรงตรงไปยังRXpin ของ Bluetooth จะทำให้ชิป Bluetooth พังอย่างสมบูรณ์! - คุณต้องต่อวงจร Voltage Divider โดยเฉพาะ! (ตัวต้านทาน
1K-Ohmจาก Arduino ไปยัง BT RX, และตัวต้านทาน2K-Ohmจาก BT RX ไปยัง GND) เพื่อลดแรงดันไฟฟ้าให้ปลอดภัยที่ 3.3V!
ฮาร์ดแวร์สำหรับเชื่อมต่อสมาร์ทโฟนแบบไร้สาย
- Arduino Uno/Nano (จัดการการแปลงอักขระแบบ dual-serial ได้อย่างราบรื่นและเป็นธรรมชาติ!)
- HC-05 (Classic OS) หรือ HM-10 (BLE iOS Compatible) (Bluetooth transceivers)
- Voltage Divider Array (ตัวต้านทาน 1K และ 2K Ohm จำเป็นอย่างยิ่งสำหรับการใช้งานฮาร์ดแวร์!)
- Android Smartphone หรือ iPhone (ใช้แอปพลิเคชัน "Bluetooth Serial Terminal" ทั่วไปที่เรียบง่ายอย่างเหลือเชื่อ หลีกเลี่ยงความจำเป็นในการเขียนโค้ด UI ของ Java/Swift โดยเฉพาะ!)