使用JDY-10m的模块

这个是AT指令操作的,每条指令的结尾都要以\r\n结尾,在用单片机操作的时候需要注意加上

看看文档中提供的AT指令:

文档链接:


模块和模块的连接方法:

1.设置组网ID

AT+NETIDXXX

这里的XXX是组网ID,很多个JDY-10m组网的时候需要都设置成这个值

2.设置模块广播名

AT+NAMEXXX

这里的XXX是广播名,也是外部可见的蓝牙名称.(手机上看到的蓝牙名称就是这个),很多个蓝牙模块组网的时候也要配置成一样的.

3.配置模块的短地址.

模块有默认的短地址,默认为MAC地址的最后一个字节

我选择在这里设置,防止MAC地址最后一个字节相同导致冲突.

AT+MADDRXXX

这里的XXX就是短地址

4.设置JDY-10m的模式

默认的其实就是对的,但是这里提一下:A0(透传模式),B1(LED灯模式),C0(低功耗的遥控器)

默认的就是A0.

如果要设置的话使用:

AT+CLSSXX

这里的XX选择上面三种中的一个

 

经过上面的设置就可以在模块和模块之间通信了

简单的蓝牙传输就不说了,这里看一下mesh协议的格式

我们不关心命令相关的协议,只关心数据相关的协议:

向当前网络内所有模块发送广播包:

AAFBFFFF112233445566

发送的数据为十六进制的112233445566

向一个特定的模块发送数据:

AAFB0002112233

向短地址为02的模块发送数据112233

最常用的就是上面的这两个

接下来看接收的协议:

看第一个字节来区分接收到的是数据协议还是命令协议

第一个字节是AA的是数据协议

第一个字节是BB的是命令协议

来看一个具体的协议包:

AA02051122334455

这个协议可以看出他是一个数据包,是短地址为02发来的,05是发送来的字节数,1122334455是数据的具体内容

一般只需要上面的几条就可以做到大部分的通信,还有一些命令协议值得去看看

 

APP和模块的通信;

首先在模块上配置:

AT+ISCEN1

表示打开APP的连接密码,就说明APP必须要先发送密码才能和模块通信

密码是什么呢 ?

默认是1234,当然我们可以设置

AT+PSSXXX

这里的XXX就是密码

到这里模块的配置就完成了 

如果我们的APP要给模块发送数据首先要连接上模块,之后选择UUID:FFE2(支持MESH)

给模块发送验证密码之后就可以通信了,是以FE开头.

发送的格式为:

FE31323334

这里的31323334就对应了1234,因为密码都是字符串的,所以要发送assci码

到这里就可以相互通信了.

给模块发送数据的协议,是以FA开头:

FAFF1234

表示给整个网络发送广播数据1234注意这里的1234还是十六进制的

FA061234

表示给短地址是06的模块发送数据1234

经过实际的测试发现:

为什么APP能给网络内的所有模块发送数据?

从接收到的数据包来看APP是使用当前所连接的模块的短地址发送的,并且自己也会接收到同样的数据包!