สารบัญ:

Arduino Smartphone Coms/Serial Monitor ผ่าน Bluetooth HC-05, HC-06: 4 ขั้นตอน (พร้อมรูปภาพ)
Arduino Smartphone Coms/Serial Monitor ผ่าน Bluetooth HC-05, HC-06: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino Smartphone Coms/Serial Monitor ผ่าน Bluetooth HC-05, HC-06: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino Smartphone Coms/Serial Monitor ผ่าน Bluetooth HC-05, HC-06: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Arduino Bluetooth AT commands HC 05 HC 06 2024, ธันวาคม
Anonim
Arduino Smartphone Coms/Serial Monitor ผ่าน Bluetooth HC-05, HC-06
Arduino Smartphone Coms/Serial Monitor ผ่าน Bluetooth HC-05, HC-06

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

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

คุณจะต้องการ:

  • Arduino ที่คุณชื่นชอบ (Uno ใช้ที่นี่)
  • โมดูลบลูทูธ HC-05 หรือ HC-06
  • สมาร์ทโฟน (โทรศัพท์ Android ที่ใช้ที่นี่) และแอป Bluetooth ฟรี

ขั้นตอน:

  • ติดตั้งแอพ Bluetooth ฟรี
  • กำหนดค่าโมดูลบลูทูธ
  • เชื่อมต่อบลูทูธกับ Arduino
  • โหลดภาพร่างตัวอย่าง
  • ระบบทดสอบ

ขั้นตอนที่ 1: ติดตั้งแอพ Bluetooth

มีแอพ Bluetooth มากมายและแอพฟรีมากมาย ฉันใช้โทรศัพท์ Android แต่คาดว่าระบบอื่นๆ จะเหมือนกัน ฉันตัดสินใจใช้ BlueTerm 2 เนื่องจากมีตัวเลือกในการบันทึกข้อมูลที่ได้รับไปยังไฟล์ ฉันยังพบว่ามันใช้งานง่ายมาก ไปที่ Google Play และขอดาวน์โหลด BlueTerm 2

เมื่อคุณติดตั้งแอปแล้ว คุณสามารถเชื่อมต่อกับอุปกรณ์บลูทูธได้ โปรดทราบว่าอุปกรณ์บลูทูธจะต้องจับคู่กับโทรศัพท์ก่อนจึงจะสามารถใช้ในแอปใดๆ ได้:

เปิดบลูทูธ: ฉันไปที่การตั้งค่า>บลูทูธ

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

ตอนนี้เริ่ม BlueTerm 2 คลิกการตั้งค่า จากนั้นคลิกเชื่อมต่ออุปกรณ์และเลือกตามต้องการ คุณสามารถเปิดเครื่องโมดูล HC-05/HC-06 ได้ในขั้นตอนนี้ และตรวจสอบกระบวนการจับคู่หากต้องการ (แนบแหล่งจ่ายเชิงลบกับกราวด์และ 5v กับ Vcc)

ภาพ
ภาพ

ขั้นตอนที่ 2: กำหนดค่าโมดูล Bluetooth - ส่วนที่ 1 - การเชื่อมต่อและ HC-06

หากคุณยินดีที่จะใช้ชื่อเริ่มต้นและอัตรารับส่งข้อมูล คุณสามารถข้ามขั้นตอนนี้ได้ ค่าเริ่มต้นคือชื่อ: HC-05 หรือ HC-06 และ baud: 9600 ประโยชน์ของการกำหนดค่าโมดูลใหม่คือสามารถเลือกอัตราบอดที่เร็วขึ้น และสามารถตั้งชื่อให้เป็นที่รู้จักได้ง่ายขึ้น

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

ภาพร่างเพื่อปิดการใช้งานอนุกรม Arduino มีคำแนะนำ:

โหมดพิน(0, INPUT):

โหมดพิน (1, อินพุต);

ในส่วนการตั้งค่า{}

ฉันได้แนบแบบร่าง NoSerial.ino สร้างโฟลเดอร์ชื่อ 'NoSerial' ในโฟลเดอร์สเก็ตช์ของคุณและเพิ่ม NoSerial.ino ลงในโฟลเดอร์นี้ เริ่ม Arduino IDE ไปที่ File>Sketchbook>sketches>NoSerial เพื่อเปิดร่าง เลือกประเภทบอร์ดและพอร์ตจากเมนูเครื่องมือ แล้วคลิกปุ่มดาวน์โหลด

