สารบัญ:

OldMan และ Bluetooth2: 4 ขั้นตอน
OldMan และ Bluetooth2: 4 ขั้นตอน

วีดีโอ: OldMan และ Bluetooth2: 4 ขั้นตอน

วีดีโอ: OldMan และ Bluetooth2: 4 ขั้นตอน
วีดีโอ: วันทอง | EP.4 (FULL EP) 8 ม.ค. 65 | one31 2024, กรกฎาคม
Anonim
OldMan และ Bluetooth2
OldMan และ Bluetooth2

ดังนั้น Lazy Old Geek (L. O. G.) นี้จึงได้รับโมดูล Bluetooth HC05 จาก AliExpress.com ฉันสั่งหนึ่งอันหลังจากเขียนคำแนะนำนี้:

www.instructables.com/id/OldMan-and-Blueto…

ฉันใช้เวลาหลายชั่วโมงในการพยายามทำงานในโหมดคำสั่งโดยไม่ประสบความสำเร็จ ฉันยังทำลายโมดูล HC05 (อาจใช้แรงดันไฟฟ้าผิด) เลยต้องซื้ออีกอันหนึ่ง

เคล็ดลับ: โหมดคำสั่งกำลังคุยกับโมดูล HC05 หรือ HC06 เอง โหมดการสื่อสารกำลังคุยกับอุปกรณ์บลูทูธอื่น

สิ่งที่ฉันพบคือความแตกต่างมากมายระหว่าง HC05 และ HC06 HC05 สามารถเป็นมาสเตอร์หรือสเลฟได้ HC06 เป็นสเลฟเท่านั้น โดยพื้นฐานแล้วเจ้านายสามารถพูดคุยกับทาสได้ ทาสสองคนไม่สามารถพูดคุยกันได้ HC05 และ HC06 มีคำสั่งต่างกัน HC05 จะต้องได้รับการกำหนดค่าด้วยฮาร์ดแวร์เพื่อเข้าสู่โหมดคำสั่ง มันสามารถมีอัตรารับส่งข้อมูลที่แตกต่างกันสำหรับโหมดการสื่อสารและคำสั่ง

HC06 อยู่ในโหมดการสื่อสารและคำสั่งเสมอ การตั้งค่าอัตราบอดสำหรับอันหนึ่งจะเปลี่ยนอีกอันหนึ่ง

เคล็ดลับ: ติดตามสิ่งนี้เพราะฉันไม่ได้ทำและมีปัญหาบางอย่าง

เคล็ดลับ: HC05 และ HC06 ที่แตกต่างกันอาจแตกต่างจากที่ฉันได้รับ

HCO6 จะดำเนินการตามคำสั่ง แต่จะไม่แสดงผลที่เปลี่ยนแปลงเสมอไป เช่น เปลี่ยนชื่อ.

ขั้นตอนที่ 1: การประเมิน/แก้ไข

การประเมิน/แก้ไข
การประเมิน/แก้ไข
การประเมิน/แก้ไข
การประเมิน/แก้ไข
การประเมิน/แก้ไข
การประเมิน/แก้ไข

ที่แนบมาเป็นแผนผัง HC05 ที่คล้ายกับของฉัน ความแตกต่างสองประการที่ฉันรู้คือมีตัวต้านทาน 2.2K ระหว่าง PIO11 (34) และพิน EN และตัวควบคุม 3.3v เป็นแพ็คเกจ 3 พินและไม่มีพิน CE รูปภาพที่แนบมาเป็นแผนผังที่ทำเครื่องหมายไว้สำหรับสิ่งที่ฉันคิดว่าฉันมี

สำหรับวัตถุประสงค์ในการเขียนโปรแกรม สิ่งที่สำคัญคือพิน 34 คีย์เชื่อมต่อกับพิน EN ผ่านตัวต้านทาน 2.2K (ยังต่อกับปุ่มกดอีกด้านต่อกับ 3.3V)

สต็อก HC05 ต้องการพลังงาน 5V แม้ว่าจะใช้งานได้กับสัญญาณ 3.3V ดังนั้นฉันจึงแก้ไข HCO5 ของฉันเพื่อใช้ 3.3V แทน ฉันถอดตัวควบคุม 3.3V และรันจัมเปอร์จากพิน VCC โดยตรงไปที่ 3.3V สิ่งนี้แสดงบนแผนผังที่แก้ไขและรูปภาพ HC05 ที่แก้ไขของฉัน

อย่างไรก็ตาม HC05 Command Set.pdf ที่แนบมามีข้อมูลที่มีค่าเกี่ยวกับการใช้ HC05 แต่น่าเสียดายที่มันไม่เป็นมิตรกับผู้ใช้มากนัก

ขั้นตอนที่ 2: การเขียนโปรแกรม HC05

การเขียนโปรแกรม HC05
การเขียนโปรแกรม HC05
การเขียนโปรแกรม HC05
การเขียนโปรแกรม HC05

ฉันตัดสินใจว่าวิธีที่ง่ายที่สุดในการใช้ HC05 คือการเชื่อมต่อกับหนึ่งในอะแดปเตอร์ซีเรียล CP2102 3.3V ของฉันเหมือนกับที่ฉันทำใน Old Man And Bluetooth Instructable ด้วย HC06 ดูภาพและแผนผัง

เคล็ดลับสำคัญ: ในการเปิดเครื่อง HC05 ในโหมดคำสั่ง พิน PIO11 (34) จะต้องสูงก่อนที่จะใช้ 3.3V พิน EN บน HC05 ของฉันเชื่อมต่อกับ PIO11 ผ่านตัวต้านทาน 2.2K ดังนั้นจึงจำเป็นต้องเชื่อมโยงกับ 3.3V แผนผังแสดงสิ่งนี้เป็นหมุดของโปรแกรม แต่เพียงแค่วางจัมเปอร์จาก 3.3V เป็นพิน EN ตรวจสอบให้แน่ใจว่าคุณทำสิ่งนี้ก่อนที่จะใช้พลังงาน ของฉัน คุณสามารถบอกได้ว่าคุณอยู่ในโหมดคำสั่งหรือไม่ เพราะไฟ LED HC05 จะกะพริบช้าๆ หากกะพริบเร็ว แสดงว่าคุณอยู่ในโหมดจับคู่และต้องลองอีกครั้ง

เคล็ดลับ: HC05 ในโหมดคำสั่งจะพูดที่อัตราบอด 38400 เสมอ คำสั่งทั้งหมดเป็นตัวพิมพ์ใหญ่และต้องตามด้วย CR และ LF (ซึ่งแตกต่างจาก HC06)

เคล็ดลับ: รูปแบบคำสั่งที่เข้มงวดมาก ใช้ตัวพิมพ์ใหญ่เสมอ พวกเขาทั้งหมดเริ่มต้นด้วย "AT" ปฏิบัติตามอย่างเคร่งครัด คุณไม่สามารถเพิ่มช่องว่างที่ไม่แสดงได้

เริ่มต้นใช้งาน Arduino ไปที่ "เครื่องมือ" "พอร์ต" และเลือกพอร์ต Com ที่ CP2102 เชื่อมต่ออยู่

เปิดการตรวจสอบซีเรียล ที่ด้านล่างของหน้าต่างนั้น ให้เลือก “ทั้ง NL และ CR” และ “38400 บอด” (NL ย่อมาจาก New Line ซึ่งเหมือนกับ LF ซึ่งเป็น Line Feed)

ด้านบนสุดจะมีช่องข้างปุ่ม Send คลิกเข้าไป

บนพีซีของคุณให้เปิด Caps Lock

พิมพ์ AT

หน้าต่างขนาดใหญ่ควรแสดง “ตกลง”

คุณกำลังสื่อสารในโหมดคำสั่ง

คำสั่งบางอย่างที่ทำงานกับฉัน

ที่

AT+รีเซ็ต

AT + รุ่น?

AT+NAME?

AT+ADDR? ADDR:98D3:31:F5CB41

AT+NAME=BT1 เปลี่ยนชื่อเป็น BT1

AT + บทบาท? 0 = สเลฟ 1=มาสเตอร์

ขั้นตอนที่ 3: เยี่ยมชม HC06 อีกครั้ง

HC06 มาเยือนอีกครั้ง
HC06 มาเยือนอีกครั้ง

ความแตกต่างหลักประการหนึ่งระหว่าง HC05 และ HC06 คือ HC05 สามารถเป็นมาสเตอร์หรือสเลฟได้ ในขณะที่ HC06 เป็นสเลฟเท่านั้น นั่นหมายความว่าคุณสามารถพูดคุยระหว่าง HC05 และ HC06 ได้ อย่างไรก็ตามมีความแตกต่างอื่น ๆ มากมาย

แม้ว่าฉันจะใช้ Arduino เพื่อตั้งค่า HC06 ได้ แต่ฉันเลือกใช้ 3.3v CP2102 ดูภาพ

การเชื่อมต่อ

CP2102 HC06

Gnd Gnd

Vcc Vcc

TXD RXD

RXD TXD

โดยพื้นฐานแล้วจะเหมือนกับ HC05 ยกเว้น HC06 ของฉันมีสี่พินเท่านั้น

CP2102 ของฉันถูกดัดแปลงให้จ่ายไฟ 3.3V

HC06 ของฉันได้รับการแก้ไขให้ยอมรับ 3.3V

CP2102 USB เชื่อมต่อกับพีซีของฉันแล้ว บนพีซีของฉัน ฉันใช้ Arduino IDE

เลือก "พอร์ต" ที่ถูกต้องและเปิด Serial Monitor

ใน HC06 ของฉัน ไฟ LED สีแดงกะพริบเร็ว ซึ่งแสดงว่าพร้อมจับคู่แล้ว แต่ยังสามารถรับคำสั่งได้ด้วย

ข้อมูลบางส่วนนี้มาจาก Martyn Currey:

www.martyncurrey.com/arduino-and-hc-06-zs-0…

ดังนั้น HC06 แต่ละประเภทอาจแตกต่างกัน ฉันส่งคืน VERSION linvorV1.5

สำหรับ HC06 ของฉัน (และน่าจะทั้งหมด) ไม่มีขั้นตอนพิเศษในการเข้าสู่โหมดคำสั่ง เห็นได้ชัดว่าหากไม่มีการจับคู่ คุณสามารถส่งคำสั่งผ่านพอร์ตอนุกรมได้ตลอดเวลา

เคล็ดลับ: คุณไม่สามารถส่งคำสั่งไปยังโมดูล Bluetooth (ที่ฉันรู้จัก) ผ่าน Bluetooth ได้

เปิด Serial Monitor

คลิกที่ช่องแรกที่ด้านล่างของ Serial Monitor และตั้งค่าเป็น "no line ending"

ตอนแรก อัตราบอดของฉันคือ 9600 บอด

บนพีซีของคุณ ให้ตั้งค่า Caps Lock on

ในกล่องด้านบนพิมพ์AT

พิมพ์ Enter หรือแตะปุ่ม "ส่ง"

หน้าจอควรแสดง OK

เคล็ดลับ: หากคุณไม่ได้รับการตกลง อาจเป็นเพราะอัตรารับส่งข้อมูลมีการเปลี่ยนแปลงหรือแตกต่างกัน คุณสามารถลองหลาย ๆ อันได้จนกว่าคุณจะพบสิ่งที่ถูกต้อง

หมายเหตุ: การส่งหลายคำสั่ง ข้อมูลการตอบสนองจะไม่เลื่อนไปที่บรรทัดถัดไป ที่ด้านล่าง คุณสามารถคลิก ล้างข้อมูลออก

