终于搞定了通过两路蓝牙接收数据

一直想做无线传感器,通过蓝牙来接收数据,无奈因为arduino接收串口数据的一些问题,一直搁到现在。因为学校里给学生开了选修课,所以手边有一些nano和mega可以使用,所以就做了用两个nano加上两个蓝牙模块来发射数据,用mega加两个蓝牙模块来接收数据。因为mega可以同时使用4路串口,所以考虑用mega来作为主控机,用来接收来自传感器的数据,每个传感器加一个nano和蓝牙来无线发射数据。

因为是测试,所以在nano中写了一个简单的发射信号的语句。以下四nano中的程序:

————————————————我是分界线——————————————————————

int i=1;
void setup() { 
  Serial.begin(9600);   }
  void loop(){
         Serial.print(i);
       Serial.print("$");
       delay(50);
       i++;        
    }

————————————————我是分界线——————————————————————

以下是mega中的程序:

——————————————————我是分界线————————————————————————

String comdata = "";
String shuju="";
String shuju2="";
int i;
void setup()
 {
     Serial.begin(9600);
     Serial1.begin(9600);
     Serial2.begin(9600);
 }

void loop()
 {
     while (Serial1.available() > 0) 
     {
         shuju += char(Serial1.read());
         delay(2);
     }
     while (Serial2.available() > 0)
     {
       shuju2 +=char(Serial2.read());
       delay(2);
     }
     if (shuju.length() > 0)
     {
         i=shuju.indexOf("$");
         if(i!=-1){
         comdata=shuju.substring(0,i);
         Serial.print("#1=");       
         Serial.print(comdata);
         Serial.println("$");
         shuju=shuju.substring(i+1,shuju.length());
         comdata = "";
         i=0;
         }
     }
       if (shuju2.length() > 0)
     {
         i=shuju2.indexOf("$");
         if(i!=-1){
         comdata=shuju2.substring(0,i);
         Serial.print("#2=");
          Serial.print(comdata);
          Serial.println("$");
         shuju2=shuju2.substring(i+1,shuju2.length());
         comdata = "";
         i=0;
         }    } }

——————————————我是分界线————————————————————

上篇忘记介绍蓝牙模块的设置了,如果想要利用两路蓝牙来接收数据,那么这两路蓝牙必须设置不同的密码,以下是蓝牙模块的设置方法,可以将蓝牙模块接到串口模块上,然后里哟你串口软件发指令给蓝牙模块,以下设置是针对DFrobot的蓝牙模块的,它上面有开关可以设置接收命令状态。如果不是DFrobot的蓝牙模块,只要将KEY针脚接高电平就是可以接受命令状态。将两个蓝牙模块设置为主,然后设置不同的密码。再将另外两个设置为从,设置对应主蓝牙的密码。以下是具体的命令设置:

在发送栏中输入AT(不分大小写),然后点击发送,可看见模块返回OK,这表示AT指令通讯正常。当AT指令设置完毕后,将2号开关AT Mode拨到2端退出AT命令模式,重新上电后设置才生效。

1.AT指令集如下:

指令响应参数
ATOK





2.模块重启指令:

指令响应参数
AT+RESETOK





3.设置和查询模块连接模式:

当模块无法被适配器、主机连接时,需配置该参数,配置为AT+CMODE=1。

指令响应参数
AT+CMODE=< Param >OKParam:

0 —— 指定蓝牙地址连接模式 (指定蓝牙地址由绑定指令设置)

1 —— 任意蓝牙地址连接模式 (不受绑定指令设置地址的约束)

默认连接模式:0

AT+CMODE?+CMODE: < Param > OK
















 

4.设置和查询模块角色:

当模块无法被适配器、主机搜索到时,需配置该参数,配置为从角色。


模块角色说明:

Slave(从角色) ——被动连接,可以和任意蓝牙适配器配对使用;

Master (主角色)——查询周围从设备,并主动发起连接,从而建立主、从蓝牙设备间的透明数据传输通道。

Slave-Loop(回环角色) ———被动连接,接收远程蓝牙主设备数据并将数据原样返回给远程蓝牙主设备;

5.设置和查询配对码:

