中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Arduino與Android藍牙通信的方法是什么

發布時間:2022-01-12 16:06:14 來源:億速云 閱讀:166 作者:iii 欄目:互聯網科技

這篇文章主要介紹“Arduino與Android藍牙通信的方法是什么”,在日常操作中,相信很多人在Arduino與Android藍牙通信的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Arduino與Android藍牙通信的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

關于藍牙模塊的一些基礎概念

藍牙主機和從機

主機:能夠主動發起掃描并匹配從機模塊

從機:只能被掃描和匹配

一個模塊可以即是主機也是從機

AT模式

藍牙的AT模式就理解為設置模式好了。在設置模式下,我們設置一個藍牙的以下重要參數:

  • 藍牙模塊名稱。既你的藍牙設備被別的設備掃描到時所顯示的名字;

  • 如果是主從一體模塊,可在AT模式下設置其角色;

  • 設置密碼;

  • 通信波特率。需要注意,AT模式和工作模式下的波特率是不同的。

AT模式下,藍牙模塊無法被掃描并匹配。

工作模式

該模式下,藍牙可以掃描、被掃描,匹配、被匹配。這是與AT模式相對的一個模式,該模式下就無法再對藍牙模塊進行設置了。

元件清單

Zduino UNO R3

OpenJumper Bluetooth V2.0

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

常亮:配對成功,可以通信

AT設置

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手機上下載一個叫做“藍牙串口”的小軟件,裝好后,打開軟件,然后看到下面的界面:

Arduino與Android藍牙通信的方法是什么

修改模式為“會話模式”

點擊連接,在彈出的窗口中,點擊“掃描設備”,不出意外,會看到你設置的藍牙模塊的名字,然后選中:

Arduino與Android藍牙通信的方法是什么

等待軟件彈出“連接到xxx”的提示后,再看藍牙模塊的指示燈,此時Link等常亮,State燈進入雙閃狀態。

這樣就可以開始“會話”了,隨便輸入一段文字,就可以得到我們代碼中預先設置好的答復:

Arduino與Android藍牙通信的方法是什么

到此,關于“Arduino與Android藍牙通信的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临朐县| 泸水县| 社旗县| 龙口市| 静海县| 郑州市| 辽阳市| 商丘市| 华蓥市| 化隆| 乐平市| 广宁县| 罗甸县| 十堰市| 仁怀市| 枝江市| 南宫市| 商城县| 富川| 库车县| 新津县| 舟山市| 龙门县| 资中县| 阳原县| 肇庆市| 四平市| 宜春市| 龙游县| 天柱县| 柳河县| 荆门市| 九寨沟县| 灵丘县| 东山县| 登封市| 新田县| 美姑县| 都安| 霍林郭勒市| 饶河县|