【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!(9)

Hi٩(๑o๑)۶, 各位深海王国的同志们,早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦

(o゜▽゜)o☆ 今天大都督继续为大家带来系列——小学生都能玩的单片机!带你一周内快速走进嵌入式的大门,let’s go!

(9)实战:使用软串口与蓝牙APP串口通讯

通过前面八节的学习,相信大家已经对Arduino是什么、怎么用很熟悉了。那么恭喜你离入门Arduino就差最后一步了。接下来最后两节,我们将实际编写程序与蓝牙APP进行通信并总结一下学习Arduino时常踩的坑,大家再加把劲!

准备工作:

如果大家有兴趣自己做一个蓝牙APP,可以关注一下大都督的另一个系列

【深海王国】小学生都能做的APP?AppInventor、BLE蓝牙、Arduino联合开发你的第一个手机远程控制程序(1)

赶时间的也可以直接在「深海大都督」里回复「蓝牙APP」获取安卓安装包就可以啦。

安卓好蓝牙APP以后,需要打开手机定位和蓝牙,并且记得给权限。然后APP主页面长这样:

在这里插入图片描述

然后Arduino的接线如图:

在这里插入图片描述

ArduinoBLE蓝牙模块
2 (RX)TX
3 (TX)RX
3.3V3.3V
GNDGND

所用蓝牙为BLE低功耗蓝牙,相关材料购买链接在「深海大都督」里回复「BLE蓝牙」(大都督个人购买,仅供参考,无广)。

Arduino程序:

这些程序作为参考提供给大家,用到的函数都在上节里提到啦,详见(8)软串口与SoftwareSerial库使用

1.将电脑端串口接受到的char字符指令发送给APP
#include <SoftwareSerial.h>  //引用库文件
SoftwareSerial Serial1(2, 3);  // 定义软串口RX为2, TX为3和软串口对象Serial1

void setup(){
  Serial.begin(9600); //Arduino与电脑通信的波特率
  Serial1.begin(9600);  //Arduino与BLE蓝牙通信的波特率
}

void loop(){
  char data = ' ';
  if(Serial.available()){  //如果电脑串口接收到数据
    data = char(Serial.read());  //将电脑端接受到的数据转化为char类型
    Serial1.print(data);  //将电脑接收到的数据发送到蓝牙APP上
  }
}

运行效果:
通过Arduino IDE的串口监视器发送字符’A’给APP,APP接受。
在这里插入图片描述

2.接受蓝牙APP串口发送过来的char字符指令
#include <SoftwareSerial.h>  //引用库文件
SoftwareSerial Serial1(2, 3);  // 定义软串口RX为2, TX为3和软串口对象Serial1

void setup(){
  Serial.begin(9600); //Arduino与电脑通信的波特率
  Serial1.begin(9600);  //Arduino与BLE蓝牙通信的波特率
}

void loop(){
  char data = ' ';
  if(Serial1.available()){  //如果蓝牙串口接收到数据
    data = char(Serial1.read());  //将蓝牙端接受到的数据转化为char类型
    Serial.print(data);  //将接收到的数据发送到电脑上
  }
}

运行效果:
通过APP发送字符’A’给Arduino,Arduino串口监视器上显示。
在这里插入图片描述

3.将电脑端串口接受到的String字符串指令发送给APP
#include <SoftwareSerial.h>  //引用库文件
SoftwareSerial Serial1(2, 3);  // 定义软串口RX为2, TX为3和软串口对象Serial1

void setup(){
  Serial.begin(9600); //Arduino与电脑通信的波特率
  Serial1.begin(9600);  //Arduino与BLE蓝牙通信的波特率
}

void loop(){
  String data_S = " ";
  if(Serial.available()){  //如果蓝牙串口接收到数据
    data_S = char(Serial.read());  //将蓝牙端接受到的数据转化为char类型
    Serial1.print(data_S);  //将接收到的数据发送到电脑上
  }
}

运行效果:
通过Arduino IDE的串口监视器发送字符串"ABCD"给APP,APP接受。
在这里插入图片描述

4.接受蓝牙APP串口发送过来的String字符串指令
#include <SoftwareSerial.h>  //引用库文件
SoftwareSerial Serial1(2, 3);  // 定义软串口RX为2, TX为3和软串口对象Serial1

void setup(){
  Serial.begin(9600); //Arduino与电脑通信的波特率
  Serial1.begin(9600);  //Arduino与BLE蓝牙通信的波特率
}

void loop(){
  String data_S = " ";
  while(Serial1.available()){  //如果蓝牙串口接收到数据
    data_S += char(Serial1.read());  //将蓝牙端接受到的数据转化为char类型,并累加到data_S中
    Serial.print(data_S);  //将接收到的数据发送到电脑上
  }
}

注:c语言中+=是代表两个变量相加,并将答案记录在左边的变量里。比如x+=y实际代表的表达式为:x=x+y。

运行效果:
通过APP发送字符串"ABCD"给Arduino,Arduino串口监视器上显示。
在这里插入图片描述

今天的学习到这里就差不多啦,下节就是本系列的最后一节,大都督会为大家分享一下学习Arduino时常踩的坑,看到这里的你辛苦啦,加油٩(ˊᗜˋ)و✧。

哈哈,让焦虑不再蔓延,信息不再高壁,如果你觉得这篇文章对你有帮助,就来个免费的点赞吧!

(◍˃̶ᗜ˂̶◍)✩我深海大都督正式授予你深海王国公民的身份~

(・ω< )★ 加入深海大家庭,快乐摆烂每一天!

  • 36
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值