Arduino 實(shí)例(十一)手機(jī)制作APP和HC-05藍(lán)牙連接并傳輸信息(arduino通過藍(lán)牙向手機(jī)傳遞數(shù)據(jù))
1 手機(jī)制作APP
a)進(jìn)入APP inventor 網(wǎng)址
http://app.gzjkw.net/
b)加入列表選擇框,按鈕,選一個(gè)水平布局,將列表和按鈕放到里面。
c)加入表格布局,拖入4個(gè)按鈕到界面和一個(gè)標(biāo)簽,完成后樣式
d)邏輯設(shè)計(jì)
e) 程序完成后,點(diǎn)打包apk,手機(jī)掃描二維碼,下載app到手機(jī)中,安裝手機(jī)app即可
2 HC-05藍(lán)牙模塊與Arduino連接
3 實(shí)物連接圖
4 Arduino 程序
#include <SoftwareSerial.h> //庫文件SoftwareSerial BT(8, 9); //設(shè)置藍(lán)牙與板子的連接端口。 pin 8 接藍(lán)牙的 TXD pin 9 接藍(lán)牙的 RXDchar X; //定義一個(gè)變量存數(shù)據(jù)。void setup() { Serial.begin(38400); //串口監(jiān)視器通信速率,38400 Serial.println("藍(lán)牙連接正常"); //串口監(jiān)視器顯示藍(lán)牙正常狀態(tài) BT.begin(38400); //藍(lán)牙通信速率,默認(rèn)一般為 38400}void loop() //大循環(huán),執(zhí)行。{ if (Serial.available()) //檢測:【串口】如果數(shù)據(jù)寫入,則執(zhí)行。 { X = Serial.read(); //把寫入的數(shù)據(jù)給到自定義變量 X BT.print(X); //把數(shù)據(jù)給藍(lán)牙 } if (BT.available()) //檢測:【藍(lán)牙】如果數(shù)據(jù)寫入,則執(zhí)行。 { X = BT.read(); //把檢測到的數(shù)據(jù)給到自定義變量 X Serial.print(X); //把從藍(lán)牙得到的數(shù)據(jù)顯示到串口監(jiān)視器 }}
5 上傳程序后,藍(lán)牙模塊燈閃爍地非??欤_認(rèn)藍(lán)牙連接正常
6 HC-05藍(lán)牙模塊進(jìn)入AT模式非常關(guān)鍵,我在這塊摸索了很久。斷電后,按HC-05按鍵,再上電,這時(shí)HC-05藍(lán)牙模塊燈是很慢地一閃一閃的,串口輸入AT,看返回是否是OK,OK,表示進(jìn)去AT模式,若不是,斷電再試驗(yàn)一次。
7 手機(jī)連接藍(lán)牙模塊HC-05,密碼是1234.
8 手機(jī)APP選擇藍(lán)牙
連接成功后,點(diǎn)擊1,2,3,4
9 手機(jī)APP 按鍵1,2,3,4 的信息顯示在了Arduino串口監(jiān)視器中