การเชื่อมต่อสำหรับการกำหนดค่า

เมื่อโหลดภาพร่างแล้ว เราสามารถเชื่อมต่อโมดูล Bluetooth กับบอร์ด Arduino ได้แล้ว การเชื่อมต่อ Tx และ Rx นั้นสลับกันได้เมื่อเทียบกับสิ่งที่เราจะทำในภายหลัง เนื่องจากเราต้องการสื่อสารกับพอร์ต PC สำหรับ Serial Monitor ไม่ใช่โปรเซสเซอร์หลักของ Arduino PC Tx เชื่อมต่อกับ Arduino Rx และในทางกลับกัน

โปรดทราบว่าโมดูล Bluetooth มีระดับ 3.3v สำหรับ Tx และ Rx ดังนั้นควรใช้ตัวแบ่งแรงดันไฟฟ้าสำหรับอินพุต Bluetooth Rx เมื่อเชื่อมต่อกับระบบ 5v โดยปกติแล้วเอาต์พุต Bluetooth 3.3v Tx จะถูกตรวจพบโดยระบบ 5v และสามารถเชื่อมต่อได้โดยตรง

ฉันพบว่าตัวแบ่งแรงดันไฟฟ้าที่ใช้ตัวต้านทาน 3k3 และ 6k8 ทำงานได้ถึง 115200 อัตราบอดแบบอนุกรม

โมดูล HC05 และ HC06 มีตัวควบคุมแรงดันไฟฟ้าในตัวและทำงานด้วย Vcc ที่เชื่อมต่อกับ 5v

ดังนั้นเชื่อมต่อ:

  • ตัวต้านทาน 3k3 ถึง D0
  • ตัวต้านทาน 6k8 ต่อกราวด์
  • เชื่อมต่อปลายอีกด้านของตัวต้านทานสองตัวเข้าด้วยกัน และเข้ากับขา Rx บนโมดูล Bluetooth
  • เชื่อมต่อขา Tx ของโมดูล Bluetooth กับ D1
  • เชื่อมต่อกราวด์พินของโมดูล Bluetooth กับ GND เชื่อมต่อพินกราวด์ของโมดูล Bluetooth กับ GND
  • เชื่อมต่อขา Vcc ของโมดูล Bluetooth กับ 5v

ดูภาพเพื่อดูรายละเอียด

ภาพ
ภาพ

ในการกำหนดค่าโมดูลจะต้องตั้งค่าเป็นโหมด AT ขั้นตอนจะแตกต่างกันสำหรับโมดูล HC-05 และ HC-06

HC-06

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

เชื่อมต่อสาย USB จากพีซีกับ Arduino และเริ่ม Arduino IDE ไฟ LED ของ Bluetooth จะกะพริบอย่างรวดเร็ว (~4Hz) เมื่ออยู่ในโหมด AT

เปิดมอนิเตอร์ Arduino Serial ผ่านเครื่องมือ>Serial Monitor ตั้งค่า baud เป็น 9600 และตั้งค่า 'No line ending'

ตอนนี้ป้อน AT แล้วคลิกส่ง หากทุกอย่างใช้งานได้ คุณจะเห็น 'ตกลง' กลับไปที่จอภาพ หากไม่มีอะไรกลับมา ให้ตรวจสอบการเดินสายอีกครั้งและลองการตั้งค่า Baud แบบอื่น

ด้วยการตกลงยืนยันการสื่อสารที่ดี เราสามารถเปลี่ยนชื่อและกำหนดอัตราบอดของตัวเองได้

ป้อน AT+NAMEARDUINO แล้วคลิกส่ง สิ่งนี้ตั้งชื่อโมดูลเป็น ARDUINO สามารถใช้ข้อความอื่นได้ หมายเหตุไม่มีช่องว่างในคำสั่ง

คำตอบควรเป็น OKsetname นี้ได้รับการเพิ่มไปยังตกลงที่ส่งก่อนหน้านี้

