กำลังเชื่อมต่อบลูทูธ hc 05 กับ Arduino บทเรียน Arduino: การควบคุมอุปกรณ์จากสมาร์ทโฟนสำหรับหุ่นจำลอง เชื่อมต่อจากสมาร์ทโฟนโดยใช้ Bluetooth Terminal

นกหวีด Bluetooth สำหรับคอมพิวเตอร์: http://ali.pub/2jfj3y

ก่อนอื่น เรามาดูกันว่าบลูทูธคืออะไร

บลูทู ธ(จากคำภาษาอังกฤษ สีน้ำเงิน - สีน้ำเงิน และ ฟัน - ฟัน; ออกเสียง /bluːtuːθ/) บลูทู ธ- ข้อกำหนดการผลิตเครือข่ายส่วนบุคคลแบบไร้สาย ( เครือข่ายพื้นที่ส่วนบุคคลไร้สาย WPAN). บลูทูธทำให้สามารถแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ต่างๆ เช่น คอมพิวเตอร์ส่วนบุคคล(เดสก์ท็อป กระเป๋า แล็ปท็อป) โทรศัพท์มือถือ, เครื่องพิมพ์, กล้องดิจิตอล, เมาส์, คีย์บอร์ด, จอยสติ๊ก, หูฟัง, ชุดหูฟังบนความถี่วิทยุที่เชื่อถือได้ ฟรี และใช้ได้ในระดับสากลสำหรับการสื่อสารระยะสั้น บลูทูธช่วยให้อุปกรณ์เหล่านี้สื่อสารเมื่ออยู่ภายในรัศมีไม่เกิน 10 เมตรจากกัน (ระยะจะแตกต่างกันมากขึ้นอยู่กับสิ่งกีดขวางและการรบกวน) แม้ในห้องต่างกัน

เมื่อทราบว่ามีการใช้บลูทูธเพื่อสร้างเครือข่ายและแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ เราจะใช้บลูทูธเพื่อเชื่อมต่อเครื่อง CNC (CNC) กับคอมพิวเตอร์ โทรศัพท์ หรือแท็บเล็ตและแล็ปท็อป

เนื่องจากฉันใช้เฟิร์มแวร์ grbl บนแพลตฟอร์ม Arduino เพื่อควบคุม CNC เราจะเชื่อมต่อโมดูลบลูทูธที่เหมาะสมสำหรับ Arduino เข้ากับเครื่อง ได้แก่ โมดูลบลูทูธ HC-06

ก่อนที่จะเชื่อมต่อโมดูล Bluetooth เข้ากับ Arduino คุณต้องตรวจสอบให้แน่ใจว่าโมดูล Bluetooth และ Arduino ทำงานที่ความเร็วเท่ากันของพอร์ต COM

หากคุณใช้เฟิร์มแวร์ grbl 0.8 คุณไม่จำเป็นต้องเปลี่ยนแปลงอะไรเลย แต่ถ้า grbl 0.9 ขึ้นไปความเร็วของพอร์ต Arduino COM จะกลายเป็น 115200 และความเร็วเริ่มต้นของโมดูลคือ 9600

ดังนั้นเราจึงจำเป็นต้องเปลี่ยนความเร็วพอร์ตบนโมดูล Bluetooth เอง

ในการกำหนดค่าโมดูล Bluetooth มีสิ่งพิเศษคือ คำสั่งเอทีซึ่งเราสามารถตั้งค่าพารามิเตอร์โมดูลที่จำเป็นได้

การใช้คำสั่ง AT เราสามารถเปลี่ยนความเร็วของพอร์ต COM หรือเปลี่ยนชื่อได้ อุปกรณ์บลูทูธหรือค้นหาหรือเปลี่ยนรหัส PIN สำหรับการจับคู่

ในการเชื่อมต่อโมดูล Bluetooth เข้ากับคอมพิวเตอร์เพื่อป้อนคำสั่ง AT เราจะต้องมีโปรแกรมเมอร์ FTDI (ลิงก์ไปที่ตอนต้นของบทความ) ฉันคิดว่าแผนภาพการเชื่อมต่อไม่จำเป็นที่นี่ คุณต้องเชื่อมต่อ gnd กับ gnd, 5v ถึง 5v, rx ถึง tx และ tx ถึง rx

หลังจากเชื่อมต่อแล้ว เราจะต้องมีโปรแกรม HMComAssistant เพื่อป้อนคำสั่ง AT และตั้งโปรแกรมโมดูลของเรา ดาวน์โหลด: https://yadi.sk/d/eVzPmnh63Wab5R

ที่นี่ฉันจะให้คำสั่ง AT สำหรับเปลี่ยนการตั้งค่าของโมดูล Bluetooth:

คำสั่งเอที การตอบสนองของโมดูล ความคิดเห็น
ที่ ตกลง ตามกฎแล้วใช้เพื่อทดสอบการสื่อสารก่อนดำเนินการใด ๆ คำสั่งนี้จะใช้เพื่อทดสอบการสื่อสารก่อน
AT+BAUD1 ตกลงหรือตกลง1200 ตั้งค่าอัตราการถ่ายโอนข้อมูลเป็น 1200 บอด
AT+BAUD2 ตกลงหรือตกลง2400 ตั้งค่าอัตรารับส่งข้อมูลเป็น 2400 บอด
AT+BAUD3 ตกลงหรือตกลง4800 ตั้งค่าอัตรารับส่งข้อมูลเป็น 4800 บอด
AT+BAUD4 ตกลงหรือตกลง9600 ตั้งค่าอัตรารับส่งข้อมูลเป็น 9600 บอด
AT+BAUD5 ตกลงหรือตกลง19200 ตั้งค่าอัตรารับส่งข้อมูลเป็น 19200 บอด
AT+BAUD6 ตกลงหรือตกลง38400 ตั้งค่าอัตรารับส่งข้อมูลเป็น 38400 บอด
AT+BAUD7 ตกลงหรือตกลง57600 ตั้งค่าอัตรารับส่งข้อมูลเป็น 57600 บอด
AT+BAUD8 ตกลงหรือตกลง115200 ตั้งค่าอัตรารับส่งข้อมูลเป็น 115200 บอด
AT+BAUD9 ตกลงหรือตกลง230400 ตั้งค่าอัตรารับส่งข้อมูลเป็น 230400 บอด
AT+โบดา ตกลงหรือตกลง460800 ตั้งค่าอัตรารับส่งข้อมูลเป็น 460800 บอด
AT+BAUDB ตกลงหรือตกลง921600 ตั้งค่าอัตรารับส่งข้อมูลเป็น 921600 บอด
AT+BAUDC ตกลงหรือตกลง1382400 ตั้งค่าอัตรารับส่งข้อมูลเป็น 1382400 บอด
AT+ชื่อ +NAME=ทดสอบ ส่งกลับชื่อโมดูลปัจจุบัน
AT+NAMEiarduino_BLU +NAME=ทดสอบ ตกลง ตั้งชื่อโมดูลใหม่ว่า “ทดสอบ”
AT+PIN +พิน=000000 ส่งกลับรหัสผ่านปัจจุบัน ในกรณีนี้รหัสผ่านคือ “000000”
AT+PIN123456 +PIN=123456 ตกลง ตั้งรหัสผ่านใหม่ ในกรณีนี้ รหัสผ่านคือ “123456”
AT+เวอร์ชัน +VERSION=เฟิร์มแวร์ V3.0.6,บลูทูธ V4.0 LE ส่งกลับเวอร์ชั่นเฟิร์มแวร์ ในกรณีนี้รหัสผ่านคือ “เฟิร์มแวร์ V3.0.6,บลูทูธ V4.0 LE”
AT+รีเซ็ต +รีเซ็ต ตกลง
AT+ช่วยเหลือ ——– ส่งคืนรายการคำสั่ง AT ที่มีอยู่ทั้งหมด

