課程目標(biāo)
- 了解藍(lán)牙模塊及其通信原理
- 學(xué)習(xí)如何實(shí)現(xiàn)手機(jī)、arduino及藍(lán)牙模塊之間的通信過(guò)程
- 實(shí)現(xiàn)手機(jī)控制小車運(yùn)動(dòng)
相關(guān)知識(shí)
- **藍(lán)牙:**是一種支持多個(gè)設(shè)備之間短距離通信(一般10m左右)的無(wú)線電技術(shù)。
藍(lán)牙的特點(diǎn):
1、藍(lán)牙技術(shù)的適用設(shè)備多,無(wú)需電纜,通過(guò)無(wú)線使電腦和電信連網(wǎng)進(jìn)行通信。
2、藍(lán)牙技術(shù)的工作頻段全球通用,適用于全球范圍內(nèi)用戶無(wú)界限使用。
3、藍(lán)牙技術(shù)的安全性和抗干擾能力強(qiáng)。
4、傳輸距離較短。
5、通過(guò)跳頻擴(kuò)頻技術(shù)進(jìn)行傳播
**藍(lán)牙串口模塊:**藍(lán)牙串口模塊是基于SPP協(xié)議(Serial PortProfile),能在藍(lán)牙設(shè)備之間創(chuàng)建串口進(jìn)行數(shù)據(jù)傳輸?shù)囊环N設(shè)備,廣泛應(yīng)用在具有藍(lán)牙功能的電子設(shè)備上。
藍(lán)牙串口模塊通信模型:
電路搭建
所需材料
ArduinoUNO * 1
HC-05藍(lán)牙串口模塊 * 1
LED * 1
杜邦線若干
電路連接
程序編寫
練習(xí)一:手機(jī)控制LED亮滅
根據(jù)上面的電路接線圖,編程實(shí)現(xiàn)通過(guò)手機(jī)發(fā)送指令,來(lái)控制LED的亮和滅。
圖形化方式:
代碼方式:
/* 項(xiàng)目名稱:手機(jī)控制LED
* 項(xiàng)目時(shí)間:2022.03.30
* 項(xiàng)目作者:MRX
*/
int LedPin = 7;
void setup()
{
Serial.begin(9600);
pinMode(LedPin,OUTPUT);
}
void loop()
{
while(Serial.available())
{
char Bluetooth=Serial.read();
if(Bluetooth=='a')
{
Serial.println("Turn ON");
digitalWrite(LedPin,HIGH);
}
if(Bluetooth=='b')
{
Serial.println("Turn OFF");
digitalWrite(LedPin,LOW);
}
}
}
手機(jī)端設(shè)置:
APP初始界面:
設(shè)置流程:
連接完成后,在命令行進(jìn)行對(duì)應(yīng)的指令輸入,那么就可以發(fā)現(xiàn)LED能夠根據(jù)預(yù)設(shè)的指令進(jìn)行變化了。
練習(xí)二:藍(lán)牙小車
實(shí)現(xiàn)通過(guò)手機(jī)藍(lán)牙輸入指令來(lái)控制小車進(jìn)行對(duì)應(yīng)的運(yùn)動(dòng)控制。
電路連接:
圖形化方式:
代碼方式:
/* 項(xiàng)目名稱:藍(lán)牙控制小車運(yùn)動(dòng)
* 項(xiàng)目時(shí)間:2022.03.30
* 項(xiàng)目作者:MRX
*/
int IN1 = 2; // IN1 connected to pin 4
int IN2 = 4;
int ENA = 3;
int IN3 = 6; // IN3 connected to pin 6
int IN4 = 7;
int ENB = 5;
int value = 255; // the duty cycle
void Forward() {
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
analogWrite(ENA,value);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
analogWrite(ENB,value);
}
void Back() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,value);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,value);
}
void Right() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,value);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,0);
}
void Left() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,0);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,value);
}
void Stop() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
analogWrite(ENA,0);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
analogWrite(ENB,0);
}
void setup(){
Serial.begin(9600);
for (int i = 4;i <= 10;i++){
pinMode(i, OUTPUT);
}
}
void loop(){
while(Serial.available())
{
char Bluetooth=Serial.read();
if(Bluetooth=='a')
{
Serial.println("Forward");
Forward();
}
if(Bluetooth=='b')
{
Serial.println("Bback");
Back();
}
if(Bluetooth=='c')
{
Serial.println("Left");
Left();
}
if(Bluetooth=='d')
{
Serial.println("Right");
Right();
}
if(Bluetooth=='e')
{
Serial.println("Stop");
Stop();
}
}
}
手機(jī)APP設(shè)置:
-
led燈
+關(guān)注
關(guān)注
22文章
1596瀏覽量
109539 -
串口通信
+關(guān)注
關(guān)注
34文章
1638瀏覽量
56713 -
藍(lán)牙模塊
+關(guān)注
關(guān)注
30文章
605瀏覽量
56585 -
Arduino
+關(guān)注
關(guān)注
189文章
6496瀏覽量
190519
發(fā)布評(píng)論請(qǐng)先 登錄
藍(lán)牙低功耗模塊的原理和應(yīng)用介紹
stm32藍(lán)牙模塊連接方法

電腦端如何和藍(lán)牙模塊建立連接通訊# 藍(lán)牙模塊# 物聯(lián)網(wǎng)# 串口通訊# 無(wú)線連接# spp協(xié)議# 雙模# 低功耗

超低功耗藍(lán)牙模塊:高效節(jié)能的無(wú)線通信解決方案# 藍(lán)牙模塊# 物聯(lián)網(wǎng)# 數(shù)據(jù)透?jìng)? 串口通訊# 低功耗# 模塊
藍(lán)牙模塊如何實(shí)現(xiàn)單片機(jī)和手機(jī)端數(shù)據(jù)互傳


ZX-D23 BLE 5.2超低成本的藍(lán)牙模塊 # 藍(lán)牙模塊#物聯(lián)網(wǎng)# 串口通訊# 無(wú)線連接# 低功耗藍(lán)牙#

ZX-D29雙模串口通訊藍(lán)牙模塊,支持小程序 蘋果 安卓手機(jī)連接通訊,支持BLE+SPP協(xié)議# 藍(lán)牙模塊#

如何選擇單模與雙模的藍(lán)牙模塊# 藍(lán)牙模塊# 數(shù)據(jù)透?jìng)? 單雙模# 物聯(lián)網(wǎng)# 串口通訊# 無(wú)線連接# 低功耗藍(lán)牙
什么是藍(lán)牙芯片?藍(lán)牙芯片和藍(lán)牙模塊的區(qū)別


藍(lán)牙模塊如何實(shí)現(xiàn)兩個(gè)設(shè)備之間數(shù)據(jù)互傳 # 藍(lán)牙模塊#物聯(lián)網(wǎng)#串口通訊#無(wú)線連接#單片機(jī)#數(shù)據(jù)透?jìng)?藍(lán)牙#模
帶你深入了解BLE藍(lán)牙模塊工作模式


藍(lán)牙模塊有何優(yōu)點(diǎn)?有什么好處? # 藍(lán)牙 # 藍(lán)牙模塊 # 物聯(lián)網(wǎng) # Nordic芯片 #智能家居

評(píng)論