您好,登錄后才能下訂單哦!
這篇文章主要介紹“Arduino與Android藍牙通信的方法是什么”,在日常操作中,相信很多人在Arduino與Android藍牙通信的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Arduino與Android藍牙通信的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
主機:能夠主動發起掃描并匹配從機模塊
從機:只能被掃描和匹配
一個模塊可以即是主機也是從機
藍牙的AT模式就理解為設置模式好了。在設置模式下,我們設置一個藍牙的以下重要參數:
藍牙模塊名稱。既你的藍牙設備被別的設備掃描到時所顯示的名字;
如果是主從一體模塊,可在AT模式下設置其角色;
設置密碼;
通信波特率。需要注意,AT模式和工作模式下的波特率是不同的。
AT模式下,藍牙模塊無法被掃描并匹配。
該模式下,藍牙可以掃描、被掃描,匹配、被匹配。這是與AT模式相對的一個模式,該模式下就無法再對藍牙模塊進行設置了。
Zduino UNO R3
OpenJumper Bluetooth V2.0
OpenJumper Bluetooth V2.0核心模塊屬于HC系列藍牙模塊中的HC-05主從模塊。即主從一體,通過AT設置可改變其角色;
該模塊僅支持SPP(Serial Port Profile,串行端口規范)規范,因此也只能實現“無線串口”通信功能,而無法支持像藍牙耳機或藍牙鍵盤那樣的功能;
為了正確連接該模塊,需要了解下面的重要參數:
AT模式
串口波特率:38400bps,停止位:1位,校驗位:無
工作模式
串口波特率:9600bps,停止位:1位,校驗位:無
指示燈含義
該模塊有兩個LED:State,狀態指示燈,Link,連接指示燈。他們的閃爍定義如下:
State
快閃(0.5s間隔):搜索狀態或等待外部鏈接
慢閃(1s間隔):藍牙設置模式
雙閃(間隔0.5s亮2次,滅3s):配對成功,可以通信,需要補充
Link
常亮:配對成功,可以通信
1. 編寫AT指令設置程序如下;
/* * OpenJumper Bluetooth v2.0 AT模式設置代碼 * updated by madmatrix */ #define LED 13 void setup() { pinMode(LED,OUTPUT); Serial.begin(38400); // AT模式下的波特率必須為該值,否則會設置失敗 delay(100); Serial.println("AT"); delay(100); Serial.println("AT+NAME=My Bluetooth Test");//命名模塊名 delay(100); Serial.println("AT+ROLE=0");//設置主從模式:0從機,1主機 delay(100); Serial.println("AT+PSWD=1234");//設置配對密碼 delay(100); Serial.println("AT+UART=9600,1,0");// 設置工作模式下的波特率為9600,停止位1,校驗位無 delay(100); Serial.println("AT+RMAAD");//清空配對列表 } void loop() { digitalWrite(LED, HIGH); // 可以在每次上傳該程序的時候調整一下這里的延時 // 通過觀察LED閃爍間隔來確認程序是否已經完成上傳至arduino delay(1000); digitalWrite(LED, LOW); delay(1000); }
2. 在未連接藍牙模塊的情況下上傳程序至arduino;
如果此時藍牙通電,并且串口線與arduino的串口相連,將占用arduino uno唯一的串口(0和1號引腳),程序將無法上傳到arduino;
雖然電腦與arduino是通過usb連接,但實際上usb通過arduino上的一塊轉換芯片連接至串口,所以本質上仍然是電腦通過串口與arduino相連。
3. 連接藍牙與arduino,注意要將藍牙模塊的AT引腳連接至vcc(高電平),此時藍牙模塊的State燈慢閃(間隔1s),表示進入AT模式。連接好后,按下Arduino復位鍵。等待arduino上的RX和TX指示燈不再閃爍,此時藍牙模塊已經設置好。注意State指示燈閃爍頻率不變;
也可以不按復位鍵,將usb拔了再插上。這個過程等于按下復位鍵。他們都會使arduino重新啟動,將已經上傳至控制板中的程序再運行一遍;
此時由于藍牙模塊與arduino通過串口相連,那么程序中的Serial.println的輸出都通過串口發送至藍牙模塊,從而達到了設置藍牙的目的;
在第一步中,我們設置的波特率為38400bps,此時的作用就是為了與處于AT設置模式下的藍牙模塊通信,如果設置為9600,設置將失敗。
4. 拔下藍牙模塊的AT引腳和VCC引腳線,此時上傳工作代碼至arduino。
拔下AT引腳線,讓AT引腳置空,下次藍牙模塊上電時將進入工作模式;
此時工作代碼中的串口波特率應該設置為9600bps,這是藍牙模塊工作狀態下的波特率,注意工作代碼中的串口通信波特率也應該是9600bps。
5. 藍牙模塊上電(VCC引腳接通),但AT引腳保持懸空狀態,此時藍牙模塊的State燈快閃(0.5s間隔),表示進入搜索狀態,可使用手機進行配對。
1. 隨便寫一段簡單的工作代碼
#define LED 13 void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); } void loop() { char val; val = Serial.read(); if (val != -1) { Serial.print("Arduino answer: Cogito Ergo Sum!"); } digitalWrite(LED, HIGH); delay(2000); digitalWrite(LED, LOW); delay(2000); }
2. 在Android手機上下載一個叫做“藍牙串口”的小軟件,裝好后,打開軟件,然后看到下面的界面:
修改模式為“會話模式”
點擊連接,在彈出的窗口中,點擊“掃描設備”,不出意外,會看到你設置的藍牙模塊的名字,然后選中:
等待軟件彈出“連接到xxx”的提示后,再看藍牙模塊的指示燈,此時Link等常亮,State燈進入雙閃狀態。
這樣就可以開始“會話”了,隨便輸入一段文字,就可以得到我們代碼中預先設置好的答復:
到此,關于“Arduino與Android藍牙通信的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。