Arduino Uno ไมโครคอนโทรลเลอร์ที่ได้รับความนิยมมากที่สุดในบรรดามือสมัครเล่นอิเล็กทรอนิกส์และนักเรียนและมันค่อนข้างง่ายในการเริ่มต้นกับระบบฝังตัวโดยใช้ Arduino แต่ข้อเสียเปรียบอย่างหนึ่งของ Arduino คือต้องเชื่อมต่อกับคอมพิวเตอร์โดยใช้สาย USB เพื่ออัปโหลดรหัสตามที่เคยทำมา มีการสนับสนุนบนเครื่องบินสำหรับการสื่อสารไร้สาย และบางครั้งการเชื่อมต่อบอร์ดกับพีซีเป็นเรื่องยากมากหากโครงการของคุณได้รับการแก้ไขแล้ว ทางออกเดียวของปัญหานี้คือการตั้งโปรแกรม Arduino แบบไร้สาย การเขียนโปรแกรมแบบไร้สายหรือ OTA (Over the Air) สามารถทำได้อย่างง่ายดายใน ESP8266 และ ESP32 เนื่องจากมีการรองรับ Wi-Fi ในตัว แต่ใน Arduino เราต้องใช้โมดูลบลูทู ธ เพื่อตั้งโปรแกรมแบบไร้สาย ดังนั้นที่นี่เราจะไปเรียนรู้วิธีการเขียนโปรแกรม Arduino ผ่าน Bluetooth
ส่วนประกอบที่จำเป็น
- Arduino UNO
- โมดูลบลูทู ธ HC05
- สายจัมเปอร์
- ตัวต้านทาน 1K, 2.2K
- ตัวเก็บประจุ (0.1uF)
- อะแดปเตอร์ไฟฟ้า
- เขียงหั่นขนม
โมดูลบลูทู ธ HC05
โมดูล HC ‐ 05 เป็นโมดูล Bluetooth Serial Port Protocol ออกแบบมาเป็นพิเศษสำหรับการสื่อสารไร้สายระหว่างไมโครคอนโทรลเลอร์ โมดูลบลูทู ธ HC-05 มีโหมดการสลับระหว่างการกำหนดค่าโหมดหลักและโหมดทาสและสื่อสารผ่านการสื่อสารแบบอนุกรมที่อัตรารับส่งข้อมูล 9600 ซึ่งทำให้ง่ายต่อการเชื่อมต่อกับคอนโทรลเลอร์ โมดูล HC05 ทำงานบน 3.3 V แต่เราสามารถเชื่อมต่อกับแรงดันไฟฟ้า 5V ได้เนื่องจากโมดูลมาพร้อมกับตัวควบคุมออนบอร์ด 5v ถึง 3.3 V
บลูทู ธ เป็นวิธีที่ง่ายที่สุดสำหรับการสื่อสารแบบไร้สายและเราได้สร้างโครงการที่น่าสนใจมากมายเช่นหุ่นยนต์ที่ควบคุมด้วยบลูทู ธ, การควบคุมด้วยเสียงบลูทู ธ, ระบบอัตโนมัติภายในบ้านบลูทู ธ ฯลฯ คุณสามารถตรวจสอบโครงการที่ใช้ Bluetooth ทั้งหมดได้ที่นี่
โปรแกรม Arduino ผ่านบลูทู ธ
ในการเขียนโปรแกรม Arduino แบบไร้สายก่อนอื่นเราต้องตั้งโปรแกรม Arduino ให้ตอบสนองต่อคำสั่ง AT สำหรับสิ่งนั้นให้เชื่อมต่อ Arduino กับพอร์ตอนุกรมของแล็ปท็อปและอัปโหลดรหัสด้านล่าง:
# รวม
รหัสสองบรรทัดแรกใช้เพื่อรวมไลบรารี SoftwareSerial และเพื่อกำหนดพินตัวส่งและตัวรับที่เชื่อมต่อบลูทู ธ SoftwareSerial library ใช้เพื่ออนุญาตการสื่อสารแบบอนุกรมกับพินดิจิทัลนอกเหนือจากพิน Hardware Tx และ Rx ของ Arduino สามารถใช้พอร์ตอนุกรมของซอฟต์แวร์หลายพอร์ตสำหรับการสื่อสารแบบอนุกรมโดยใช้ไลบรารี SoftwareSerial
# รวม
ตอนนี้อยู่ใน ฟังก์ชันการตั้งค่า กำหนดอัตรารับส่งข้อมูลสำหรับพอร์ตอนุกรมของฮาร์ดแวร์และซอฟต์แวร์ อัตราบอดสำหรับพอร์ตอนุกรมฮาร์ดแวร์และซอฟต์แวร์คือ 9600 และ 38400 ตามลำดับ
การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); Serial.println ("ป้อนคำสั่ง AT:"); HC05.begin (38400); }
มีสองคนคือ ถ้า เงื่อนไขที่ใช้ภายใน วง ฟังก์ชั่นเงื่อนไขแรกตรวจสอบว่ามีการกำหนดคำสั่งใด ๆ ให้กับ HC05 หรือไม่ถ้าใช่จากนั้นเขียนลงใน Arduino Serial Monitor เงื่อนไขที่สองตรวจสอบว่ามีการกำหนดคำสั่งใด ๆ ให้กับ Arduino Serial Monitor หรือไม่ถ้าใช่จากนั้นส่งไปที่ HC05
เป็นโมฆะ loop () {if (HC05.available ()) Serial.write (HC05.read ()); ถ้า (Serial.available ()) HC05.write (Serial.read ()); }
จากนั้นเชื่อมต่อ Arduino ที่ HC05 เพื่อนำเข้าสู่โหมด AT Command วงจรแผนภาพสำหรับเดียวกันได้รับด้านล่าง:
ก่อนเชื่อมต่อ Arduino กับคอมพิวเตอร์ให้กดปุ่มคีย์จากนั้นเชื่อมต่อ Arduino เข้ากับคอมพิวเตอร์ กดปุ่มคีย์ค้างไว้จนกว่าไฟ LED โมดูล Bluetooth จะเริ่มกะพริบในช่วงเวลา 2 วินาที ไฟ LED ของโมดูลบลูทู ธ กะพริบช้าลงในโหมดคำสั่งกว่าโหมดปกติ
ตอนนี้เปิดมอนิเตอร์แบบอนุกรมและป้อนคำสั่งต่อไปนี้ในทางกลับกันบอร์ดจะตอบสนองด้วยคำสั่ง" ตกลง " ทุกครั้งที่รันคำสั่งสำเร็จ
ที่ + ORGL AT + ROLE = 0 AT + POLAR = 1,0 AT + UART = 115200, 0, 0 AT + INIT
หลังจากทดสอบคำสั่ง AT สำเร็จแล้วเพียงแค่ลบการเชื่อมต่อทั้งหมดและเชื่อมต่อตามแผนผังด้านล่าง
ใช้อะแดปเตอร์หรือแบตเตอรี่ 9V เพื่อจ่ายไฟให้กับ Arduino หลังจากนี้ไปที่ ' อุปกรณ์' ในแล็ปท็อปของคุณเปิดบลูทู ธ จากนั้นเชื่อมต่อโมดูลบลูทู ธ กับแล็ปท็อปของคุณ
หลังจากจับคู่อุปกรณ์สำเร็จแล้วภารกิจต่อไปคือการค้นหาพอร์ต COM สำหรับโมดูลบลูทู ธ HC05 โดยไปที่ ' Device Manager' และตรวจสอบตัวเลือก COM Ports จะแสดงพอร์ต COM สองพอร์ตหนึ่งพอร์ตสำหรับขาเข้าและอีกพอร์ตสำหรับขาออก เราจำเป็นต้องเลือกหมายเลขพอร์ต COM ที่สองในขณะที่เรากำลังอัปโหลดโปรแกรม
ตอนนี้เปิด Arduino IDE แล้วเลือกโปรแกรมกะพริบเลือกพอร์ต com ที่ถูกต้องแล้วกดปุ่มอัปโหลด หากทุกอย่างเป็นไปด้วยดี LED ออนบอร์ด Arduino จะเริ่มกะพริบในช่วงเวลา 1 วินาที
ดูวิดีโอการทำงานที่สมบูรณ์ด้านล่าง