在最初的幾次推動(dòng)中,我們一直在學(xué)習(xí)如何與周圍的外圍設(shè)備進(jìn)行交互。一些讀取數(shù)據(jù)和一些控制設(shè)備。但是現(xiàn)在是網(wǎng)絡(luò)時(shí)代,總不能自娛自樂吧?所以近期我們會(huì)陸續(xù)推出藍(lán)牙模塊,WiFi模塊的使用,物聯(lián)網(wǎng)的基礎(chǔ)知識(shí)。
讓我們從簡單開始。今天我們將介紹藍(lán)牙模塊與上位機(jī)(手機(jī)、電腦)的通信。然后我們一起做一個(gè)藍(lán)牙遙控車。需要代碼和上位機(jī)app的同學(xué)留下郵箱,我發(fā)給大家。
下面簡單介紹一下藍(lán)牙模塊:
在開發(fā)過程中,藍(lán)牙模塊實(shí)際上起到了橋梁的作用,我們稱之為透明傳輸。就像透明的玻璃一樣,將指令原封不動(dòng)地傳遞給對(duì)方。
要獲得藍(lán)牙模塊,您首先需要對(duì)其進(jìn)行設(shè)置。藍(lán)牙模塊與串口模塊連接,TX、RX要交叉連接
將模塊插入電腦,打開串口調(diào)試助手。輸入命令
1、測試通訊
發(fā)送:AT(返回OK,每秒發(fā)送一次左右)
返回:好的
2、改變藍(lán)牙串口通訊的波特率
發(fā)送:AT+BAUD1.......C
返回:OK+波特率
1---------1200
2---------2400
3---------4800
4---------9600(默認(rèn)是這個(gè)設(shè)置)
5--------19200
6--------38400
7--------57600
8---------
9---------
一種 - - - - -
乙---------
C - - - - -
3、更改藍(lán)牙名稱
發(fā)送:AT+
返回:
4、修改配對(duì)密碼
發(fā)送:AT+
返回:
這樣就完成了一般設(shè)置。還有很多其他的設(shè)置,但是一般我們不會(huì)用到電腦藍(lán)牙軟件下載教程,這里就不占篇幅了。
然后,在手機(jī)下載藍(lán)牙助手app上,藍(lán)牙模塊通過串口模塊連接電腦,手機(jī)開啟藍(lán)牙,與藍(lán)牙模塊配對(duì),打開藍(lán)牙助手app,就可以了發(fā)送幾封信,您應(yīng)該可以在顯示的計(jì)算機(jī)上看到它。反之,在電腦上發(fā)送消息時(shí),手機(jī)也能收到。
接下來,讓我們一起使用藍(lán)牙模塊制作藍(lán)牙汽車
材料:主控板、藍(lán)牙模塊、298n電機(jī)驅(qū)動(dòng)模塊、汽車底盤(含輪胎和電機(jī))
淘寶上面的資料很多,這里就不一一介紹了。并不是很貴。電機(jī)驅(qū)動(dòng)板的使用已經(jīng)在之前的推文中介紹過了。不清楚使用的同學(xué)可以再看一遍文章。
重點(diǎn)關(guān)注程序代碼中藍(lán)牙數(shù)據(jù)的讀取。
先在宏定義中定義不同編碼所代表的功能
#define LEFT '3' //左轉(zhuǎn)編碼 #define RIGHT '4'//右轉(zhuǎn)編碼 #define GO '1'//前進(jìn)編碼 #define BACK '2'//后退編碼 #define STOP '0'//停止編碼
然后在主程序中從串口讀取數(shù)據(jù),根據(jù)數(shù)據(jù)運(yùn)行相應(yīng)的函數(shù)。
if(Serial.available()>0){ char ch = Serial.read(); //這一段眼熟不?就是串口通訊。很簡單的。 if(ch == GO){ //前進(jìn) go(); }else if(ch == BACK){ //后退 back(); }else if(ch == LEFT){ //左轉(zhuǎn) turnLeft(); }else if(ch == RIGHT){ //右轉(zhuǎn) turnRight(); }else if(ch=='0'){ //停車 stopCar(); } }
玩的時(shí)候先安裝手機(jī)車控軟件,打開藍(lán)牙電腦藍(lán)牙軟件下載教程,讓手機(jī)和車載藍(lán)牙配對(duì),然后就可以用手機(jī)控制車了。