Arduino Uno,電子愛好者和學生中最受歡迎的微控制器,使用 Arduino 很容易開始使用嵌入式系統(tǒng) 但是 Arduino 的一個缺點是它需要使用 USB 電纜連接到計算機才能上傳代碼,因為它已經(jīng)完成了對無線通信有任何板載支持。有時,如果您的項目固定在某個地方,則很難將板與 PC 連接起來。解決這個問題的唯一方法是對 Arduino 進行無線編程。在 ESP8266 和 ESP32 中可以輕松完成無線編程或 OTA(無線)編程,因為它們內(nèi)置了 Wi-Fi 支持。但在 Arduino 中,我們必須使用藍牙模塊對其進行無線編程。所以在這里我們將學習如何通過藍牙對 Arduino 進行編程。
所需組件
Arduino UNO
HC05藍牙模塊
跳線
1K、2.2K 電阻器
電容 (0.1uF)
電源適配器
面包板
HC05藍牙模塊
HC-05模塊是藍牙串口協(xié)議模塊,專為微控制器之間的無線通信而設計。HC-05藍牙模塊提供主從模式配置之間的切換模式,并通過9600波特率的串行通信進行通信,便于與控制器接口。HC05 模塊在 3.3 V 上工作,但我們可以將其連接到 5V 電源電壓,因為該模塊帶有板載 5v 至 3.3 V 穩(wěn)壓器。
藍牙是最簡單的無線通信方式,我們用它構(gòu)建了許多有趣的項目,如 藍牙控制機器人、 藍牙語音控制、 藍牙家庭自動化等。您可以在此處查看所有基于藍牙的項目。
通過藍牙對 Arduino 進行編程
要對 Arduino 進行無線編程,首先,我們必須對 Arduino 進行編程以響應 AT 命令。為此,將 Arduino 連接到筆記本電腦的串口并上傳以下代碼:
#includeSoftwareSerial HC05(2,3); 無效設置() { 序列號.開始(9600); Serial.println("輸入AT指令:"); HC05.開始(38400); } 無效循環(huán)() { 如果 (HC05.available()) Serial.write(HC05.read()); if (Serial.available()) HC05.write(Serial.read()); }
代碼的前兩行用于包含SoftwareSerial庫并定義連接藍牙的發(fā)送器和接收器引腳。SoftwareSerial庫用于允許與 Arduino 的硬件 Tx 和 Rx 引腳以外的數(shù)字引腳進行串行通信。多個軟件串行端口可用于使用SoftwareSerial庫進行串行通信。
#includeSoftwareSerial HC05(2,3);
現(xiàn)在在setup 函數(shù)中,定義硬件和軟件串行端口的波特率。硬件和軟件串行端口的波特率分別為 9600 和 38400。
無效設置() { 序列號.開始(9600); Serial.println("輸入AT指令:"); HC05.開始(38400); }
循環(huán)函數(shù)內(nèi)部使用了兩個if條件。第一個條件檢查是否向 HC05 發(fā)出任何命令,如果是,則將其寫入 Arduino 串行監(jiān)視器。第二個條件檢查是否有任何命令發(fā)送給 Arduino 串行監(jiān)視器,如果是,則將其發(fā)送給 HC05。
無效循環(huán)() { 如果 (HC05.available()) Serial.write(HC05.read()); if (Serial.available()) HC05.write(Serial.read()); }
接下來,在 HC05 上連接 Arduino,使其進入 AT 命令模式。相同的電路圖如下:
在將 Arduino 連接到計算機之前,先按下按鍵,然后將 Arduino 連接到計算機。按住按鍵直到藍牙模塊 LED 開始以 2 秒的間隔閃爍。藍牙模塊 LED 在命令模式下的閃爍速度比正常模式下慢。
現(xiàn)在打開一個串行監(jiān)視器并輸入以下命令,作為回報,每次命令成功運行時,板都會以“ OK ”響應。
AT+ORGL
AT+ROLE=0
AT+POLAR=1,0
AT+UART=115200, 0, 0
AT+INIT
成功測試 AT 命令后,只需移除所有連接并按照下面的示意圖連接即可。
使用適配器或 9V 電池為 Arduino 供電。之后,轉(zhuǎn)到筆記本電腦中的“設備”,打開藍牙,然后將藍牙模塊連接到筆記本電腦。
設備配對成功后,接下來的任務就是找到HC05藍牙模塊的COM口。為此,請轉(zhuǎn)到“設備管理器”,然后檢查 COM 端口選項。它將顯示兩個 COM 端口,一個用于傳入,另一個用于傳出。在上傳程序時,我們需要選擇第二個 COM 端口號。
現(xiàn)在打開 Arduino IDE 并選擇閃爍程序,選擇正確的 com 端口,然后點擊上傳按鈕。如果一切順利,Arduino 板載 LED 將以 1 秒的間隔開始閃爍。
#include
SoftwareSerial HC05(2,3);
無效設置()
{
序列號.開始(9600);
Serial.println("輸入AT指令:");
HC05.開始(38400);
}
無效循環(huán)()
{
如果 (HC05.available())
Serial.write(HC05.read());
if (Serial.available())
HC05.write(Serial.read());
}
-
藍牙
+關注
關注
114文章
5844瀏覽量
170783 -
編程
+關注
關注
88文章
3633瀏覽量
93853 -
Arduino
+關注
關注
188文章
6474瀏覽量
187430
發(fā)布評論請先 登錄
相關推薦
評論