[经验分享] 「2024 DigiKey 创意大赛 」3、ESPNOW发送单包时间测试
[复制链接]
前言
ESP-NOW(Espressif Now)是乐鑫(Espressif Systems)开发的一种快速、低功耗的无线通信协议,专为 ESP8266 和 ESP32 等 Wi-Fi MCU 设计。ESP-NOW 允许设备之间直接进行数据传输,无需通过传统的 Wi-Fi 网络连接。这种协议非常适合用于物联网(IoT)设备之间的快速通信,特别是在需要低延迟和高可靠性的应用场景中。
1、测试目的
由于ESPNOW的实现底层是未知的,我们也不知道在espnow发送数据时,底层的流程到底经过了什么。在本人使用espnow的过程中,发现现场环境的干扰越少,平均延时就越低。但是单包的延时时高时低,想知道在执行esp_now_send函数后,是否立即发送数据。
2、测试方法
通过在发送前记录发送时间,然后在发送完成的回调函数里,记录发送完成时间,这样就知道具体使用了多长的时间发送数据了。
接下来是在发送完成的回调函数里,记录完成时间,然后输出
3、结果
从结果上可以看出,espnow并不是想发就可以发的,正常发送一个60字长度的包,最短时间大概是1300us左右,而有时候一些包需要3ms左右才能发出,干扰严重的时候,甚至是十几ms才可以发出。目前使用的是广播模式发出数据,也就是不需要配对和连接设备就能发送,也不管其他设备是否收到了该数据。在这种模式下仍然不是想发就发,根据发送时间的异常长度猜测,和家庭里使用的无线路由,手机等等2.4G信号干扰有关。根据之前个人评测的espnow的实际丢包情况,个人觉得espnow应该是有防碰撞机制,也就是说当前信道若有设备还在发送数据时,espnow设备会延迟发送,直到通道无其他设备占用,才发送数据出去。
|