藍牙技術(shù)在單片機控制中的應(yīng)用
1藍牙技術(shù)概述
(1)藍牙技術(shù)是一種無線數(shù)據(jù)傳輸技術(shù),在短距離無線數(shù)據(jù)傳送中有很大的應(yīng)用需求。藍牙無線通信在單片機應(yīng)用系統(tǒng)中可以實現(xiàn)兩個單片機串口之間的無線通信,也可實現(xiàn)手機和單片機之間的無線通信,并能實現(xiàn)雙向數(shù)字傳輸,這就給單片機無線控制和應(yīng)用提供了新的方法。
在單片機中應(yīng)用藍牙技術(shù),可以實現(xiàn)近程無線通信,搭建藍牙新功能的單片機系統(tǒng)應(yīng)用平臺,可以為單片機開發(fā)應(yīng)用技術(shù)增加新的內(nèi)容。
(2)本文使用的藍牙無線通信模塊是HC-05藍牙應(yīng)用模塊,它有兩種工作模式,即接收指令工作模式和自動連接工作模式。在自動連接工作模式下,模塊的工作模式有3種,分別為主機模式、從機模式和回環(huán)模式。常用的自動連接工作模式分別是主機模式和從機模式配對進行數(shù)據(jù)傳輸。選定使用的工作模式并再次上電后,模塊就會自動按照設(shè)定好的工作模式進行數(shù)據(jù)發(fā)送和接收。
模塊實物圖如圖1所示。
模塊引腳說明如表1所示,電路原理圖如圖2所示。
2HC-05藍牙無線通信模塊的設(shè)置
HC-05藍牙無線通信模塊需要在設(shè)置后才能使用,具體的設(shè)置過程如下:
(1)首先要準備UsB轉(zhuǎn)TTL模塊,將UsB轉(zhuǎn)TTL轉(zhuǎn)換模塊連接到電腦的UsB口上,然后利用串口調(diào)試助手進行藍牙模塊的AT命令調(diào)試,這時藍牙模塊的工作方式是接收指令工作模式。
(2)UsB轉(zhuǎn)TTL模塊與HC-05的連接如圖3所示,UsB轉(zhuǎn)TTL模塊的RxD接HC-05藍牙無線通信模塊的TxD端,UsB轉(zhuǎn)TTL模塊的TxD接HC-05藍牙無線通信模塊的RxD端,然后兩個模塊的VCC端相連接,兩個模塊的GND端相連接。
圖3USB轉(zhuǎn)TTL模塊與HC-05的連接
(3)當(dāng)藍牙模塊的工作方式是接收指令工作模式時,能執(zhí)行AT命令,用戶可通過串口調(diào)試助手向模塊發(fā)送各種AT指令,為模塊設(shè)定控制參數(shù)或發(fā)布控制命令。HC-05藍牙應(yīng)用模塊常用的AT指令詳細介紹如表2所示。
進入命令響應(yīng)工作模式有兩種方法:)1)模塊上電,未配對情況下就是AT模式,波特率為模塊本身的波特率,默認為9600,發(fā)送一次AT指令時需要置高一次PIО11;)2)PIО11置高電平后,再給模塊上電,此時模塊進入AT模式,波特率固定為38400,可以直接發(fā)送AT指令。
置高一次PIО11是指在藍牙模塊中有一個小按鍵,按一下就置高一次PIО11。也就是說,第一種方法需要每發(fā)送一次AT指令按一次;而第二種方式是長按的過程中上電,之后就無須再管了,直接發(fā)送AT命令即可。需要注意的是,兩種進入命令響應(yīng)工作模式的方式使用的波特率是不一樣的,建議使用第二種方式。
怎么區(qū)分是否進入了命令響應(yīng)工作模式呢?在藍牙模塊上有燈,當(dāng)燈快閃的時候,就是自動連接工作模式;當(dāng)燈慢閃的時候,就是命令響應(yīng)工作模式。
(4)AT命令簡介:進入到命令響應(yīng)工作模式之后,就可以使用串口調(diào)試助手進行藍牙調(diào)試了。需要注意的是,AT指令不區(qū)分大小寫,均以回車、換行結(jié)尾。
(5)藍牙模塊的配對設(shè)置:
1)設(shè)置第一個HC-05藍牙無線通信模塊。
串口調(diào)試助手xCОM將藍牙模塊1恢復(fù)默認設(shè)置:AT+ОRGL,并發(fā)送。
設(shè)置藍牙模塊1配對碼,配置藍牙1的配對碼:AT+PsWD="0000",并發(fā)送。藍牙1與藍牙2的配對碼自己隨意設(shè)置,但必須一樣,這樣才能成功配對。
設(shè)置1主模式串口調(diào)試助手A,將藍牙A配置為從機模式:AT+RОLE=1,并發(fā)送。
藍牙模塊1綁定藍牙模塊2地址。AT+BIND=98d3,32,30d8ea,這個地址是查詢藍牙模塊2的地址后得出的數(shù)據(jù)。
確認綁定地址,串口調(diào)試助手xCОM輸入:AT+BIND?設(shè)置串口波特率串口調(diào)試助手xCОM,設(shè)置藍牙1的串口波特率,輸入AT+UART=56700,0,0。
設(shè)置藍牙模塊1的連接模式為0,即AT+CMОDE=0。數(shù)據(jù)0的含義是藍牙連接模塊必須按照指定藍牙地址進行連接,這樣第一個藍牙模塊1才能自動連接第二個藍牙模塊2。
2)用另外一個串口助手設(shè)置另外一個HC-05。
與設(shè)置藍牙模塊1的方式相同,先恢復(fù)藍牙模塊2默認設(shè)置。
設(shè)定藍牙模塊2配對碼,要與藍牙模塊1的配對碼相同。
設(shè)置藍牙模塊2為主模式,將藍牙模塊2配置為主機模式:AT+RОLE=0,并發(fā)送,因為此前藍牙模塊1已經(jīng)配置成為從機模式了。
查詢藍牙模塊2地址,查詢藍牙模塊2地址的AT命令是:AT+ADDR?發(fā)送得到藍牙2的地址:98d3:32:30d8ea,將這個地址返回給藍牙模塊1,這樣才能夠在藍牙1中使用指定地址連接模式。
設(shè)置串口波特率,設(shè)置藍牙模塊2的串口波特率,輸入AT+UART=56700,0,0。兩個藍牙模塊的串口波特率的設(shè)定要相同,如果使用串口調(diào)試助手發(fā)送和接收數(shù)據(jù),波特率可以是56700,這樣傳輸數(shù)據(jù)比較快速。如果使用藍牙模塊傳輸數(shù)據(jù),那么波特率最好使用9600,這樣傳輸數(shù)據(jù)比較穩(wěn)定。
(6)常規(guī)工作模式:重新上電后兩個藍牙模塊都進入常規(guī)工作模式,各自的藍牙模塊會自動搜索相同綁定地址的藍牙配對模塊,完成配對。之后,兩個藍牙模塊之間就能通過單片機的串行口傳遞主模塊發(fā)給從模塊的數(shù)據(jù)了。
3利用兩個HC-05藍牙無線通信模塊連接兩個單片機進行串行通信
兩個HC-05藍牙無線通信模塊設(shè)置好之后,兩個單片機就可以像串口通信一樣使用HC-05藍牙無線通信模塊進行單片機之間的數(shù)據(jù)傳送。兩個連接在各自單片機上的藍牙模塊傳輸單片機實時時鐘數(shù)據(jù)如圖4所示。通過HC-05藍牙無線通信模塊,可以實現(xiàn)單片機之間和單片機與外設(shè)之間的短距離無線數(shù)據(jù)傳輸,從而簡化了單片機控制系統(tǒng)的接線,提高了單片機控制方式的多樣性、便捷性和智能化程度。
圖4兩個連接在各自單片機上的藍牙模塊傳輸單片機時鐘數(shù)據(jù)
4結(jié)語
通過兩個藍牙模塊的設(shè)置,可以實現(xiàn)單片機之間的無線短程通信,取消單片機串口之間需要導(dǎo)線連接的通信線路,提高單片機應(yīng)用的靈活性,有利于進一步開發(fā)應(yīng)用各種單片機無線控制技術(shù)。