- ส่วนประกอบที่จำเป็น
- ESP8266 HC-05 แผนภาพวงจรโมดูลบลูทู ธ
- โมดูลบลูทู ธ HC-05
- การใช้ Serial Bluetooth Terminal (Android App)
- การเขียนโปรแกรม NodeMCU ESP8266 เพื่อเชื่อมต่อบลูทู ธ
วันนี้บลูทู ธ กลายเป็นส่วนหนึ่งของอุปกรณ์ดิจิทัลและมาพร้อมกับอุปกรณ์ส่วนใหญ่เช่นสมาร์ทโฟนแล็ปท็อปพีซีกล้องนาฬิกาวงออกกำลังกายและอื่น ๆ อีกมากมาย บลูทู ธ เป็นโปรโตคอลที่มีอำนาจเหนือกว่าในการสื่อสารไร้สายนับตั้งแต่มีการค้นพบ แม้ว่าเทคโนโลยีบลูทู ธโดยพื้นฐานแล้วจะเป็นระบบเปลี่ยนสายเคเบิล แต่ก็ยังใช้ประโยชน์จากสะพานสากลกับเครือข่ายข้อมูลที่มีอยู่และกลไกการเชื่อมต่อแบบเฉพาะกิจสำหรับจำนวนอุปกรณ์ในการกำหนดค่าต่างๆ เราใช้โมดูลบลูทู ธ HC05 และ HC06 ร่วมกับไมโครคอนโทรลเลอร์อื่น ๆ อีกมากมายเพื่อให้สื่อสารแบบไร้สาย:
- การเชื่อมต่อ Bluetooth HC-05 กับ STM32F103C8 Blue Pill: การควบคุม LED
- การเชื่อมต่อโมดูลบลูทู ธ HC-05 กับไมโครคอนโทรลเลอร์ AVR
- หุ่นยนต์ควบคุม Android โดยใช้ไมโครคอนโทรลเลอร์ 8051
- การควบคุม Raspberry Pi GPIO โดยใช้ Android App ผ่าน Bluetooth
- รถของเล่นที่ควบคุมด้วยบลูทู ธ โดยใช้ Arduino
วันนี้เราจะเชื่อมต่อโมดูลบลูทู ธ HC-05 กับโมดูล Wi-Fi ยอดนิยม ESP8266และควบคุม LED แบบไร้สายโดยส่งคำสั่งผ่านบลูทู ธ LED นี้สามารถแทนที่ได้ด้วยรีเลย์และอุปกรณ์ AC เพื่อสร้างแอปพลิเคชันระบบอัตโนมัติในบ้าน
ส่วนประกอบที่จำเป็น
ฮาร์ดแวร์:
- NodeMCU ESP8266
- โมดูลบลูทู ธ HC-05
ซอฟต์แวร์:
- Arduino IDE
- Serial Bluetooth Terminal (Android App): เพื่อตรวจสอบข้อมูล Bluetooth บนโทรศัพท์สมาร์ทโฟน
ESP8266 HC-05 แผนภาพวงจรโมดูลบลูทู ธ
แผนภาพวงจรสำหรับเชื่อมต่อโมดูลบลูทู ธ HC-05 กับ NodeMCU ESP8266นั้นง่ายมากและแสดงไว้ด้านล่าง:
จำเป็นต้องใช้โมดูลบลูทู ธ ภายนอกกับ ESP8266 เนื่องจากไม่มีบลูทู ธ ในตัวเช่น ESP32 ESP32 มี Bluetooth Low Energy (BLE) และ Classic Bluetoothในตัวซึ่งก่อนหน้านี้เราได้กล่าวถึงบทช่วยสอนบางส่วน:
- ESP32 BLE Server - บริการ GATT สำหรับการระบุระดับแบตเตอรี่
- ไคลเอนต์ ESP32 BLE - การเชื่อมต่อกับ Fitness Band เพื่อทริกเกอร์ Bulb
- วิธีใช้ Serial Bluetooth ใน ESP32
โมดูลบลูทู ธ HC-05
HC-05 เป็นโมดูลบลูทู ธ แบบอนุกรม สามารถกำหนดค่าได้โดยใช้คำสั่ง AT สามารถทำงานในการกำหนดค่าที่แตกต่างกันสามแบบ (Master, Slave, Loop back) ในโครงการของเราเราจะใช้มันเป็นทาส คุณสมบัติของโมดูล HC-05 ประกอบด้วย
- ความไว -80dBm ทั่วไป
- อัตราการส่งข้อมูลเริ่มต้น: 9600bps, 8 บิตข้อมูล, 1 บิตหยุด, ไม่มีความเท่าเทียมกัน
- รหัสพินที่จับคู่อัตโนมัติ: รหัสพินเริ่มต้น“ 1234” หรือ“ 0000”
- มี 6 พิน
- หมุด Vcc และ Gnd ใช้สำหรับเปิดเครื่อง HC-05
- หมุด Tx และ Rx ใช้สำหรับสื่อสารกับไมโครคอนโทรลเลอร์
- เปิดใช้งานพินเพื่อเปิดใช้งานโมดูล HC-05 เมื่ออยู่ในระดับต่ำโมดูลจะถูกปิดใช้งาน
- หมุดสถานะทำหน้าที่แสดงสถานะ เมื่อไม่ได้จับคู่ / เชื่อมต่อกับอุปกรณ์ Bluetooth อื่นไฟ LED จะกะพริบอย่างต่อเนื่อง เมื่อเชื่อมต่อ / จับคู่กับอุปกรณ์ Bluetooth อื่น ๆ แล้วไฟ LED จะกะพริบพร้อมกับความล่าช้าคงที่ 2 วินาที
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับโมดูลบลูทู ธ ให้ไปที่โครงการอื่น ๆ ที่เกี่ยวข้องกับ Bluetooth ของเรา
การใช้ Serial Bluetooth Terminal (Android App)
การใช้แอพนี้ง่ายมากและต้องใช้ขั้นตอนไม่กี่ขั้นตอน ภาพหน้าจอมีขั้นตอนด้านล่าง เพียงแค่จับคู่HC-05 กับมาร์ทโฟน รหัสเริ่มต้นคือ "0000" หรือ "1234" แต่ส่วนใหญ่ "1234" ใช้งานได้
- ขั้นแรกดาวน์โหลดและติดตั้งแอพจากนั้นไปที่อุปกรณ์เพื่อค้นหาโมดูล HC-05 เลือกโมดูล HC-05 ที่ค้นหาในแอป หากไม่พบให้ตรวจสอบว่า HC-05 ขับเคลื่อนอย่างถูกต้องหรือไม่
- หลังจากคลิก HC-05 มันจะเชื่อมต่อ ตอนนี้พิมพ์ข้อความใดก็ได้ในกล่องข้อความแล้วส่ง มันจะพิมพ์บน Arduino Serial Monitor
การเขียนโปรแกรม NodeMCU ESP8266 เพื่อเชื่อมต่อบลูทู ธ
สำหรับการเขียนโปรแกรม NodeMCU ESP8266 โดยใช้ ArduinoIDE เพียงแค่เสียบจากแล็ปท็อปหรือพีซีโดยใช้สาย Micro USB และเปิด Arduino IDE สำหรับบทช่วยสอนนี้จะใช้อนุกรมฮาร์ดแวร์และอนุกรมซอฟต์แวร์ อนุกรมฮาร์ดแวร์จะใช้ในการอ่านและเขียนข้อมูลไปยัง Arduino Serial Monitor และ Sofware Serial จะใช้สื่อสารกับ HC-05 เช่นเคยรหัสที่สมบูรณ์และวิดีโอสาธิตจะได้รับในตอนท้ายของบทช่วยสอน
ในขั้นต้นให้รวมไลบรารีซอฟต์แวร์อนุกรมเนื่องจากจะใช้ในบทช่วยสอนนี้
# รวม
กำหนดพิน RX และ TX สำหรับการสื่อสารแบบอนุกรมของซอฟต์แวร์และกำหนดพิน led ที่เชื่อมต่อกับ NodeMCU เรากำลังใช้ LED ภายในของ NodeMCU ซึ่งอยู่ที่ Pin D4
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
เริ่มซอฟต์แวร์และฮาร์ดแวร์ Serial ที่ 9600 baud rate ตั้ง Led Pin เป็นเอาต์พุต พิมพ์ข้อความต้อนรับและแก้ไขข้อบกพร่อง
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, เอาท์พุท); Serial.println ("เริ่ม… ");
ประการแรกอ่านจากโมดูลบลูทู ธ และกำหนดกรณีที่หากโมดูลบลูทู ธ ได้รับ“ B” จากโทรศัพท์ให้เริ่มไฟ LED กะพริบที่เชื่อมต่อกับ D4 ของ NodeMCU หากได้รับ“ S” จากนั้นไฟ LED จะหยุดกะพริบ เราไม่ได้ใช้การ หน่วงเวลา () ที่นี่ แต่ Arduino 'มิลลิวินาที' จะถูกใช้เพื่อไม่ให้ขัดขวางประสิทธิภาพของ Arduino
ถ้า (btSerial.available ()> 0) { char data = btSerial.read (); สวิตช์ (ข้อมูล) { case 'B': ledB = "กะพริบ"; หยุดพัก; กรณี 'S': ledB = "หยุด"; หยุดพัก; ค่าเริ่มต้น: ทำลาย; } }
มิลลิวินาทีถูกกำหนดและตั้งค่าการหน่วงเวลาที่ 500ms กล่าวคือไฟ LED จะกะพริบทุก ๆ 500 มิลลิวินาที นอกจากนี้คุณสามารถกำหนดค่าการหน่วงเวลานำโดยเปลี่ยนค่าของ 'ช่วงเวลา' สถานะนำจะถูกสลับ
กระแสไฟยาวที่ไม่ได้ลงชื่อ = millis ();
ถ้า (ledB == "กะพริบ") { Serial.println ("เริ่มกะพริบ"); ถ้า (currentMillis - previousMillis> = ช่วงเวลา) { previousMillis = currentMillis; ถ้า (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite (led, ledState); } }
และสิ่งนี้จะเสร็จสิ้นการNodeMCU การเขียนโปรแกรมเพื่อการกะพริบไฟ LED แบบไร้สายโดยใช้ Bluetooth คุณยังสามารถเปลี่ยนโปรแกรมเพื่อทำงานต่าง ๆ ด้วย LED เช่น LED สามารถแทนที่ด้วยรีเลย์พร้อมอุปกรณ์ AC เพื่อสร้างโครงการบลูทู ธ โฮมอัตโนมัติ ในกรณีที่มีข้อสงสัยหรือข้อเสนอแนะโปรดไปที่ฟอรัมหรือแสดงความคิดเห็นด้านล่าง