- HM10 BLE 4.0 Module คืออะไร?
- ความแตกต่างระหว่าง HM10 และโมดูลบลูทู ธ อื่น ๆ
- ส่วนประกอบที่จำเป็น
- แผนภูมิวงจรรวม
- แอพพลิเคชั่น Arduino Bluetooth Controller (โมดูล HM-10)
- การเขียนโปรแกรม Arduino UNO เพื่อควบคุม LED โดยใช้โมดูลบลูทู ธ HM-10
บลูทู ธ เป็นหนึ่งในเทคโนโลยีไร้สายที่ได้รับความนิยมและใช้งานง่าย ในช่วงไม่กี่ปีที่ผ่านมามีการอัปเกรดมาตรฐาน Bluetooth มากมายเพื่อให้ทันกับเทคโนโลยีที่กำลังดำเนินอยู่ในปัจจุบันพร้อมกับเทคโนโลยีในอนาคตและเพื่อตอบสนองความต้องการของผู้ใช้ เริ่มตั้งแต่บลูทู ธ เวอร์ชัน 1.0 ไปจนถึงบลูทู ธ เวอร์ชัน 5.0 มีหลายสิ่งที่เปลี่ยนแปลงไปเช่นอัตราข้อมูลที่สูงขึ้นความสามารถในการใช้งาน IoT ที่มีการใช้กระแสไฟต่ำการรักษาความปลอดภัยที่ดีขึ้นเป็นต้นหากต้องการเรียนรู้การสื่อสาร Bluetooth มีโมดูลมากมาย เชื่อมต่อกับไมโครคอนโทรลเลอร์ โมดูลบลูทู ธ ดังกล่าวเป็นHM10 ซึ่งจะขึ้นอยู่กับบลูทู ธ 4.0
HM10 BLE 4.0 Module คืออะไร?
HM10 เป็นโมดูล BLE แบบอนุกรม (Bluetooth-Low-Energy) ซึ่งมีวัตถุประสงค์เพื่อใช้สำหรับแอปพลิเคชันที่ใช้พลังงานต่ำและสามารถใช้งานได้นานแม้จะใช้แบตเตอรี่ขนาดเหรียญHM10 เป็น 4.0 โมดูลบลูทู ธอยู่บนพื้นฐานของTexas Instruments CC2540 หรือ CC2541 BLE ระบบ SoC (ระบบบนชิป) เฟิร์มแวร์และการออกแบบของโมดูลผลิตและจัดการโดย Jinan Huamao Technology โมดูลมาพร้อมกับเลเยอร์อนุกรม / UART ซึ่งทำให้อุปกรณ์สามารถเชื่อมต่อกับไมโครคอนโทรลเลอร์ที่แตกต่างกันได้ HM10 เหมาะอย่างยิ่งสำหรับการสร้างการเชื่อมต่อที่เรียบง่ายและใช้ร่วมกับหรือเป็น iBeacon
HM10 กลายเป็นโมดูล Bluetooth 4.0 BLE ที่ได้รับความนิยมอย่างมาก HM10 เป็นโมดูลที่ใช้ Bluetooth 4.0 เท่านั้นดังนั้นจึงจะไม่เชื่อมต่อกับโมดูล Bluetooth 2 / 2.1 เช่น HC-05, HC-06 และโมดูลบลูทู ธ อื่น ๆ HM10 ถูกควบคุมผ่านคำสั่ง AT ที่ส่งผ่านการเชื่อมต่อ UART แบบอนุกรม HM-10 เป็นโมดูล Bluetooth Low Energy (BLE) หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ BLE ตามลิงค์ เรียนรู้วิธีการใช้โมดูล nRF24L01 เป็นโมดูล BLE กับ Arduino
ความแตกต่างระหว่าง HM10 และโมดูลบลูทู ธ อื่น ๆ
ความแตกต่างที่สำคัญของ HM10 คือเวอร์ชันบลูทู ธ HM10 เป็นโมดูลบลูทู ธ 4.0 ดังนั้นจึงมาพร้อมกับคุณสมบัติบลูทู ธ เวอร์ชัน 4.0 ทั้งหมดเช่นความเร็วปริมาณงานและช่วง HM10 ข้อเสนออัตราการส่งข้อมูลสูงสุดถึง 24 Mbps ด้วย / การบริโภคพลังงานต่ำพลังงานต่ำ นอกจากนี้HM10 ยังมีระยะทาง 100 เมตรในพื้นที่เปิดโล่ง เปรียบเทียบกับโมดูลบลูทู ธ อื่น ๆ เช่น HC-05 ซึ่งเป็นโมดูลที่ใช้บลูทู ธ 2.0 HM10 ทำงานได้ดีกว่า HC-05 อย่างแน่นอน HC-05 ให้เพียง 3 Mbps เมื่อเทียบกับ HM10 ซึ่งค่อนข้างน้อยกว่า
โมดูลบลูทู ธHC-05 และ HC-06ยังคงเป็นที่นิยมอย่างมากในหมู่ผู้ผลิตและผู้ที่ชื่นชอบงานอดิเรกเนื่องจากมีราคาถูกและง่ายต่อการเชื่อมต่อ นอกจากนี้เรายังทำโครงการมากมายโดยใช้ HC-05/06 และเชื่อมต่อกับไมโครคอนโทรลเลอร์อื่น ๆ อีกมากมาย:
- การเชื่อมต่อโมดูลบลูทู ธ กับ ESP8266: การควบคุม LED
- การเชื่อมต่อ Bluetooth HC-05 กับ STM32F103C8 Blue Pill: การควบคุม LED
- การเชื่อมต่อโมดูลบลูทู ธ HC-05 กับไมโครคอนโทรลเลอร์ AVR
- การเชื่อมต่อโมดูลบลูทู ธ HC-06 กับไมโครคอนโทรลเลอร์ PIC
- ไฟ LED ที่ควบคุมด้วยเสียงโดยใช้ Arduino และ Bluetooth
- ไฟที่ควบคุมด้วยเสียงโดยใช้ Raspberry Pi
โครงการที่เกี่ยวข้องกับ Bluetooth ทั้งหมดสามารถพบได้ที่ลิงค์นี้
วันนี้เราจะติดต่อ HM-10 BLE Module กับ Arduino Uno การควบคุม LED แบบไร้สายโดยใช้โปรโตคอลบลูทู คำสั่งเปิด / ปิดจะถูกส่งโดยสมาร์ทโฟน
ส่วนประกอบที่จำเป็น
ฮาร์ดแวร์:
- Arduino UNO
- HM10 โมดูลบลูทู ธ
- ตัวต้านทาน (1 kΩ, 470 Ω)
- สายจัมเปอร์
ซอฟต์แวร์:
- Arduino IDE
- แอพ Android Arduino Bluetooth Controller (โมดูล HM-10)
- โทรศัพท์สมาร์ท Android
แผนภูมิวงจรรวม
แผนภาพวงจรสำหรับเชื่อมต่อโมดูลบลูทู ธ Arduino และ HM-10 นั้นง่ายมากดังที่แสดงด้านล่าง
ก่อนที่จะเริ่มมีโครงการให้แน่ใจว่า HM-10 โมดูลของคุณเป็นของแท้ HM-10 โมดูล มีโมดูล HM-10 โคลนของจีนให้เลือกใช้มากมาย ในการระบุความแตกต่างระหว่างโมดูล HM-10 ของแท้และโคลนให้ดูที่ Crystal Oscillator 32KHz บนบอร์ด HM-10 หากมี Crystal Oscillator แสดงว่าเป็นโมดูล HM-10 ของแท้และคุณไม่จำเป็นต้องเปลี่ยนเฟิร์มแวร์ แต่ถ้าคุณไม่สามารถมองเห็น Crystal Oscillator แทนได้แสดงว่าเป็นโมดูล Cloned HM10 และคุณต้องเปลี่ยนเฟิร์มแวร์ของโมดูล HM-10 ที่โคลน. หากไม่เปลี่ยนเฟิร์มแวร์ HM-10 คุณจะไม่สามารถเข้าถึงโมดูล HM-10 ด้วยคำสั่ง AT และไม่สามารถจับคู่กับสมาร์ทโฟนได้ ที่นี่เรากำลังใช้โมดูลโคลนดังนั้นเราจึงแฟลชเฟิร์มแวร์ก่อนที่จะเชื่อมต่อกับ Ardruino ในการเปลี่ยนเฟิร์มแวร์ของโมดูล Cloned HM-10เพียงทำตามบทแนะนำของเราเกี่ยวกับวิธีการเปลี่ยนหรือแฟลชเฟิร์มแวร์ของโมดูล Clone HM-10
แอพพลิเคชั่น Arduino Bluetooth Controller (โมดูล HM-10)
Arduino Bluetooth Controller (โมดูล HM-10) เป็นแอปพลิเคชัน Android ที่ให้บริการฟรีบน Google Play Store แอพนี้มีอินเทอร์เฟซที่ใช้งานง่ายสำหรับ HM-10 BLE Module ขณะทำการทดสอบสามารถค้นหา HM-10 ได้อย่างรวดเร็วและเชื่อมต่อกับ HM-10 ได้ทันที แอพนี้มีคุณสมบัติเจ๋ง ๆ เช่นคุณสามารถสร้างปุ่มและปรับแต่งด้วยชื่อและฟังก์ชั่นที่กำหนดเอง ที่นี่เราจะวิธีการสร้างสองปุ่มในการตรวจสอบควบคุมบลูทู ธ ที่จะเปิดและปิดไฟ LED ที่เชื่อมต่อกับ Arduino
วิธีตั้งค่าแอพ Arduino Bluetooth Controller (โมดูล HM-10):
- ดาวน์โหลดแอพจาก Google Play Store
- หน้าแรกของแอปจะมีลักษณะดังนี้ด้านล่างซึ่งคุณจะพบคุณสมบัติต่างๆเช่นเชื่อมต่ออุปกรณ์ไอคอนค้นหาไอคอนลบสถานะอุปกรณ์ส่งข้อความเพิ่มเทมเพลตเป็นต้นเริ่มต้นด้วยการค้นหาอุปกรณ์โดยคลิกที่ไอคอนค้นหาหรือคลิก ถึงสามจุดที่มุมขวาบนและเลือกอุปกรณ์เชื่อมต่อ
- อุปกรณ์ทั้งหมดที่มีจะแสดงในหน้าจอ เลือกโมดูล HM-10 ที่ถูกต้อง
- ตอนนี้ HM-10 จะเชื่อมต่อสำเร็จและคุณจะสามารถเห็นสถานะของ HM-10 ได้ที่ด้านบนของหน้าจอ
- ตอนนี้คุณสามารถส่งข้อความหรือสตริงได้โดยตรงโดยเขียนในส่วนข้อความและกดลูกศรเพื่อส่งหรือคุณสามารถสร้างเทมเพลตที่กำหนดเองได้
- เพื่อสร้างเทมเพลตแบบกำหนดเองเพื่อประหยัดเวลา คลิกที่ไอคอน " + " ที่มุมขวาบนและกรอกรายละเอียด " ชื่อ " คือชื่อปุ่มฟิลด์ " ข้อความ " ใช้สำหรับข้อความหรือสตริงซึ่งจะส่งไปยัง HM-10 และ " คำอธิบาย " เป็นเพียงคำอธิบายปุ่มว่าปุ่มจะทำงานอย่างไร
- ประการแรกสร้างปุ่มสำหรับเปิด LEDและให้เป็นสีเขียว ปุ่มจะส่งตัวอักษร“ N” ไปยัง HM-10 ซึ่งจะเปิด LED ที่เชื่อมต่อกับ Arduino สร้างปุ่มสำหรับ LED OFF ในทำนองเดียวกันและให้เป็นสีแดง. ปุ่มจะส่งตัวอักษร“ F” ไปยัง HM-10 ซึ่งจะปิด LED ที่เชื่อมต่อกับ Arduino
- ตอนนี้คุณสามารถเห็นปุ่มสองปุ่มที่สร้างขึ้นที่ด้านล่างของฟิลด์ข้อความ ตอนนี้ถ้าคุณต้องการควบคุม LED ให้คลิกที่ปุ่ม
นี้เสร็จสิ้นการตั้งค่าหุ่นยนต์ app ที่จะควบคุม HM-10 โมดูล ตอนนี้เราจะเริ่มต้นด้วยการเขียนโปรแกรม Arduino Uno เพื่อรับตัวละครจาก Android App
การเขียนโปรแกรม Arduino UNO เพื่อควบคุม LED โดยใช้โมดูลบลูทู ธ HM-10
เช่นเคยโปรแกรมที่สมบูรณ์พร้อมวิดีโอสาธิตสามารถพบได้ในตอนท้ายของบทช่วยสอนนี้ การเขียนโปรแกรม Arduino UNO สำหรับโครงการนี้ไม่ต้องใช้ความพยายามมากหรือไลบรารีใด ๆ คุณสามารถใช้ไลบรารีอนุกรมฮาร์ดแวร์และซอฟต์แวร์ หากคุณใช้ซอฟต์แวร์ซีเรียลให้รวมไลบรารีซีเรียลของซอฟต์แวร์อื่น ๆ ให้ดำเนินการกับอนุกรมฮาร์ดแวร์ ในโครงการนี้เรากำลังใช้ SoftwareSerial ดังนั้นเริ่มต้นด้วยรวมทั้งซอฟท์แวห้องสมุดอนุกรมหมุด Rx และ Tx เชื่อมต่อที่ 2 และ 3 Pins ของ Arduino
# รวม
ตัวแปรทั้งสองนี้ใช้ในการจัดเก็บข้อมูลที่ได้รับจาก HM10 และแอพ android
ถ่าน appData; สตริง inData = "";
เพียงแค่เริ่มฮาร์ดแวร์และซอฟต์แวร์ Serial ที่อัตรารับส่งข้อมูล 9600และพิมพ์คำสั่งการดีบัก ขา LED ถูกตั้งค่าเป็นเอาต์พุตและในตอนแรกจะดับลง
Serial.begin (9600); Serial.println ("อนุกรม HM10 เริ่มต้นที่ 9600"); HM10.begin (9600); // ตั้งค่า HM10 serial ที่ 9600 baud rate pinMode (13, OUTPUT); // ออนบอร์ด LED digitalWrite (13, LOW); // ปิดไฟ LED
เริ่มฟังพอร์ต HM10และอ่านสตริงจนกว่า HM10 จะพร้อมใช้งานและส่งข้อมูล บันทึกข้อมูลในสตริง
HM10.listen (); // ฟังพอร์ต HM10 ในขณะที่ (HM10.available ()> 0) {// ถ้า HM10 ส่งบางอย่างให้อ่าน appData = HM10.read (); inData = สตริง (appData); // บันทึกข้อมูลในรูปแบบสตริง Serial.write (appData); }
สำหรับการดีบัก HM10 ด้วยคำสั่ง ATเพียงแค่เขียนบรรทัดโค้ดด้านล่างซึ่งจะส่งสตริงไปยัง HM10
ถ้า (Serial.available ()) {// อ่านอินพุตของผู้ใช้หากมี ล่าช้า (10); HM10.write (Serial.read ()); }
หากสตริงที่ได้รับคือ“ F” ให้พิมพ์ข้อความบนมอนิเตอร์แบบอนุกรมและปิดไฟ led อื่น ๆ หากสตริงที่ได้รับคือ“ N” จากนั้นพิมพ์ข้อความบนมอนิเตอร์แบบอนุกรมและกะพริบนำด้วยความล่าช้า 500 มิลลิวินาที
ถ้า (inData == "F") { Serial.println ("LED OFF"); digitalWrite (13, ต่ำ); // ปิดการ หน่วงเวลา LED (500); } if (inData == "N") { Serial.println ("LED ON"); digitalWrite (13, สูง); // ปิดการ หน่วงเวลา LED (500); digitalWrite (13, ต่ำ); // ปิดการ หน่วงเวลา LED (500); }
นี้เสร็จสิ้นการกวดวิชาที่สมบูรณ์เกี่ยวกับวิธีการควบคุม LED ใช้ Arduino และ BLE HM10 Blutooth 4.0 โมดูล อีกครั้งจำไว้ว่าถ้าคุณมีโมดูล HM10 แท้แล้วคุณไม่จำเป็นต้องแฟลชเฟิร์มของมันก็สามารถใช้งานได้ทันที แต่ถ้าคุณใช้โมดูล HM-10 ที่โคลนแล้วให้แฟลชเฟิร์มแวร์บนโมดูลโคลน HM10 BLE หากคุณมีข้อสงสัยหรือข้อเสนอแนะโปรดแสดงความคิดเห็นด้านล่างหรือเขียนลงในฟอรัมของเรา