ตอนนี้ป้อน AT+BAUD8 ตั้งค่าบอดเป็น 115200

คำตอบควรเป็น OK115200 หากมีการส่งคำสั่ง AT เพิ่มเติม การตั้งค่าบอด Serial Monitor จะต้องเปลี่ยนเป็น 115200

สามารถกำหนดอัตราอื่น ๆ ได้ Baud4 คือ 9600, Baud5 คือ 19200, Baud6 38400, Baud7 57600 มีการตั้งค่าที่สูงกว่า 115200 แต่ให้ตรวจสอบก่อนว่าพีซีและ Arduino ของคุณสามารถยอมรับได้ (ของฉันไม่เกิน 128000) หมายเหตุ - หากคุณกำหนดอัตราที่สูงเกินไป คุณจะไม่สามารถสื่อสารกับมันเพื่อกำหนดคืนได้!!!

ภาพ
ภาพ

ขั้นตอนที่ 3: กำหนดค่าโมดูล Bluetooth - ส่วนที่ 2 - HC-05 และการทดสอบเริ่มต้น

HC-05

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

เปิดมอนิเตอร์ Arduino Serial ผ่านเครื่องมือ>Serial Monitor ตั้งค่าบอดเป็น 38400 และตั้งค่า 'Carriage Return'

ขั้นตอนต่อไปคือการทำให้บอร์ดเข้าสู่โหมด AT นี่คือจุดที่ปัญหาส่วนใหญ่เกิดขึ้นเนื่องจากความแตกต่างในบอร์ดผู้ให้บริการ

กระบวนการพื้นฐานคือการถือพิน 'กุญแจ' (พิน 34) ให้ต่ำไม่กี่วินาทีเมื่อเปิดเครื่อง

บอร์ดของฉันมีปุ่มสำหรับทำสิ่งนี้ (หมุดเชื่อมต่อเพิ่มเติมสองตัวคือ EN และ STATE) ถอดสาย Vcc ออกจากโมดูล Bluetooth จากนั้นในขณะที่กดปุ่มค้างไว้ ให้ปรับใช้ 5v อีกครั้งกับ Vcc ไฟ LED ควรกะพริบเป็นระยะ ๆ ประมาณ 2 วินาที ฉันกดปุ่มค้างไว้จนกระทั่งแฟลชครั้งที่สอง

บอร์ดบางบอร์ดมีพินคีย์เป็นหนึ่งใน 6 พินของโมดูล ถ้าเป็นเช่นนั้นให้ผูกไว้ที่ 3.3v ระหว่างเปิดเครื่อง

บางบอร์ดไม่มีและผู้ใช้ต้องประสานปุ่มระหว่างคีย์พิน (34) และ 3.3v (พิน 12) ดูคู่มือที่แนบมา

ด้วยไฟ LED ที่กะพริบช้าๆ เราสามารถตรวจสอบการสื่อสารได้ ป้อน AT แล้วคลิกส่ง คำตอบควรจะโอเค ฉันพบว่าการตอบกลับนี้ซ้ำอย่างต่อเนื่องจนกว่าฉันจะส่งบรรทัดว่าง – เพียงแค่คลิกส่ง หากคุณได้รับ ERROR:(0) ให้ส่งบรรทัดว่างแล้วส่ง AT

ตอนนี้ตั้งชื่อใหม่ ป้อน AT+NAME=ARDUINO การตอบกลับน่าจะใช้ได้ อย่างไรก็ตามในกรณีของฉัน โมดูลจะรีเซ็ตออกจากโหมด AT (ไฟ LED กะพริบเร็ว) ฉันไม่พบสาเหตุและสิ่งนี้ก็เกิดขึ้นเมื่อใช้การเชื่อมต่อแบบอนุกรม FDTI แทนที่จะเป็น Arduino ฉันกลับเข้าสู่โหมด AT เหมือนเดิม: ถอดสายไฟออกจากบอร์ดและเชื่อมต่อใหม่ในขณะที่กดปุ่ม การตรวจสอบภายหลังพบว่ามีการเปลี่ยนชื่อ

ถัดไปตั้งค่า Baud. ป้อน AT+UART=115200, 1, 0 การตอบกลับควรจะใช้ได้ อย่างไรก็ตามบางครั้งมันก็กระโดดออกจากโหมด AT ด้านบน