หลังจากเปลี่ยนความเร็วของพอร์ต com และตั้งค่ารหัส PIN สำหรับการจับคู่แล้ว (รหัสพินเริ่มต้นสำหรับการจับคู่คือ "1234" มาเชื่อมต่อโมดูลกับ Arduino กัน

และเนื่องจากฉันใช้ CNC shield v 3.0 ฉันจะจัดเตรียมไดอะแกรมการเชื่อมต่อให้ด้วย

ฉันจะไม่สร้างไดอะแกรมของตัวเอง แต่จะนำมาจากบทความเดียว ขอให้ผู้สร้างมันยกโทษให้ฉัน

แผนภาพไม่ราบรื่นนัก แต่ในความคิดของฉันมันค่อนข้างเข้าใจได้

เหตุใดจึงใช้ตัวต้านทานในวงจร? Arduino มีลอจิก 5 โวลต์ ซึ่งหมายความว่า Arduino จะส่งแรงดันไฟฟ้า 5V ไปยังเอาต์พุตทั้งหมด แต่โมดูลแจ้งว่า LEVEL 3.3v ซึ่งหมายความว่า Bluetooth ต้องใช้ 3.3V แต่ไม่ใช่ 5V ดังนั้นตัวต้านทานจึงเชื่อมต่อเพื่อลดแรงดันไฟฟ้าและป้องกันความล้มเหลวของโมดูล Bluetooth

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

ในการควบคุมเครื่อง CNC (CNC) จากโทรศัพท์หรือแท็บเล็ต ฉันใช้โปรแกรม "Grbl controller" ซึ่งฟรีและใช้งานได้หลากหลาย ในวิดีโอด้านล่าง ฉันได้แสดงให้เห็นโดยย่อถึงวิธีการควบคุมเครื่องจากโปรแกรมนี้

แต่ถ้าคุณเชื่อมต่อจากคอมพิวเตอร์ก็มีความแตกต่างกันเล็กน้อยเมื่อจับคู่การเชื่อมต่อกับโมดูลมีสองอย่าง คอมใหม่ท่าเรือ. สำหรับฉันมันคือ COM6 และ COM7 ดังนั้นหนึ่งในนั้นจึงใช้ในการส่งข้อมูลและอีกอันใช้ในการรับ ดังนั้นจึงไม่จำเป็นต้องกลัวและพยายามเชื่อมต่อกับอันหนึ่ง หากไม่มีอะไรเกิดขึ้น ให้เชื่อมต่อกับอันอื่น

แต่ถ้ามีอะไรไม่ชัดเจนผมได้แสดงให้เห็นอย่างชัดเจนในวิดีโอ:

บ่อยครั้งในโครงการของคุณจำเป็นต้องมีการควบคุมระยะไกลหรือถ่ายโอนข้อมูลจากอุปกรณ์โทรศัพท์ของคุณ

หนึ่งในวิธีการแลกเปลี่ยนข้อมูลผ่าน Bluetooth ที่ได้รับความนิยมและแพร่หลายที่สุด .

วันนี้เราจะมาดูกัน ตัวอย่างง่ายๆวิธีเชื่อมต่อบลูทูธ โมดูลไปยัง Arduino และกำหนดค่า รีโมทจากโทรศัพท์

เราจะต้อง:

  • ชุดสายไฟ MALE-MAMA
  • HC-06 บลูทูธ

เชื่อมต่อบลูทูธ โมดูลไปยังไมโครคอนโทรลเลอร์ Arduino นั้นสะดวกที่สุดโดยใช้การเดินสายแบบชาย-หญิง

อาร์ดูโน่ บลูทู ธ
พิน 1 (เท็กซัส) RXD
พิน 0 (RX) เท็กซัส
จีเอ็นดี จีเอ็นดี
5V วีซีซี

ระวังคุณต้องเชื่อมต่อ เท็กซัส -> RXD ,รับ -> เท็กซัส .

ตอนนี้คุณต้องเขียนโค้ดทดสอบของโปรแกรม:

เมื่อโหลดแบบร่างจำเป็นต้องถอดโมดูล Bluetooth ออกจากไมโครคอนโทรลเลอร์ Arduino ไม่เช่นนั้นภาพร่างจะไม่ถูกบันทึกเพราะการเชื่อมต่อกับบลูทูธ โมดูลสื่อสารผ่านพอร์ต RX และ TX เดียวกันกับ USB

อินท์วาล; ไฟ LED ภายใน = 13; การตั้งค่าเป็นโมฆะ () ( Serial.begin (9600); pinMode (LED, OUTPUT); digitalWrite (LED, HIGH); ) void loop () ( ถ้า (Serial.available ()) ( val = Serial.read (); / / เมื่ออักขระเป็น "1" ให้เปิดไฟ LED ถ้า (val == "1") ( digitalWrite(LED, HIGH); ) // เมื่ออักขระเป็น "0" ให้ปิดไฟ LED ถ้า (val == "0") ( digitalWrite(LED, ต่ำ ); ) ) )

หลังจากบันทึกภาพร่างและบลูทูธแล้ว โมดูลเชื่อมต่อกับ Arduino แล้ว คุณสามารถไปยังขั้นตอนถัดไปได้

กำลังเชื่อมต่อบลูทูธกับโทรศัพท์ของคุณ

ขอแนะนำให้ใช้ไม่ใช่ USB เป็นแหล่งพลังงานสำหรับ Arduino แต่เป็นแหล่งจ่ายไฟภายนอก 9 V

  1. เปิดบลูทูธบนโทรศัพท์ของคุณและค้นหาอุปกรณ์ใหม่
  2. เราพบในรายการความผิดปกติ " เอชซี-06" และเชื่อมต่อกับมัน
  3. โทรศัพท์จะขอรหัส PIN คุณต้องเข้า" 1234 " หรือ " 0000 "
  4. ไชโย เชื่อมต่ออุปกรณ์แล้ว

ตอนนี้คุณต้องดาวน์โหลดเทอร์มินัลบลูทูธลงในโทรศัพท์ของคุณ เราจะดูตัวอย่างแพลตฟอร์ม Android



คุณสามารถติดตั้งเทอร์มินัลบลูทู ธ ที่แตกต่างกันได้ตามกฎแล้วพวกเขาจะแตกต่างกันเฉพาะในรูปแบบที่แตกต่างกันเท่านั้นฟังก์ชันการทำงานจะไม่เปลี่ยนแปลง คุณยังสามารถค้นหาเทอร์มินัลสำหรับผลิตภัณฑ์ iOS ได้อีกด้วย

หลังจากที่เราติดตั้งเทอร์มินัลแล้ว เราก็เปิดใช้งาน เลือกโมดูลบลูทูธ HC-06 แล้วเชื่อมต่อกับมัน

ถึงเวลาลองทำโครงการจริงแล้ว เราเขียนหมายเลข "0" ในเทอร์มินัลแล้วส่ง LED L ซึ่งอยู่บนบอร์ด Arduino ถัดจากพิน 13 ควรดับลง ตอนนี้เราส่งหมายเลข "1" ผ่านเทอร์มินัลและไฟ LED L จะสว่างขึ้น

การสาธิตการทำงาน:


การบ้าน:

  • เปลี่ยนภาพร่างเพื่อให้ไฟ LED สว่างขึ้นและดับลงโดยใช้คำสั่งเดียวกัน เช่น "G"
  • วาดภาพร่างให้สมบูรณ์และสอนให้แปลงข้อมูลข้อความที่ส่งผ่านบลูทูธเป็นข้อมูลดิจิทัล และใช้ตัวหรี่แสง ไฟ LED โดยใช้ PWM ที่ความสว่างที่กำหนดตั้งแต่ 0 ถึง 254 ที่มาจากบลูทูธ

วันนี้เราจะมาทำความรู้จักกับโมดูลราคาไม่แพงสำหรับการส่งข้อมูลไร้สายผ่าน บลูทู ธ.

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

โมดูลของเราเรียกว่า HC-05. นี่เป็นหนึ่งในตัวแทนของโมดูลที่คล้ายกัน HC-03 - HC-09

โมดูลเหล่านี้ช่วยให้คุณสามารถถ่ายโอนข้อมูลแบบไร้สาย โดยไม่ต้องคำนึงว่าโปรโตคอล Bluetooth ทำงานอย่างไรโดยทั่วไป รวมถึงเกี่ยวกับสาขาและรายละเอียดปลีกย่อยอื่นๆ โมดูลเหล่านี้คือ การตั้งค่าที่ถูกต้องให้การถ่ายโอนข้อมูลในลักษณะที่โปรแกรมเมอร์เขียนโค้ดเขียนอัลกอริทึมราวกับว่าเขาทำงานกับอินเทอร์เฟซ UART แบบมีสาย ดังนั้นการเขียนโค้ดจึงสะดวกที่สุดเท่าที่จะเป็นไปได้และนั่นคือสาเหตุที่โมดูลบรรทัดนี้ได้รับความนิยมอย่างมากในหมู่โปรแกรมเมอร์มือใหม่และไม่เพียงเท่านั้น

ดังนั้นคุณและฉันอย่าล้าหลังพวกเขาและหยุดพักสักหน่อย โปรโตคอลเครือข่ายและศึกษาโมดูลดังกล่าว นอกจากนี้ยังมีคำขอส่วนตัวมากมาย เช่นเดียวกับในการสนทนาสาธารณะ เพื่อที่ฉันจะไม่ข้ามโมดูลดังกล่าวและเขียนบทเรียนใดๆ โดยใช้โมดูลเหล่านั้น

โมดูลมีคุณสมบัติหลักดังต่อไปนี้:

  • ชิปบลูทูธ – BC417143การผลิต บริษัท ซีเอสอาร์,
  • โปรโตคอลการถ่ายโอนข้อมูล - บลูทูธ 2.0+EDR,
  • คลาส 2 ซึ่งสอดคล้องกับการส่งข้อมูลภายในรัศมีสูงสุด 10 เมตร
  • รองรับโปรไฟล์พอร์ตอนุกรม ( เอสพีพี) ซึ่งรับประกันความเข้ากันได้กับอุปกรณ์ทั้งหมดที่รองรับโปรไฟล์นี้
  • หน่วยความจำแฟลชแบบไม่ลบเลือนความจุ 8 MB
  • ช่องวิทยุที่มีความถี่ 2.4 - 2.4835 MHz
  • อินเทอร์เฟซโฮสต์ USB 1.1/2.0,
  • อินเทอร์เฟซ UART พร้อมอัตรารับส่งข้อมูลที่ปรับได้

นอกจากนี้ เมื่อรวมกับคุณสมบัติเหล่านี้แล้ว เป็นที่น่าสังเกตว่าโมดูลมีขาจำนวนมากบนบอร์ด ซึ่งช่วยให้สามารถใช้งานได้ในช่วงที่กว้างขึ้น ลองดูที่แผนภาพ pinout ของโมดูล

เราเห็นพิน GPIO, SPI, USB, PCM ที่นี่

จริงอยู่ที่ตอนนี้เราจะทำงานกับอินเทอร์เฟซ USART เท่านั้นด้วยความช่วยเหลือซึ่งเราจะไม่เพียงถ่ายโอนข้อมูลที่เป็นประโยชน์บางส่วนเท่านั้น แต่ยังกำหนดค่าโมดูลของเราด้วย

ก่อนอื่นเราจะทำสิ่งนี้เพราะโมดูลของเราจะเป็นประเภทเดียวกัน (ฉันมีมากถึง 4 อัน!) ซึ่งโมดูล HC-05 ถูกบัดกรีไปยังบอร์ดอื่นซึ่งมีเส้นทางการติดต่อเพียง 6 รายการออกไปด้านนอก นี่คือวิธีที่ฉันมีทั้งหมด (มุมมองด้านบนและด้านล่าง)

วัตถุประสงค์ของขาแสดงไว้ที่ด้านล่างของบอร์ดเราจะเข้าใจเมื่อเราเชื่อมต่อโมดูล

ประการที่สอง เราจะไม่ทำงานร่วมกับผู้ติดต่อที่เหลือจำนวนมาก เนื่องจากไม่ใช่ทุกเฟิร์มแวร์ที่อนุญาตให้คุณทำเช่นนี้

โดยทั่วไปแล้วตัวเลือกก็ตกอยู่ที่ HC-05 เช่นกัน โมดูลนี้กำหนดค่าได้อย่างสมบูรณ์แบบสำหรับการทำงานทั้งแบบหลักและแบบรอง

โมดูลได้รับการกำหนดค่าเพื่อทำงานกับข้อมูลเพิ่มเติมโดยใช้คำสั่ง AT ฉันคิดว่าเราทุกคนคงคุ้นเคยกับคำสั่งเหล่านี้ไม่มากก็น้อย โดยเราได้รู้จักคำสั่งเหล่านี้บ้างเล็กน้อยเมื่อเราทำงานกับโมดูล Wi-Fi แน่นอนว่าคำสั่งเหล่านี้แตกต่างกันไปในอุปกรณ์ทั้งหมด ดังนั้นฉันจะแนบเอกสารพร้อมรายการคำสั่งทั้งหมดที่ด้านล่างของหน้า นอกจากนี้ยังง่ายต่อการค้นหาแหล่งข้อมูลบนอินเทอร์เน็ตที่คำอธิบายของคำสั่งเหล่านี้แปลเป็นภาษารัสเซียและยังมีตัวอย่างการใช้งานอีกด้วย เราจะไม่มีส่วนร่วมในการแปลคำสั่งทั้งหมดที่นี่ เราจะศึกษาเฉพาะคำสั่งที่เราต้องใช้เท่านั้น สำหรับตอนนี้ รายการของพวกเขาจะไม่กว้างนัก แต่หลังจากนั้นเราจะกลับมาที่โมดูลเหล่านี้มากกว่าหนึ่งครั้ง ฉันหวังว่ามากกว่าหนึ่งครั้ง จากนั้นเราจะขยายขอบเขตความรู้ของเราเกี่ยวกับโมดูลนี้ ในระหว่างนี้ เราจะแนะนำโมดูลนี้เพียงสั้นๆ เท่านั้น แน่นอนว่าเราจะลองใช้มันในที่ทำงาน ไม่ใช่ถ้าไม่มีมัน

ในตอนนี้ มาเชื่อมต่อโมดูลของเรากับอะแดปเตอร์ TTL-USB ซึ่งเราจะเชื่อมต่อกับพีซี

เราจะเชื่อมต่อตามแผนภาพต่อไปนี้

โมดูลอะแดปเตอร์ TTL-USB HC-05

วีซีซี วีซีซี

จีเอ็นดี จีเอ็นดี

TXD RXD

RXD TXD

ในทางปฏิบัติมันจะมีลักษณะเช่นนี้

มาเชื่อมต่ออะแดปเตอร์กับคอมพิวเตอร์กันเถอะฉันจะไม่บอกวิธีทำงานกับอะแดปเตอร์ประเภทนี้ แต่เราทำงานกับอะแดปเตอร์เหล่านี้ตลอดเวลา มาเริ่มโปรแกรมเทอร์มินัลกันดีกว่า ฉันจะใช้โปรแกรม CoolTerm เนื่องจากมีการตั้งค่าที่ยืดหยุ่นกว่าในการส่งข้อมูลจากแป้นพิมพ์ และในการป้อนคำสั่ง เราต้องใช้แต่ละบรรทัดในระหว่างการส่งสัญญาณเพื่อลงท้ายด้วยตัวป้อนบรรทัดและรหัสส่งคืนแคร่

ไปที่การตั้งค่าโปรแกรมและกำหนดค่าพอร์ตก่อน

เลือกความเร็ว 38400 นี้เนื่องจากโมดูลทำงานที่ความเร็วเท่านี้เมื่อรับคำสั่ง AT

ตอนนี้เลือกรายการทางด้านซ้าย รับและสลับปุ่มหนึ่งที่นั่นแล้วเปิดอีกปุ่มหนึ่ง

ปุ่มแรกใช้สำหรับสิ้นสุดคำสั่งที่ส่งด้วยการป้อนบรรทัดและอักขระขึ้นบรรทัดใหม่ และปุ่มที่สองเพื่อให้เราสามารถเห็นคำสั่งที่ป้อนของเราหลังจากป้อนในหน้าต่างเทอร์มินัลการรับ

มาบันทึกการตั้งค่าแล้วลองเชื่อมต่อ หากทุกอย่างสำเร็จเราจะตัดการเชื่อมต่อเนื่องจากตอนนี้โมดูลของเราอยู่ในโหมดการถ่ายโอนข้อมูลและหากยังไม่ได้กำหนดค่าก็เป็นไปได้มากที่เราไม่ทราบที่อยู่หรือการตั้งค่าของมันด้วยซ้ำ เกี่ยวกับการค้นหาโมดูลใน โหมดนี้สิ่งนี้ระบุได้ด้วยการกะพริบอย่างรวดเร็วของไฟ LED สีน้ำเงิน ดังนั้นเราจึงจำเป็นต้องทำให้โมดูลเข้าสู่สถานะการส่งคำสั่ง AT

ในการดำเนินการนี้เราจะถอดอะแดปเตอร์ออกจากพอร์ต USB และต่อสายไฟเข้ากับขาของโมดูล HC-05 สำคัญ. สำหรับบางคนอาจมีชื่อที่แตกต่างกัน แต่ฉันไม่คิดว่าคุณจะสับสนได้ มาต่อสายไฟแบบนี้และแบบนี้

มาต่อสายนี้เข้ากับกำลังบวก (พร้อมขา VCC)

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

ไปที่โปรแกรมเทอร์มินัลเชื่อมต่อกับพอร์ตแล้วลองส่งคำสั่ง ที่ซึ่งโมดูลจะต้องตอบเรา "ตกลง"

โมดูลตอบสนอง ซึ่งหมายความว่าทุกอย่างถูกต้อง

เพื่อไม่ให้สับสนกับการตั้งค่าที่เคยทำโดยใครคนหนึ่ง มารวบรวมการตั้งค่าทั้งหมดโดยป้อนคำสั่ง “ AT+ORGL". การตั้งค่าจะต้องรีเซ็ตเป็นพารามิเตอร์ต่อไปนี้:

  • ประเภทอุปกรณ์: 0
  • สอบถามรหัส: 0x009e8b33
  • โหมดการทำงานของโมดูล: โหมดทาส
  • โหมดการเชื่อมต่อ: เชื่อมต่อกับอุปกรณ์ Bluetooth ที่ระบุ
  • พารามิเตอร์แบบอนุกรม: อัตรารับส่งข้อมูล: 38400 บิต/วินาที; บิตหยุด: 1 บิต; พาริตี้บิต: ไม่มี
  • รหัสผ่าน: “1234”
  • ชื่ออุปกรณ์: “H-C-2010-06-01”

เฉพาะการตั้งค่าเท่านั้นที่จะไม่ถูกนำไปใช้ทันที คุณต้องโหลดโมดูลใหม่ สะดวกที่จะทำสิ่งนี้โดยการป้อนคำสั่ง " AT+รีเซ็ต“ เพื่อตอบสนองต่อโมดูลที่จะรีบูตและกลับสู่โหมดถ่ายโอนข้อมูลและจะไม่สามารถรับคำสั่งได้ในขณะนี้ เพื่อให้ยอมรับได้เราจะดำเนินการเช่นเดียวกับข้างต้นเพื่อให้โมดูลสลับไปที่โหมดการรับคำสั่ง AT อีกครั้ง มีวิธีอื่น แต่เราจะไม่ใช้มันในตอนนี้

ตอนนี้เรามาตรวจสอบพารามิเตอร์บางอย่างของโมดูลของเรากัน

หากต้องการทราบเวอร์ชันเฟิร์มแวร์ ให้ป้อนคำสั่ง “ AT+เวอร์ชั่น?" ซึ่งโมดูลจะต้องตอบสนองแบบนี้

หากเฟิร์มแวร์ไม่ต่ำกว่าเวอร์ชันนี้ เราก็มั่นใจได้ว่าโมดูลนี้ที่มีเฟิร์มแวร์ดังกล่าวสามารถทำงานในโหมดหลักได้

ค้นหาที่อยู่อุปกรณ์โดยใช้คำสั่ง “ AT+ADDR?«

เราจะใช้ที่อยู่นี้เพื่อระบุอุปกรณ์ของเราบนอุปกรณ์หลัก เราจะใช้สมาร์ทโฟนธรรมดาที่สุดเป็นอุปกรณ์หลัก แต่จะมาในภายหลังเล็กน้อย เรายังต้องเล่นให้ดีกับทีม

เรามาขอชื่ออุปกรณ์โดยใช้คำสั่ง " AT+ชื่อ?“ ซึ่งโมดูลจำนวนมากรวมทั้งของฉันด้วย จะตอบสนองเฉพาะเมื่อมีระดับสูงบนขา KEY นั่นคือเมื่อมีการเชื่อมต่อสายไฟ มาทำอย่างนั้นกันเถอะ

ลองเปลี่ยนชื่อนี้ดูเหมือนกันเนื่องจากไม่สะดวกนัก โดยป้อนคำสั่ง “AT+NAME: Desired_name” คำสั่งนี้สามารถป้อนได้โดยไม่ต้องมีระดับสูงบนพิน KEY

เช็คกันหน่อยว่าเปลี่ยนชื่อแล้วแค่อย่าลืมระดับสูงที่ขา KEY ด้วย

ชื่อนี้ใช้ได้ดี

มาตรวจสอบรหัสผ่านด้วยคำสั่ง " AT+ PSWD?«

เช่นเดียวกับชื่อ คุณสามารถเปลี่ยนรหัสผ่านได้

ตอนนี้เราค้นหาประเภทของอุปกรณ์ (สเลฟหรือมาสเตอร์) โดยใช้คำสั่ง “ AT+ บทบาท?«

0 หมายถึงทาส ประเภทสามารถเปลี่ยนแปลงได้ตลอดเวลา แต่เราไม่ต้องการสิ่งนี้ในตอนนี้ เนื่องจากเราจะทำงานกับอุปกรณ์ในฐานะทาส

รีเซ็ตอุปกรณ์ที่จับคู่ด้วยคำสั่ง “ AT+RMAAD«

ตอนนี้เรามาดูการตั้งค่าอินเทอร์เฟซ USART ด้วยคำสั่ง " AT+ UART?«

การตั้งค่าเหล่านี้หมายถึง: 38400 kbps, 1 บิตหยุด และไม่มีพาริตี

ตารางนี้ประกอบด้วย ตัวเลือกที่เป็นไปได้การตั้งค่า USART

เช่น เรามาเปลี่ยนความเร็วการส่งข้อมูลด้วยคำสั่ง " AT+UART=115200,0,0«

เฉพาะการตั้งค่าเหล่านี้จะมีผลหลังจากรีบูตโมดูลและจะเกี่ยวข้องกับโหมดการส่งข้อมูลเท่านั้น สำหรับโหมดการส่งคำสั่ง AT ไปยังโมดูลการตั้งค่าเดียวกันจะยังคงที่ความเร็ว 38400

มารีโหลดโมดูลด้วยคำสั่ง " AT+รีเซ็ต“ หลังจากนั้นโมดูลจะเปลี่ยนเป็นโหมดถ่ายโอนข้อมูล

มากำหนดค่าพอร์ตในโปรแกรมเทอร์มินัลกันเถอะ ความเร็วที่กำหนดและเชื่อมต่อกับเขา

ลองป้อนคำสั่งซึ่งโมดูลของเราจะไม่ตอบสนองเนื่องจากโหมดไม่เหมือนกัน

แต่อย่าสิ้นหวัง ปรากฎว่าในการส่งคำสั่งไปยังโมดูลนั้นไม่จำเป็นต้องวางไว้ในโหมดนี้ คุณสามารถเปิดใช้งานการรองรับการส่งคำสั่ง AT ในโหมดข้อมูล ในช่วงเวลาสั้น ๆ (น้อยกว่าหนึ่งวินาทีก็เพียงพอแล้ว) เราสัมผัสสายไฟที่เชื่อมต่อกับหน้าสัมผัส KEY ของบัสบวกของโมดูลและโมดูลจะสลับไปที่โหมดสนับสนุนคำสั่ง AT จริงอยู่ เราไม่สามารถระบุสิ่งนี้ได้โดยธรรมชาติของไฟ LED ที่กะพริบ แต่จะกะพริบเร็วพอๆ กัน นอกจากนี้ ในโหมดสนับสนุนคำสั่งเรา อุปกรณ์หลักจะไม่สามารถเชื่อมต่อกับเราได้ แต่ถึงกระนั้นเราไม่จำเป็นต้องถอดสายไฟออกตลอดเวลา ขั้วต่อ USBและกำหนดค่าพอร์ตใหม่ในโปรแกรมเทอร์มินัล นี่ก็ดีอยู่แล้ว มาดำเนินการนี้กันและตรวจสอบให้แน่ใจว่าโมดูลจะยอมรับคำสั่งเช่นเดียวกับในโหมดรับคำสั่ง

หากต้องการลบการสนับสนุนนี้และเพื่อให้โมดูลสามารถเชื่อมต่อได้ เพียงรีบูตด้วยคำสั่ง “ AT+รีเซ็ต". มาทำอย่างนั้นกันเถอะ

ยอดเยี่ยม! เรารู้อะไรบางอย่างแล้ว โดยพื้นฐานแล้ว เราได้กำหนดค่าโมดูลให้ส่งข้อมูลในโหมดหลัก

ตอนนี้สมาร์ทโฟนที่เรามีในปัจจุบันจะทำหน้าที่เป็นอุปกรณ์หลัก ใครก็ตามที่ใช้ Android จะทำอย่างนั้น ตราบใดที่พวกเขามีโปรแกรมเทอร์มินัลสำหรับ Bluetooth ฉันติดตั้งอันนี้ ฉันพบว่ามันสะดวกสบาย

ประการแรกมันฟรี ไม่จำเป็นต้องสร้างการเชื่อมต่อล่วงหน้า และยังมีปุ่มหลายปุ่มพร้อมสตริงที่เราบันทึกไว้ล่วงหน้า

มาดาวน์โหลดและติดตั้งโปรแกรมแล้วรันกัน กดปุ่ม SCAN และโมดูลของเราควรจะปรากฏในรายการอุปกรณ์ที่พบ

มาเลือกกัน เครื่องมือนี้และเราจะถูกนำไปที่กล่องโต้ตอบการสร้างคู่ ซึ่งคุณจะต้องป้อนรหัสผ่าน (เรามี "1234") และตกลงโดยคลิกปุ่ม "ตกลง"

เคยคิดที่จะจัดการใดๆ อุปกรณ์อิเล็กทรอนิกส์ใช้สมาร์ทโฟนใช่ไหม? เห็นด้วย การควบคุมหุ่นยนต์หรืออุปกรณ์อื่น ๆ จากสมาร์ทโฟนของคุณคงจะเจ๋งมาก เรานำเสนอบทเรียนง่ายๆ สำหรับผู้เริ่มต้นและมือใหม่เกี่ยวกับวิธีควบคุมสมาร์ทโฟนโดยใช้ Arduino ผ่าน Bluetooth หากหลังจากบทเรียนนี้คุณอยากรู้จัก Arduino มากขึ้น คุณสามารถหาหนังสือเกี่ยวกับเรื่องนี้ได้

ขั้นตอนที่ 1. สิ่งที่เราต้องการ

อุปกรณ์

โมดูล - โมดูลบลูทูธ HC 05/06
บอร์ด - Arduino
ไดโอดเปล่งแสง (แอลอีดี)
ตัวต้านทาน - 220Ω
อุปกรณ์แอนดรอยด์

ซอฟต์แวร์

อาร์ดูโน่ IDE
Android Studio (จริงๆ แล้วไม่จำเป็น เพราะคุณจะพบแอปพลิเคชัน Android ด้านล่างนี้)

ขั้นตอนที่ 2 มันทำงานอย่างไร

โดยปกติแล้วเราจะทำขั้นตอนนี้ในตอนท้าย แต่เพื่อให้คุณเข้าใจสิ่งที่เราต้องทำให้สำเร็จ โปรดดูผลลัพธ์ที่ขั้นตอนกลางนี้ นอกจากนี้เรายังได้เผยแพร่วิดีโอการสอนแบบทีละขั้นตอนด้านล่างอีกด้วย

ขั้นตอนที่ 3 เราเริ่มประกอบวงจร

วงจรในบทช่วยสอนของเรานั้นเรียบง่ายและเล็กมากจนเราต้องทำการเชื่อมต่อเพียงไม่กี่อย่างเท่านั้น:

Arduino Pins ___________ พินโมดูล Bluetooth
RX (พิน 0)___________________________TX
เท็กซัส (พิน 1)___________________________RX
5V__________________________วีซีซี
GND_______________________GND

เชื่อมต่อขั้วลบของ LED เข้ากับ GND บน Arduino และขั้วบวกเพื่อปักหมุด 13 ผ่านความต้านทาน 220 โอห์ม - 1 kOhm โดยทั่วไปในภาพด้านล่างทุกอย่างชัดเจน

อย่าเชื่อมต่อเอาต์พุตบลูทูธระหว่าง RX กับ RX และ TX กับ TX กับเอาต์พุต Arduino คุณจะไม่ได้รับข้อมูลใดๆ ในที่นี้ TX หมายถึงการส่ง RX หมายถึงการรับ

ขั้นตอนที่ 4: การอัปโหลดโปรแกรมไปยัง Arduino

ตอนนี้เราต้องเขียนโปรแกรมและอัปโหลดไปยัง Arduino ของเรา หากคุณยังไม่รู้ว่าต้องทำอย่างไร ให้ดาวน์โหลดหนังสือ โค้ดด้านล่างนี้คือสิ่งที่เราต้องโหลดลงใน Arduino

/* Bluetooh Basic: LED ON OFF * Coder - Mayoogh Girish * เว็บไซต์ - http://bit.do/Avishkar * ดาวน์โหลด App: https://github.com/Mayoogh/Arduino-Bluetooth-Basic * โปรแกรมนี้ช่วยให้คุณ เพื่อควบคุม LED บนพิน 13 ของ Arduino โดยใช้โมดูล Bluetooth */ char data = 0; //ตัวแปรสำหรับการจัดเก็บข้อมูลที่ได้รับ การตั้งค่าเป็นโมฆะ() ( Serial.begin(9600); //ตั้งค่า baud สำหรับการส่งข้อมูลแบบอนุกรม pinMode(13, OUTPUT); //ตั้งค่าพินดิจิทัล 13 เป็นพินเอาต์พุต ) void loop() ( if(Serial.available() > 0) // ส่งข้อมูลเฉพาะเมื่อคุณได้รับข้อมูล: ( data = Serial.read(); // อ่านข้อมูลขาเข้าและเก็บไว้ในข้อมูลตัวแปร Serial.print(data); // พิมพ์ค่าภายในข้อมูลใน Serial monitor Serial.print("\n"); //ขึ้นบรรทัดใหม่ if(data == "1") // ตรวจสอบว่าค่าของข้อมูลเท่ากับ 1 digitalWrite(13, HIGH); // ถ้าค่าเป็น 1 แล้ว LED จะเปิด อย่างอื่นถ้า(data == "0") // ตรวจสอบว่าค่าของข้อมูลเท่ากับ 0 digitalWrite(13, LOW); // ถ้าค่าเป็น 0 LED จะดับ ) )

ขั้นตอนที่ 5 กระบวนการทำงานอย่างไร

โมดูล HC 05/06 ทำงานผ่านช่องทางการสื่อสารแบบอนุกรม แอพ Android ส่งข้อมูลตามลำดับไปยังโมดูล Bluetooth เมื่อคุณกดปุ่มใดปุ่มหนึ่ง บลูทูธที่ปลายอีกด้านหนึ่งรับข้อมูลและส่งไปยัง Arduino ผ่านการเชื่อมต่อ TX ของโมดูล Bluetooth (การเชื่อมต่อ Arduino RX)

โค้ดที่โหลดลงใน Arduino จะตรวจสอบข้อมูลที่ได้รับและเปรียบเทียบ หากได้รับ "1" ไฟ LED จะเปิดและดับลงเมื่อได้รับ "0" เปิดมอนิเตอร์พอร์ตอนุกรมและสังเกตข้อมูลที่ได้รับ

ขั้นตอนที่ 6 แอปพลิเคชันสำหรับอุปกรณ์ Android

ในบทช่วยสอนนี้ เราจะไม่พูดถึงการสร้างแอปพลิเคชันสำหรับอุปกรณ์ Android คุณสามารถดาวน์โหลดแอปพลิเคชันบน GitHub

วิธีการใช้งานแอพพลิเคชั่น?

หลังจากที่เราเชื่อมต่อผ่าน Bluetooth แล้ว เราจำเป็นต้องดาวน์โหลดและติดตั้งแอปพลิเคชันที่ใช้สมาร์ทโฟน :) จะควบคุม LED ของเราจากระยะไกล คุณสามารถดาวน์โหลดแอปพลิเคชันได้ฟรีที่ Amazon.com เราเชื่อมต่อสมาร์ทโฟนกับโมดูล Bluetooth HC 05/06:

  1. เปิดโมดูล HC 05/0
  2. กำลังมองหาอุปกรณ์
  3. เราเชื่อมต่อกับ HC 05/06 โดยป้อนรหัสผ่านเริ่มต้น "1234" หรือ "0000" (ศูนย์สี่ตัว)

หลังจากนั้นเราจะติดตั้งแอปพลิเคชันบนสมาร์ทโฟนของเรา มาเปิดกันเถอะ เลือกอุปกรณ์ - เลือกโมดูล Bluetooth จากรายการ (HC 05/06) หลังจากการเชื่อมต่อสำเร็จ ให้กดปุ่ม ON เพื่อเปิด LED และปุ่ม OFF เพื่อปิด LED จากนั้นคุณสามารถคลิกปุ่ม "ตัดการเชื่อมต่อ" เพื่อตัดการเชื่อมต่อจากโมดูล Bluetooth

นี่เป็นคำแนะนำสำหรับมือใหม่และผู้เริ่มต้นเกี่ยวกับวิธีเชื่อมต่อโมดูล Bluetooth กับ Arduino โปรเจ็กต์นี้สามารถปรับปรุงและนำไปสู่ระดับที่สูงขึ้นได้ เช่น ระบบอัตโนมัติในบ้านผ่านการควบคุมสมาร์ทโฟน หุ่นยนต์ควบคุม และอื่นๆ อีกมากมาย

รีวิวโมดูล Bluetooth HC-05

คอนโทรลเลอร์ Arduino ไม่รองรับการสื่อสารไร้สาย และบ่อยครั้งก็จำเป็น ตัวอย่างเช่น, รีโมทหุ่นยนต์บน Arduino ส่งข้อมูลจากสถานีตรวจอากาศไปยัง Arudino ไปยังอินเทอร์เน็ตหรือไปยัง โฮมเซิร์ฟเวอร์, การสื่อสารระหว่างอุปกรณ์หลายเครื่องระหว่างกัน ที่นี่เพื่อช่วยนักพัฒนาอุปกรณ์ มีโมดูลภายนอกมากมายสำหรับจัดระเบียบเทคโนโลยีต่างๆ การสื่อสารไร้สาย: โมดูล WiFi, GSM/GPRS, IR, Bluetooth, โมดูลวิทยุสำหรับการทำงานในช่วงความถี่ต่างๆ

เทคโนโลยีบลูทูธใช้ในการถ่ายโอนข้อมูลระหว่างอุปกรณ์สองเครื่องที่อยู่ใกล้กัน โดยไม่ต้องใช้สายตาโดยตรง เทคโนโลยี Bluetooth ให้ความต้านทานต่อการรบกวนบรอดแบนด์ได้ดี ช่วยให้อุปกรณ์หลายเครื่องในตำแหน่งเดียวกันสามารถสื่อสารพร้อมกันได้โดยไม่รบกวนซึ่งกันและกัน กว้างมาก เทคโนโลยีนี้ใช้ในโทรศัพท์ แท็บเล็ต แล็ปท็อป

หนึ่งใน โซลูชั่นที่ดีที่สุดเพื่อจัดระเบียบการสื่อสาร Bluetooth แบบสองทางระหว่างอุปกรณ์ Arduino ของคุณกับแท็บเล็ต แล็ปท็อป หรืออุปกรณ์ Bluetooth อื่น ๆ - โมดูล Bluetooth HC-05 ซึ่งสามารถทำงานได้ทั้งแบบหลัก (ค้นหาอุปกรณ์ Bluetooth และเริ่มการสื่อสาร) และทาส (อุปกรณ์สเลฟ) ).

ลักษณะทางเทคนิคของโมดูล HC05

  • ชิปบลูทูธ: HC-05(BC417143)
  • ช่วงความถี่วิทยุ: 2.4 - 2.48 GHz
  • กำลังส่ง: 0.25–2.5 mW
  • ความไว: –80 เดซิเบลเมตร
  • แรงดันไฟจ่าย: 3.3–5 V
  • การบริโภคปัจจุบัน: 50 mA
  • ระยะ: สูงสุด 10 เมตร
  • อินเทอร์เฟซ: พอร์ตอนุกรม
  • โหมด: มาสเตอร์, ทาส
  • อุณหภูมิในการเก็บรักษา: –40…85 °C
  • ช่วงอุณหภูมิในการทำงาน: –25…75 °C
  • ขนาด: 27 x 13 x 2.2 มม

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

เซ็นเซอร์มีพินมาตรฐาน 2.54 มม. 6 พิน:

  • VCC - (แหล่งจ่ายไฟ 3.6 – 6 V);
  • GND - (กราวด์)
  • TXD, RXD - อินเทอร์เฟซ UART;
  • รัฐ - ตัวบ่งชี้สถานะ;
  • KEY - หน้าสัมผัสเพื่อเข้าสู่โหมดการตั้งโปรแกรม

โมดูลได้รับการกำหนดค่าในโหมดการเขียนโปรแกรมโดยส่งคำสั่ง AT ผ่าน พอร์ตอนุกรม. ในการเข้าสู่โหมดการตั้งโปรแกรม คุณต้องส่งสัญญาณระดับสูงไปที่หน้าสัมผัสของ KEY ในบางโมดูลจะไม่มีพิน KEY แต่มีพิน EN แทน:

  • EN - เปิด/ปิดโมดูล


ในกรณีนี้ เพื่อเข้าสู่โหมดการเขียนโปรแกรม คุณจะต้องใช้สัญญาณระดับสูงเพื่อพิน 34:


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


คุณควรได้รับสิ่งต่อไปนี้:


การเขียนโปรแกรมโมดูล Bluetooth HC05

โมดูลได้รับการกำหนดค่าในโหมดการเขียนโปรแกรมโดยการส่งคำสั่ง AT ผ่านพอร์ตอนุกรม มาเชื่อมต่อโมดูล HC05 เข้ากับบอร์ด Arduino ตามแผนภาพการเชื่อมต่อในรูปที่ 5 ใช้ 3.3V กับพิน KEY ของโมดูล (หรือพิน 34 ของบอร์ด) เราจะส่งคำสั่ง AT จากมอนิเตอร์พอร์ตอนุกรม Arduino IDE มาอัปโหลดภาพร่างจากรายการ 1 ไปยัง Arduino เราจะต้องมีไลบรารี Arduino SoftwareSerial ความเร็วของโมดูล UART ในโหมดการเขียนโปรแกรมคือ 38400 บอด แต่อาจแตกต่างกันในกรณีนี้ควรเลือก

รวม ซอฟต์แวร์อนุกรม mySerial(2, 3); // ระบุพิน rx และ tx ตามลำดับ การตั้งค่าเป็นโมฆะ() ( pinMode(2,INPUT); pinMode(3,OUTPUT); Serial.begin(9600); mySerial.begin(38400); Serial.println("start prg" ) ; ) void loop() ( if (mySerial.available()) ( char c = mySerial.read(); // อ่านจากพอร์ตซอฟต์แวร์ Serial.print(c); // เขียนไปยังพอร์ตฮาร์ดแวร์ ) ถ้า ( Serial .available()) ( char c = Serial.read(); // อ่านจากพอร์ตฮาร์ดแวร์ mySerial.write(c); // เขียนไปยังพอร์ตซอฟต์แวร์ ) )

หลังจากดาวน์โหลดภาพร่างแล้ว ให้เปิดมอนิเตอร์พอร์ตอนุกรม Arduino IDE และเริ่มส่งคำสั่ง AT:


รายการคำสั่ง AT พื้นฐาน:

  • AT - คำสั่งทดสอบ

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: ตกลง

  • AT+เวอร์ชั่น? - รับเวอร์ชันเฟิร์มแวร์ของโมดูล

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: +เวอร์ชัน:

ที่ไหน เวอร์ชันเฟิร์มแวร์โมดูล Bluetooth

  • AT+RESET - รีเซ็ตการตั้งค่า

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: ตกลง

  • AT+ORGL - ตั้งค่าการตั้งค่าโมดูลแบบกำหนดเอง

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: ตกลง

  • AT+ADDR? - รับที่อยู่โมดูล

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: +ADDR:

ที่ไหน ที่อยู่โมดูลบลูทูธ NAP: UAP: LAP

  • AT+ชื่อ? - รับชื่อโมดูล

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: +NAME:

ที่ไหน ชื่อโมดูลบลูทูธ

  • AT+ชื่อ= ตั้งชื่อโมดูลใหม่

พารามิเตอร์: ชื่อโมดูลบลูทูธ

การตอบสนองของโมดูล: +NAME:

ตกลง (หรือล้มเหลว)

  • AT+PSWD? - รับรหัส PIN เพื่อเข้าถึงโมดูล Bluetooth

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: + PSWD:

ที่ไหน เข็มหมุด. ค่าเริ่มต้นคือ 1234

  • AT+PSWD= ตั้งรหัสการเข้าถึงสำหรับโมดูล Bluetooth

พารามิเตอร์: รหัสการเข้าถึงโมดูล

การตอบสนองของโมดูล: ตกลง (หรือล้มเหลว)

  • AT+คลาส= ตั้งค่าโหมดการทำงานของโมดูล Bluetooth

พารามิเตอร์: ระดับ. เอกสารประกอบของโมดูลไม่ได้ระบุค่าที่เป็นไปได้ พารามิเตอร์นี้. โดยค่าเริ่มต้นจะตั้งค่าเป็น 0 หากคุณต้องการใช้โมดูลในโหมดหลัก ไม่จำเป็นต้องเปลี่ยนค่า หากคุณใช้โมดูลในโหมดทาสโดยมีค่าพารามิเตอร์เท่ากับ 0 อุปกรณ์ที่ทำงานจะมองไม่เห็นโมดูลนั้น ระบบแอนดรอย. เพื่อให้มองเห็นได้ คุณต้องตั้งค่าพารามิเตอร์เป็น 7936

การตอบสนองของโมดูล: ตกลง

  • AT+คลาส? - รับคลาสโมดูล

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: +คลาส:

ที่ไหน คลาสโมดูล

  • AT+IAC - รับรหัสการเข้าถึงคำขอ GIAC (รหัสการเข้าถึงสอบถามทั่วไป)

ช่องทางการสื่อสารทางกายภาพต่างๆ ที่ใช้ในกระบวนการสร้างการเชื่อมต่อมีรหัสการเข้าถึงช่องทางที่แตกต่างกัน ในช่องโพล ยกเว้นช่องเฉพาะ จะมีการใช้รหัสการเข้าถึงแบบสอบถามทั่วไปเดียวกันสำหรับอุปกรณ์ทั้งหมด

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: + IAC:

ที่ไหน ขอรหัสเข้าใช้งาน

  • AT+IAC= ตั้งรหัสการเข้าถึงคำขอ

พารามิเตอร์: ขอรหัสเข้าใช้งาน ค่าเริ่มต้นคือ 9e8b33

การตอบสนองของโมดูล: ตกลง (หรือล้มเหลว)

  • AT+บทบาท? - รับโหมดการทำงานของโมดูล

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: +ROLE:

ที่ไหน โหมดการทำงานของโมดูลบลูทูธ:

  • 0 - ทาส ในโหมดนี้ ต้นแบบอื่นสามารถเชื่อมต่อกับโมดูลได้
  • 1 - อาจารย์ ในโหมดนี้โมดูลสามารถเชื่อมต่อกับอุปกรณ์ Bluetooth ใดก็ได้
  • 2 - ทาสลูป โมดูลจะส่งไบต์ทั้งหมดที่ถูกส่งกลับไป
  • AT+บทบาท= ตั้งค่าโหมดการทำงานของโมดูล Bluetooth

พารามิเตอร์: โหมดการทำงานของโมดูลบลูทูธ:

  • 0 - ทาส;
  • 1 - อาจารย์;
  • 2 - ทาส-

การตอบสนองของโมดูล: ตกลง

  • AT+UART= ,,ติดตั้งโมดูลสำหรับพอร์ตอนุกรม

ตัวเลือก:

  • หยุดบิต:
  • 0 - ไม่;
  • 1 - ใช่;
  • พาริตี้บิต:
  • 0 - ไม่;
  • 1 - ใช่

การตอบสนองของโมดูล: ตกลง (หรือล้มเหลว)

  • AT+UART? - รับพารามิเตอร์การแลกเปลี่ยนโมดูล

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: +UART: ,,

  • อัตรารับส่งข้อมูล (9600,19200,38400,57600,115200);
  • หยุดสักหน่อย;
  • ความเท่าเทียมกันบิต
  • AT+CMOD= ตั้งค่าโหมดการเชื่อมต่อโมดูล Bluetooth

พารามิเตอร์:

  • 2 - โหมดทาสลูป

การตอบสนองของโมดูล: ตกลง

  • AT+CMODE? - รับโหมดการเชื่อมต่อโมดูล

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: + CMODE:

ที่ไหน โหมดการเชื่อมต่อโมดูลบลูทูธ:

  • 0 - โมดูลสามารถเชื่อมต่อกับอุปกรณ์ Bluetooth ที่ระบุโดยคำสั่ง AT+BIND เท่านั้น
  • 1 - โมดูลสามารถเชื่อมต่อกับอุปกรณ์ Bluetooth ใด ๆ
  • 2 - โหมดทาสลูป
  • AT+INQM= ,,ตั้งค่าตัวเลือกเพื่อขอค้นหาอุปกรณ์บลูทูธ

ตัวเลือก:

  • :
  • 0 - โหมดคำขอมาตรฐาน
  • 1 - คำขอในโหมด RSSI;
  • จำนวนอุปกรณ์สูงสุดที่ตอบสนองต่อคำขอ
  • หมดเวลารอ (1–48: 1.28 วินาที ถึง 61.44 วินาที)

การตอบสนองของโมดูล: ตกลง (หรือล้มเหลว)

  • AT+INQM? - รับพารามิเตอร์เพื่อขอค้นหาอุปกรณ์ Bluetooth

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: +UART: ,,

  • AT+INQ - เริ่มค้นหาอุปกรณ์ Bluetooth

ไม่มีพารามิเตอร์

การตอบสนองของโมดูลคือรายการอุปกรณ์ที่พบ

  • AT+ผูก= เชื่อมโยงโมดูล Bluetooth กับโมดูลอื่น

การตอบสนองของโมดูล: ตกลง (หรือล้มเหลว)

  • AT+ผูก? - รับที่อยู่ของอุปกรณ์ที่เกี่ยวข้องกับโมดูล Bluetooth

ไม่มีพารามิเตอร์

การตอบสนองของโมดูล: ที่อยู่ของอุปกรณ์ที่เกี่ยวข้องกับโมดูล Bluetooth

  • AT+FSAD=

    การตอบสนองของโมดูล: ตกลง (หรือล้มเหลว)

    • AT+RMSAD=

      การตอบสนองของโมดูล: ตกลง (หรือล้มเหลว)

      • AT+RMAAD - ล้างรายการอุปกรณ์ที่ได้รับอนุญาตสำหรับโมดูล Bluetooth ของเรา

      การตอบสนองของโมดูล: ตกลง (หรือล้มเหลว)

      • AT+LINK= เชื่อมต่อกับอุปกรณ์บลูทูธ

      พารามิเตอร์: ที่อยู่อุปกรณ์บลูทูธ

      การตอบสนองของโมดูล: ตกลง (หรือล้มเหลว)

      สามารถดูรายการคำสั่ง AT ทั้งหมดได้

      ตัวอย่างการใช้งาน

      ลองพิจารณาตัวอย่างการรับข้อมูลความชื้นและอุณหภูมิในอากาศจากเซ็นเซอร์ DHT11 ที่เชื่อมต่อกับ Arduino บนอุปกรณ์ Android (โทรศัพท์ สมาร์ทโฟน แท็บเล็ต) Arduino รับข้อมูลจากเซ็นเซอร์ DHT11 ทุกๆ 10 วินาทีและส่งผ่านโมดูล HC05 ไปยังอุปกรณ์ Android

      เราจะต้องมีส่วนต่อไปนี้:

      • บอร์ดอาร์ดูโน่
      • คณะกรรมการต้นแบบ
      • เซ็นเซอร์ DHT11
      • โมดูลบลูทูธ HC05
      • สายเชื่อมต่อ
      • โทรศัพท์หรือแท็บเล็ต Android

      มาประกอบวงจรดังรูป:


      เราได้รับ:


      มาอัปโหลดภาพร่างไปยังบอร์ด Arduino (ดูด้านล่าง) - รับข้อมูลความชื้นและอุณหภูมิจากเซ็นเซอร์ DHT11 และส่งออกข้อมูลไปยังพอร์ตอนุกรม (ฮาร์ดแวร์) ผ่านโมดูล HC05 บนอุปกรณ์ Android

      H" // ค่าคงที่ #define DHTPIN 8 // pin สำหรับเชื่อมต่อ DATA contact #define DHTTYPE DHT11 // เซ็นเซอร์ DHT 11 #define INTERVAL_GET_DATA 2000 // ช่วงเวลาการวัด, ms // การสร้างอินสแตนซ์ของวัตถุ DHT DHT dht(DHTPIN, DHTTYPE); // ตัวแปรสำหรับช่วงการวัดที่ไม่ได้ลงนาม long millis_int1=0; int pos=0; // รวมถึงไลบรารี SoftwareSerial.h #include ซอฟต์แวร์อนุกรม mySerial(2, 3); // ระบุพิน rx และ tx ตามลำดับ การตั้งค่าเป็นโมฆะ() ( Serial.begin(9600); // เริ่มพอร์ตอนุกรม mySerial.begin(9600); dht.begin(); // เริ่ม DHT Serial.println("start prg " ); ) void loop() ( if(millis()-millis_int1 >= INTERVAL_GET_DATA) ( pos=1-pos; if(pos==0) ​​​​( // รับข้อมูลความชื้นจาก DHT11 int humid = dht.readHumidity (); // ส่งออกไปยังมอนิเตอร์พอร์ตอนุกรม Serial.print("humidity=");Serial.println(humidity); mySerial.print("H=");mySerial.println(humidity); ) else ( // รับข้อมูลความชื้นจาก DHT11 int temp = dht.readTemperature(); // ส่งออกไปยังมอนิเตอร์พอร์ตอนุกรม Serial.print("temperature=");Serial.println(temp); mySerial.print("T=");mySerial .println(temp) ; ) // เริ่มต้นช่วงการนับ millis_int1=millis(); ) )

      มาตรวจสอบอุปกรณ์ Android ว่าการรับข้อมูลที่ส่งโดย Arduino ผ่านโมดูลบลูทู ธ HC05 มาติดตั้งโปรแกรม Bluetooth Terminal บนอุปกรณ์ Android กัน ในโปรแกรมเราจะสร้างการเชื่อมต่อกับโมดูล HC05:


      และเราสังเกตการรับข้อมูลที่มาจาก Arduino ผ่านโมดูล HC05:


      และส่งออกข้อมูลไปยังมอนิเตอร์พอร์ตอนุกรม Arduino IDE:


      คำถามที่พบบ่อย FAQ

      1. ไม่มีการตอบสนองต่อคำสั่ง AT จากโมดูล
      • ตรวจสอบว่าเชื่อมต่อโมดูลอย่างถูกต้อง
      • ตรวจสอบการเชื่อมต่อของพิน KEY ของโมดูล (หรือพิน 34) ถึง 3.3V
      • ตรวจสอบการตั้งค่าสำหรับพอร์ตอนุกรม (ความเร็ว 38400 บอด อาจเป็นสำหรับโมดูล ผู้ผลิตที่แตกต่างกันปิด).
      2. อุปกรณ์ Android ไม่สามารถเชื่อมต่อกับโมดูลบลูทูธได้HC05
      • ตรวจสอบการเชื่อมต่อของโมดูลกับแหล่งจ่ายไฟ ไฟ LED บนโมดูลควรกะพริบอย่างรวดเร็ว
      • ตรวจสอบว่าพิน KEY ของโมดูล (หรือพิน 34) ถูกตัดการเชื่อมต่อจาก 3.3V;
      • ตั้งค่าบทบาททาสโดยใช้คำสั่ง AT (AT+ROLE=0)
      3. ข้อมูลจะไม่ถูกถ่ายโอนไปยังอุปกรณ์แอนดรอยด์
      • ตรวจสอบว่าโมดูลบลูทูธ HC05 เชื่อมต่ออย่างถูกต้องกับบอร์ด Arduino
      • อัตรารับส่งข้อมูล ข้อมูลอาดูโน่และ HC05 จะต้องตรงกับชุดหนึ่งโดยใช้คำสั่ง AT+UART AT