前言:
最近学习了一下ESP32_NOW的通讯,发现例程有点难懂,现在从esp32_now 中的Control例程来解析一下它的程序思路。
作为新手去看它官方文档,感觉最缺的就是这个程序的整体流程。
虽然例程直接编译就可以工作,却没有一个操作说明,让人不知所措,经过一番折腾总结经验如下。
前提条件:
将程序编译完成并且下载到ESP32 DEMO板上(必须两个板以上才以通信),最好能看到日志并判断已经正常工作。
下面是操作步骤:
1、一块板作为控制设备,只需要操作这块板的控制按键即可,注意一定要等被控制设备开机后才能双击控制按键。
2、另一块板为被控制设备,只需要按重启键并靠近控制设备。
3、以上准备好之后,被控制设备重启后,在20秒内双击控制设备按键此时开始绑定,这样才能绑定成功。
如果没有成功,需要重新长按控制设备按键(>2秒)取消绑定,才能再次进行绑定。
4、绑定成功后单击控制设备键会发送控制命令,被控制设备会处理命令并改变LED状态。
5、绑定后数据会被保存,控制设备重启后,还需要双击一下后再单击才能发送控制命令。
重要:被控制设备怎么才能绑定?是根据开机时间和rssi的信号强弱来确定的。靠的近一些、开机就立即绑定。实际应用中这些参数可以设置的更严格些,缩小绑定范围,防止误绑定其它设备。
这些参数通过下面函数更改:
static void app_responder_init(void)
{
ESP_ERROR_CHECK(espnow_ctrl_responder_bind(15 * 1000, -45, NULL)); // 设置符合绑定设备条件参数(rssi >-45和开机20秒内)
espnow_ctrl_responder_data(app_responder_ctrl_data_cb); // 注册控制数据包处理事件回调函数
}
功能说明:
控制设备方通过双击按键发送绑定设备命令和单击发送控制命令。


9200

被折叠的 条评论
为什么被折叠?