6.设置和查询串口参数:

举例:设置串口波特率:115200,1位停止位,无校验

AT+ UART=115200,0,0\r\n

OK

AT+ UART?

+UART:115200,0,0

OK

注:在应用中,选择1位停止位,无校验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经常用借呗和花呗对征信有影响吗?

说起支付宝里的花呗和借呗&#xff0c;大伙儿肯定都不陌生&#xff0c;它们俩就像是支付宝里的信用贷款双胞胎&#xff0c;名字相近&#xff0c;性格却大相径庭。现在&#xff0c;这俩兄弟都乖乖地接入了央行的征信大家庭&#xff0c;你的每一次使用&#xff0c;都会被记录得清…

DDD架构

1.DDD架构的概念&#xff1a; 领域驱动设计&#xff08;Domain-Driven Design, DDD&#xff09;是一种软件设计方法&#xff0c;旨在将软件系统的设计和开发焦点集中在领域模型上&#xff0c;以解决复杂业务问题 2.DDD架构解决了什么问题: 在以前的mvc架构种&#xff0c;三层结…

产品经理-交互设计动手实践(11)

业内有很多画交互的工具&#xff0c;这里不过多介绍&#xff0c;互联网公司最常用的工具是Axure,墨刀,蓝湖,小瀑 它是一个专业的快速原型设计工具&#xff0c;使用它能够快速创建线框图、流程图、原型和规格说明文档。 它能快速、高效地创建原型&#xff0c;同时支持多人协作设…

华为HCIP Datacom H12-821 卷30

1.单选题 以下关于OSPF协议报文说法错误的是? A、OSPF报文采用UDP报文封装并且端口号是89 B、OSPF所有报文的头部格式相同 C、OSPF协议使用五种报文完成路由信息的传递 D、OSPF所有报文头部都携带了Router-ID字段 正确答案&#xff1a;A 解析&#xff1a; OSPF用IP报…

【人工智能】-- 法律与伦理

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a; 专业知识 文章目录 &#x1f349;引言 &#x1f349;伦理问题 &#x1f348;隐私泄露问题 &#x1f34d;人工智能与隐私泄露的紧密关联 &#x1f34d;数…

上海慕尼黑电子展开展,启明智显携物联网前沿方案亮相

随着科技创新的浪潮不断涌来&#xff0c;上海慕尼黑电子展在万众瞩目中盛大开幕。本次展会汇聚了全球顶尖的电子产品与技术解决方案&#xff0c;成为业界瞩目的焦点。启明智显作为物联网彩屏显示领域的佼佼者携产品亮相展会&#xff0c;为参展者带来了RTOS、LINUX全系列方案及A…

鸿蒙 arkts 实现手机号中间四位隐藏, 可以使用 substring [ 简单适用新手 ]