คำสั่งที่เหมาะกับฉัน:

การตอบสนองคำสั่ง

AT+รุ่น OKlinvorV1.5

AT+NAMEFred ส่งคืนOKsetname

(มันไม่บอกชื่อแต่ถ้าเชื่อมต่อด้วยบลูทูธก็จะปรากฏขึ้นมา)

หมายเหตุ: หากคุณเปลี่ยนชื่อ ชื่อเดิมจะแสดงบนสมาร์ทโฟนของคุณจนกว่าคุณจะยกเลิกการจับคู่และจับคู่ใหม่

AT+PINxxx ยังไม่ได้ลอง ค่าเริ่มต้นคือ 1234

AT+BAUD8 เปลี่ยนอัตราบอดเป็น 115200

การตอบสนองคืออัตราบอด เช่น 115200

(หลังจากเปลี่ยนอัตราบอดแล้ว คุณต้องเปลี่ยนอัตราบอด Serial Monitor เป็น 115200 เพื่อส่งคำสั่งเพิ่มเติม

ตัวเลือกอัตราบอด

1 1200

2 2400

3 4800

4 9600 (ค่าเริ่มต้น)

5 19200

6 38400

7 57600

8 115200

9 230400

A 4608000

ข 921600

ค 1382400

หมายเหตุ: ฉันไม่ได้ลองสูงกว่า 8 115200 ฉันได้ยินมาว่ามีคนลองใช้อัตราที่สูงกว่าด้วยผลลัพธ์ที่ไม่ดี

คำสั่งอื่นๆ ที่ควรใช้งานได้ แต่ไม่ได้ทดสอบ:

AT+PN ไม่มีการตรวจสอบความเท่าเทียมกัน (ค่าเริ่มต้น)

AT+PO การตรวจสอบความเท่าเทียมกันของคี่

AT+PE การตรวจสอบความเท่าเทียมกัน

สำคัญ: ณ จุดนี้ เราขอแนะนำให้คุณเลือกชื่อที่ไม่ซ้ำกันและใส่เข้าไป ฉันยังแนะนำให้คุณตัดสินใจเกี่ยวกับอัตราบอดที่คุณต้องการสื่อสาร ใส่ลงไป และทำเครื่องหมาย HC06 ของคุณด้วย

ขั้นตอนที่ 4: การตั้งค่า HC05 เป็น HC06

ตกลง คำแนะนำนี้มีประโยชน์กับฉันมากที่สุด:

www.instructables.com/id/How-to-Configure-…

การตั้งค่าของฉัน:

SLAVE ค้นหาที่อยู่

HC06 พร้อม CP2102 (อัตโนมัติในโหมดคำสั่ง)

เสียบสาย USB CP2102 เพื่อจ่ายไฟให้กับ HC06

ไฟ LED HC06 ควรกะพริบเร็ว (โหมดจับคู่)

บนสมาร์ทโฟนของคุณ เปิดการตั้งค่า

ไปที่บลูทูธ

ค้นหาอุปกรณ์ใหม่

หากคุณเห็นบางอย่างเช่น HC06 หรือชื่อที่คุณตั้งไว้ ให้เลือกสิ่งนี้

คุณมักจะเห็นชุดตัวเลข เช่น 00:12:09:27:19:13 น. ซึ่งก็น่าจะเป็นเช่นนั้น

เขียนที่อยู่นี้ (หมายเลขเป็นที่อยู่เฉพาะ)

เลือกเลย

เมื่อถูกถามหาพิน ให้พิมพ์ 1234

ควรแสดงชื่อ

หากคุณยังไม่มีที่อยู่ ภายใต้ “อุปกรณ์ที่เชื่อมต่อก่อนหน้านี้” ให้เลือกชื่อ

คลิกที่ข้อมูล ที่อยู่ควรปรากฏ เขียนมันลง.

หากไม่ปรากฏขึ้น ให้ออกจากการตั้งค่าและเปิดแอป Bluetooth Terminal HC-05

ภายใต้ อุปกรณ์ที่จับคู่ ให้ค้นหาชื่อ ที่อยู่ควรอยู่ด้านล่าง จดไว้

การตั้งค่าสเลฟ

หากไฟ LED HC06 ไม่กะพริบ ให้หมุนเวียนพลังงานเพื่อให้กลับเข้าสู่โหมดจับคู่

เริ่ม Arduino

ภายใต้ “เครื่องมือ” “พอร์ต” เลือกพอร์ต Com ที่ถูกต้อง

เปิด Serial Monitor

ที่ด้านล่างของหน้าต่างนี้

เลือก "ไม่มีจุดสิ้นสุดบรรทัด" และ "9600 บอด"

ผู้เชี่ยวชาญ

HC05 พร้อม CP2102 ตั้งค่าในโหมดคำสั่ง (EN กระโดดสูง)

เสียบสาย USB จาก CP2102 เข้ากับ PC

ฉันพบว่าฉันสามารถเปิด Arduinos สองตัวได้

บน Arduino ตัวที่สอง ให้เลือกพอร์ต Com ที่ถูกต้องสำหรับ HC05

เปิด Serial Monitor

ที่ด้านล่างของหน้าต่าง

เลือก “ทั้ง NL&CR” และ “38400 บอด”

ต่อไปนี้มาจากคำแนะนำข้างต้น

การกำหนดค่าหลัก

คำสั่ง AT ที่จำเป็นในการตั้งค่าคอนฟิก:

การตอบสนองคำสั่ง สิ่งที่ทำ

AT+ROLE=1 ตกลง ตั้ง HC05 เป็นมาสเตอร์

AT+CMODE=1 ตกลง เชื่อมต่อกับที่อยู่ที่ระบุ

หมายเหตุ: ที่อยู่ HC06 อาจมีรูปแบบดังนี้ 00:12:09:27:19:13

คำสั่ง BIND ต้องการ 0012, 09, 27193 นี้ (คุณเอาเครื่องหมายทวิภาคออก นำตัวเลขสี่ตัวแรก ตามด้วยเครื่องหมายจุลภาค ตัวเลขสองตัวถัดไป จากนั้นเครื่องหมายจุลภาค ตามด้วยตัวเลขหกตัวสุดท้าย)

AT+BIND=0012, 09, 271913 ตกลง เชื่อมต่อ/ผูกกับ HC06

(แต่ว่า AT+BIND ตอบสนองด้วย +BIND:12:9:271913)

(คุณต้องการให้ความเร็วในการสื่อสาร HC05 เท่ากับ HC06) ตัวอย่างเช่น:

AT+UART=115200, 0, 0 OK อัตราบอด 115200 (บิตหยุด 1 บิต ไม่มีความเท่าเทียมกัน)

เพื่อทดสอบการสื่อสาร:

ถอดจัมเปอร์ HC05 EN รอบกำลัง

เมื่อเชื่อมต่อทั้งสองแล้ว ไฟ LED HC05 จะกะพริบสองครั้งทุกๆ สองสามวินาที ไฟ LED HC06 จะสว่างต่อเนื่อง

ตั้งค่าพอร์ต com ทั้งสองให้เป็นอัตราบอดเดียวกัน (สิ่งที่คุณตั้งค่า)

ตั้งค่าทั้งคู่เป็น “ทั้ง NL&CR”

พิมพ์บางอย่างบน Serial Monitor1, Serial Monitor2 ควรแสดง

พิมพ์บางอย่างบน Serial Monitor2, Serial Monitor1 ควรแสดง

ขอแสดงความยินดี คุณกำลังสื่อสารผ่านบลูทูธ

ตอนนี้ Instructable ด้านบนมีภาพร่างเกี่ยวกับวิธีการใช้โมดูลกับ Arduino สำหรับคำแนะนำนี้ ฉันจะไม่เจาะลึกเรื่องนี้

แนะนำ: