ESP-NOW 作为一种无需网络连接的无线通信协议,在物联网、智能家居、无线传感器等领域有着广泛的应用。然而,传统 ESP-NOW 的使用门槛较高,需要开发者了解 ESP-NOW 的底层机制,并进行复杂的配置和管理,例如手动注册节点、选择频道、处理数据包等。这对于初学者来说无疑是一个巨大的挑战。
为了解决这一问题,QuickESPNow 库应运而生,它提供了一个简洁易用的 API,让 ESP-NOW 的使用变得前所未有的简单,即使没有深入了解 ESP-NOW 的底层机制,也能轻松地实现无线通信功能。
QuickESPNow 的核心优势
1. 简化使用
QuickESPNow 库的 API 设计简洁直观,无需繁琐的配置,只需几行代码即可实现 ESP-NOW 的无线通信。例如,只需调用 begin
函数初始化库,并设置接收回调函数,就可以开始接收数据。使用 send
函数发送数据到指定设备,或者使用 ESPNOW_BROADCAST_ADDRESS
发送广播数据。
2. 突破限制
传统 ESP-NOW 存在着设备数量限制,最多只能连接 20 个设备。QuickESPNow 库突破了这一限制,可以轻松地与任意数量的设备进行通信,为大型物联网项目提供了更大的灵活性。
3. 自动管理
QuickESPNow 库自动管理节点注册,无需手动进行繁琐的配对操作。库会自动识别网络中的其他 ESP-NOW 设备,并建立连接。这极大地简化了开发过程,让开发者可以专注于应用逻辑的开发。
4. 灵活配置
QuickESPNow 库自动选择最佳频道,并与 WiFi 共存,无需开发者手动配置。库会根据当前环境自动选择最佳的频道,并与 WiFi 网络共存,保证网络的稳定性和可靠性。
5. 强大功能
QuickESPNow 库提供广播和单播功能,可以满足各种应用场景的需求。此外,库还可以获取 RSSI 信息,方便开发者判断信号强度,优化设备部署。
6. 高性能
QuickESPNow 库经过测试,在 ESP32 和 ESP8266 上都具有良好的性能表现,最高吞吐量可达 600kbps,满足各种应用场景的需求。
7. 异步发送模式
QuickESPNow 库支持异步发送模式,在发送消息的同时,用户代码可以继续执行其他任务,提升效率。这对于需要实时响应或处理大量数据的应用场景非常重要。
8. 默认异步模式
QuickESPNow 库将异步发送模式设置为默认模式,简化使用流程,方便开发者快速上手。对于需要同步发送模式的用户,可以使用 begin
函数设置相应的参数。
QuickESPNow 的性能表现
下表展示了 QuickESPNow 库在 ESP32 和 ESP8266 上的性能测试结果,测试环境为发送消息尽可能快的情况下进行的。测试结果表明,该库在两种芯片上都具有良好的性能表现。
设备 | 广播/单播 | 同步/异步 | 250字节 | 125字节 | 75字节 | 35字节 | 12字节 |
ESP32 | 广播 | 异步 | 640kbps | 450kbps | 340kbps | 190kbps | 75kbps |
ESP32 | 广播 | 同步 | 615kbps | 440kbps | 320kbps | 180kbps | 73kbps |
ESP8266 | 广播 | 异步 | 200kbps | 100kbps | 60kbps | 28kbps | 9.5kbps |
ESP8266 | 广播 | 同步 | 200kbps | 100kbps | 60kbps | 28kbps | 9.5kbps |
ESP32 | 单播 | 异步 | 570kbps | 400kbps | 285kbps | 160kbps | 60kbps |
ESP32 | 单播 | 同步 | 550kbps | 375kbps | 270kbps | 150kbps | 57kbps |
ESP8266 | 单播 | 异步 | 200kbps | 100kbps | 60kbps | 28kbps | 9.5kbps |
ESP8266 | 单播 | 同步 | 200kbps | 100kbps | 60kbps | 28kbps | 9.5kbps |
注意事项
• 上述性能数据是在理想条件下测试得到的,实际应用中,由于其他任务的干扰,性能可能会有所下降。
• 在同步模式下,用户代码会被阻塞,直到消息发送完成,这会导致程序的响应速度变慢。
• 在异步模式下,发送函数的执行时间非常短,对程序性能的影响很小。
• ESP8266 的性能低于 ESP32,如果在同一个网络中使用两种芯片,建议将消息发送速率控制在安全范围内,避免 ESP8266 无法处理消息导致数据丢失或程序崩溃。
QuickESPNow 库让 ESP-NOW 的使用变得前所未有的简单, 它将复杂的 ESP-NOW 配置和管理工作隐藏在库内部,为开发者提供了一个易于使用的 API,即使没有深入了解 ESP-NOW 的底层机制,也能轻松地实现无线通信功能。
项目地址:https://github.com/gmag11/QuickESPNow