สามารถตรวจสอบการตั้งค่า UART ได้ด้วยคำสั่ง AT+UART? คำตอบควรจะใช้ได้ และ +UART=115200, 1, 0

การทดสอบเบื้องต้น

ในขั้นตอนนี้ เรามีพีซีที่มีการเชื่อมต่อแบบอนุกรมกับโมดูล Bluetooth ดังนั้น การทดสอบเบื้องต้น ทางเลือกสามารถทำได้โดยเริ่มแอพ BlueTerm 2 ของสมาร์ทโฟน (สมมติว่าโมดูลนั้นจับคู่กับโทรศัพท์แล้ว) เชื่อมต่อกับ ARDUINO ตั้งค่า Arduino Serial Monitor เป็น 115200 บอด พิมพ์ 'สวัสดีชาวโลก' แล้วคลิกส่ง สิ่งนี้ควรปรากฏบน BlueTerm 2 ตอนนี้พิมพ์ 'สวัสดีกับคุณ' ลงใน BlueTerm 2 ซึ่งตอนนี้ควรปรากฏใน Serial Monitor

ภาพ
ภาพ
ภาพ
ภาพ

ขั้นตอนที่ 4: เชื่อมต่อโมดูล Bluetooth กับ Arduino

เราต้องโหลดร่างการทดสอบ Arduino ของเราก่อน BTtest.ino ที่แนบมาจะส่งตัวเลขทุกๆ 0.5 วินาที แล้วเพิ่มทีละค่า พลิกไปที่ 0 จาก 255 สร้างโฟลเดอร์ชื่อ BTtest ในโฟลเดอร์สเก็ตช์และเพิ่ม BTtest.ino

การเชื่อมต่อแบบอนุกรม Arduino ยังใช้สำหรับดาวน์โหลดภาพร่าง ดังนั้นต้องถอดสายไฟสองเส้นไปยังโมดูล Bluetooth เพื่อไม่ให้รบกวน

หลังจากดาวน์โหลดภาพสเก็ตช์แล้ว ให้เชื่อมต่อโมดูล Bluetooth อีกครั้ง อย่างไรก็ตาม โปรดทราบว่าจำเป็นต้องสลับ Tx และ Rx บน Arduino เมื่อเทียบกับการตั้งค่าการกำหนดค่าก่อนหน้านี้

ดังนั้นเชื่อมต่อ:

  • ตัวต้านทาน 3k3 ถึง D1
  • ตัวต้านทาน 6k8 ต่อกราวด์
  • เชื่อมต่อปลายอีกด้านของตัวต้านทานสองตัวเข้าด้วยกัน และเข้ากับขา Rx บนโมดูล Bluetooth
  • เชื่อมต่อขา Tx ของโมดูล Bluetooth กับ D0
  • เชื่อมต่อกราวด์พินของโมดูล Bluetooth กับ GND เชื่อมต่อพินกราวด์ของโมดูล Bluetooth กับ GND
  • เชื่อมต่อขา Vcc ของโมดูล Bluetooth กับ 5v

ดูภาพเพื่อดูรายละเอียด

ภาพ
ภาพ

ตอนนี้เปิดเครื่อง Arduino ไม่จำเป็นต้องเชื่อมต่อกับพีซี

จับคู่บอร์ดกับสมาร์ทโฟนหากยังไม่ได้เชื่อมต่อ (ดูติดตั้งแอพ Bluetooth ด้านบน) จากนั้นเริ่ม BlueTerm 2 คลิกการตั้งค่า จากนั้นคลิกเชื่อมต่ออุปกรณ์และเลือก ARDUINO คุณควรเห็นหน้าจอเติมด้วยตัวเลขที่เพิ่มขึ้นจาก 0 ถึง 255

ภาพ
ภาพ

ฉันหวังว่าคุณจะพบว่าสิ่งนี้มีประโยชน์อย่างที่ฉันมี

ไมค์

บลูทู ธ ท้าทาย
บลูทู ธ ท้าทาย
บลูทู ธ ท้าทาย
บลูทู ธ ท้าทาย

รองชนะเลิศใน Bluetooth Challenge

แนะนำ: