การจัดการ Firmware: โหมด AT Command ของ HC-05
โดยปกติแล้ว คุณเพียงเสียบโมดูล HC-05 เข้ากับ 5V และเชื่อมต่อกับมันโดยใช้รหัส "0000" หรือ "1234" อย่างไรก็ตาม หากคุณกำลังสร้างหุ่นยนต์ 10 ตัว คุณไม่สามารถมีโมดูล Bluetooth ที่เหมือนกัน 10 ตัวชื่อ "HC-05" ได้ เพราะมันจะเชื่อมต่อกันเองและสร้างความเสียหายให้กันและกัน! โปรเจกต์ HC-05 AT Command Mode บังคับให้คุณต้องแฮก firmware ของชิป Bluetooth โดยตรง ซึ่งจะข้ามโค้ด C++ มาตรฐานทั้งหมด และใส่ค่า configuration ระบบ "AT" แบบดิบ ๆ เหมือน DOS ลงไปใน silicon โดยตรง!

กลไก Boot-Loader ของ Hardware
คุณไม่สามารถส่ง AT system command ได้ในขณะที่โมดูลกำลังสื่อสาร คุณต้อง "Jailbreak" ลำดับการบูตของมัน!
- การตรวจสอบ
EN/Key Pin: เมื่อเชื่อมต่อสายไฟของ HC-05 (RX/TX) เข้ากับขาSoftwareSerialของArduinoคุณจะต้องต่อสายjumperจากขาEN (Enable)ของ HC-05 และเสียบเข้ากับสาย5Vโดยตรง - การกดสาย
ENให้เป็นสถานะHIGHในขณะที่เสียบArduinoเข้ากับแหล่งจ่ายไฟUSBจะบังคับให้ชิป HC-05 บูตเข้าสู่ "AT COMMAND MODE" อย่างรุนแรง ไฟLEDดวงเล็ก ๆ จะกะพริบช้า ๆ แทนที่จะกะพริบเร็ว!
การดำเนินการ AT String Payload
HC-05 ที่ทำงานใน AT mode สื่อสารด้วยความเร็วที่จำกัด: 38400 baud เท่านั้น
- ต้องใช้
serial stringที่จัดรูปแบบด้วยcarriage returnsทั้งหมด - ใช้
Serial MonitorของArduino IDEบนแล็ปท็อป คุณพิมพ์ASCII Stringsดิบ ๆ ลงในconsoleได้โดยตรง! - พิมพ์:
AT-> โมดูลตอบกลับOK! (คุณเข้าสู่โหมดได้แล้ว!) - พิมพ์:
AT+NAME=BattleBot_Alpha-> มันจะตั้งโปรแกรมSSIDสำหรับการกระจายสัญญาณวิทยุใหม่ทั้งหมด! - พิมพ์:
AT+PSWD="7788"-> โมดูลจะลบรหัสผ่านเก่าและล็อกตัวเองไม่ให้สมาร์ทโฟนใด ๆ ที่ไม่มีsecure keyเข้าถึงได้! - การตั้งค่า
Master/Slave: HC-05 ส่วนใหญ่เป็น "Slaves" (รอการเชื่อมต่อจากโทรศัพท์) คุณสามารถพิมพ์AT+ROLE=1เพื่อเปลี่ยนให้มันเป็น "Master" ได้ทันที โดยมันจะทำการค้นหาและเชื่อมต่อกับ HC-05 ตัวอื่น ๆ ได้เองโดยอัตโนมัติ!
การตั้งค่าการวินิจฉัยวิทยุที่จำเป็น
- Arduino Uno/Nano (บอร์ดใดก็ได้ที่รองรับ
SoftwareSerial logic!) - โมดูล
Bluetooth HC-05(ต้องเป็น HC-05 เท่านั้น HC-06 ที่ถูกจำกัดอย่างมากต้องใช้การเชื่อมต่อpinที่แตกต่างกันโดยสิ้นเชิง และไม่สามารถเป็นMasterได้!) Standard Breadboard Jumpers(สำหรับลำดับที่สำคัญของการกดEN pinให้เป็นHIGHระหว่างการบูตระบบ!)