1、蓝牙从机定时唤醒,向主机发数据,这个应该可以。
2、如果主机主动下发数据,从机在睡眠,如何接收呢?
1、蓝牙从机定时唤醒,向主机发数据,这个应该可以。
2、如果主机主动下发数据,从机在睡眠,如何接收呢?
“从机”是指蓝牙mesh中的低功耗节点是吗。低功耗节点需要配合朋友节点使用。
对于发送数据,低功耗节点向其他节点发送数据,是经由朋友节点立即转发出去的。
对于接收数据,低功耗节点是不能直接收到数据的,由朋友节点代收,而后低功耗节点会定时向朋友节点询问有没有发给自己的数据,若有就接收数据。
1、这个例程,是配网者例程。里面有朋友节点的开关,可以作为朋友节点使用吗?
2、如果可以,会不会影响配网、组网的功能?
3、配网最多支持40个设备,可以同时做这40个设备的朋友节点吗?
4、如果不可以,我需要再增加几个设备,只作为朋友节点,来配合剩下的低功耗节点?
我们的单片机内存容量有限,除了默认开启转发功能外,就不建议复用其他节点功能了。
需要另外增加设备专门作为朋友节点。一个朋友节点最多支持四个低功耗节点。
是不是类似这种布局?
1、另外朋友节点用哪个工程比较合适?
2、选哪个单片机比较便宜?582、还是579
布局如5楼是可以的,若朋友节点和中心节点距离较远,可以用开启转发功能的adv_vendor中继一下。
EVT中朋友节点工程名为adv_vendor_friend。
选用582更经济。
好的,多谢。
// 低功耗节点功能
#define CONFIG_BLE_MESH_LOW_POWER 1
//睡眠
#ifndef HAL_SLEEP
#define HAL_SLEEP TRUE //TRUE //FALSE
#endif
1、是不是开启低功耗节点功能,睡眠也要设置为TRUE ?
2、如果睡眠为FALSE,协议栈底层不会自动控制睡眠吧?
3、如果#define CONFIG_BLE_MESH_LOW_POWER 0;#define HAL_SLEEP TRUE;是不是不会休眠?
HAL_SLEEP这个宏定义涉及的函数,用于处理蓝牙BLE那边的睡眠。蓝牙mesh的低功耗节点是通过协议栈管理任务的运行来实现的,没有用到涉及HAL_SLEEP的函数,与这个宏定义没有关系。
不好意思,没太明白。这两个宏我该如何配置呢?
1、CONFIG_BLE_MESH_LOW_POWER配置为1,是不是必须要有朋友节点才行?
2、CONFIG_BLE_MESH_LOW_POWER配置为1,是不是HAL_SLEEP不必配置为True?
第一个场景:1个中心节点、40个低功耗节点、没有朋友节点。低功耗节点平时睡眠,定时发送数据,每次发送数据后等2秒接收数据,然后睡眠。
第二个场景:1个中心节点、40个低功耗节点、10个朋友节点。低功耗节点除了第一个场景的功能外,中心节点具有主动往下发的功能。
3、这两个场景,那两个宏分别怎么配置?
CONFIG_BLE_MESH_LOW_POWER配置为1既开启低功耗节点功能,则除配网流程外必须配合朋友节点才能工作。配网流程只需低功耗节点和中心节点相靠近即可,可以在无朋友节点的情况下先行配网。朋友节点配网并上电后可以自动连接周围的低功耗节点。工作流程中低功耗节点必须要朋友节点的配合。
配网器默认可以支持40个节点,这个数值包括除了配网器外的所有节点,但只要RAM足够就可以往支持更多。目前没有测试过上限,但比40多。
HAL_SLEEP这个宏定义在蓝牙mesh工程中没有用到,它在另外的工程中使用,故它是ture或是false都不会影响工程,默认不管它就行。
好的,多谢。
11楼场景1中,“每次发送数据后等2秒接收数据”,这个接收数据是指比如说传感器接收环境数据,不是指低功耗节点接收其他节点的数据,那么是可以实现的,即低功耗节点配网后可以直接发数据给配网器,但是没有朋友节点是不能收到其他节点传来的数据的。
1、主机程序用的是self_provisioner_vendor,从机程序用的是adv_vendor_with_peripheral,朋友节点程序adv_vendor_friend。
2、之前只有主机、从机,没有朋友节点,从机也没有使能低功耗,把业务走通了。
3、现在加了朋友节点,从机也使能了低功耗,从机好像还是直接通过主机通信了,也不会进入低功耗。
4、去掉主机,从机、朋友节点重启,没有看到他们打印绑定信息。
5、低功耗节点配网不通过朋友节点,配网成功后才与朋友节点建立绑定,之后通信就只与朋友节点通信,对吧?
6、朋友节点与中心节点的通信机制是如何的?朋友节点需要配网吗?