1, 看效果 2, 直接cv代码就可以 Preview Entry Component struct Setting {Statephone:string 15555555555maskPhoneNumber(phone:string){const start phone.substring(0,3)const end phone.substring(7)return ${start}****${end}}build() {Column(){Text(this.maskPhon…

Leetcode2542-最大子序列的分数

1.问题转换 首先明确题意&#xff0c;要选取的值和num1&#xff0c;num2两个数组都有关&#xff0c;但是num1中选取的是k个数&#xff0c;num2中选取的是1个数&#xff0c;显然num2中的数所占的权重较大&#xff08;对结果影响较大&#xff09;&#xff0c;所以我们就可以对nu…

【Java探索之旅】多态:向上下转型、多态优缺点、构造函数陷阱

文章目录 &#x1f4d1;前言一、向上转型和向下转型1.1 向上转型1.2 向下转型 二、多态的优缺点2.1 多态优点2.2 多态缺陷 三、避免避免构造方法中调用重写的方法四、好的习惯&#x1f324;️全篇总结 &#x1f4d1;前言 在面向对象编程中&#xff0c;向上转型和向下转型是常用…

Django 新增数据 create()方法

1&#xff0c;添加模型 Test/app11/models.py from django.db import modelsclass Book(models.Model):title models.CharField(max_length100)author models.CharField(max_length100)publication_date models.DateField()price models.DecimalField(max_digits5, decim…

小米订单锐减背后的挑战与应对之道

近期&#xff0c;富士康印度子公司Bharat FIH面临高管离职、工厂关闭的困境&#xff0c;其背后原因之一是小米订单的显著下滑&#xff0c;据报道&#xff0c;这一降幅高达70%。这一现象不仅反映了富士康在印度市场的艰难处境&#xff0c;也揭示了小米在全球智能手机市场面临的挑…

六、数据可视化—Wordcloud词云(爬虫及数据可视化)

六、数据可视化—Wordcloud词云&#xff08;爬虫及数据可视化&#xff09; 也是一个应用程序 http://amueller.github.io/word_cloud/ Wordcloud词云&#xff0c;在一些知乎&#xff0c;论坛等有这样一些东西&#xff0c;要么做封面&#xff0c;要么做讲解&#xff0c;进行分析…

C++ | Leetcode C++题解之第223题矩形面积

题目&#xff1a; 题解&#xff1a; class Solution { public:int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {int area1 (ax2 - ax1) * (ay2 - ay1), area2 (bx2 - bx1) * (by2 - by1);int overlapWidth min(ax2, bx2) - max…

实战Qt开发WordBN笔记软件#01 搭建开发环境:VS2019+Qt6.5+CMake+Git

01 背景 【WordBN字远笔记】是天恩软件工作室开发的一款免费笔记软件&#xff1b;WordBN基于VS2019、Qt6.5开发&#xff0c;使用Qt Quick&#xff08;QML&#xff09;开发语言。 本课程将以【WordBN字远笔记】的界面为实战基础&#xff0c;详细介绍如何基于Qt/QML开发语言&am…

WPF 表格控件斑马线使用

这里用ListView为案例。 如图效果&#xff1a; 主要思路&#xff1a; 用AlternationCount属性来设置需要使用斑马线的条数&#xff0c;就是说几行一换色&#xff0c;也可以理解为需要几种颜色&#xff0c; 然后再样式模板中&#xff0c;写触发器属性ItemsControl.Alternatio…

明明已经安装了python中的某个库,但是还是报错ModuleNotFoundError: No module named ‘sklearn‘

问题&#xff1a; 明明已经安装了python中的某个库&#xff0c;但是还是报错ModuleNotFoundError: No module named sklearn 解决方法&#xff1a; 卸载重新安装一下即可 pip uninstall scikit-learn pip install scikit-learn 成功解决&#xff01;&#xff01;&#xff…

《Windows API每日一练》9.1 资源-图标

本节讲述图标、鼠标指针位图、字符串资源表、自定义资源的添加和应用。 本节必须掌握的知识点&#xff1a; 图标 第56练&#xff1a;ICON图标资源 鼠标指针位图 字符串资源表 自定义资源 第57练&#xff1a;字符串资源表和自定义资源 9.1.1 图标 在 Windows 窗口编程中&…

知识付费系统3.0整站源码知识付费网课平台网创资源付费带自动采集同步插件

程序说明&#xff1a; 1.修复更新到最新版本 2.自动采集插件重写 3.关闭采集授权域名直接对接 4.更新插件主动请求同步资源 5.带自动采集插件 原始功能 支持分类替换 将主站同步过来的文章分类进行替换 支持自定义文章作者&#xff08;选择多个作者则同步到的文章作者将会随机分…

java中==和equals()的区别探究

目录 一、Object对象 二、 三、String类的equals()方法 四、示例 4.1直接定义两个相同的值比较 4.2直接定义两个值不同的字符串进行比较 4.3直接定义一个字符串和new一个字符串进行比较&#xff08;两者值相同&#xff09; 4.4直接定义一个字符串和new一个字符串进行…

Halcon Ean13 一维码读取

一 EAN码介绍 1 EAN码定义: EAN码是国际物品编码协会制定的一种商品用条码&#xff0c;通用于全世界。EAN码符号有标准版&#xff08;EAN-13&#xff09;和缩短版&#xff08;EAN-8&#xff09;两种。标准版表示13位数字&#xff0c;又称为EAN13码&#xff0c;缩短版表示8位数…