分享使用Arduino IDE的ESP32 ESP-NOW入门教程

ESP32 ESP-NOW 是专门为其 ESP8266 和 ESP32 微控制器开发的无线通信协议。它为 ESP32 设备提供低功耗、安全、低成本、直接的无线通信解决方案。借助 ESP-NOW,多个 ESP32 设备可以相互通信,无需 WiFi 或路由器,从而创建设备的网状网络。

在本教程中,我们将学习使用 ESP32 ESP-NOW 在 ESP32 设备之间进行无线通信。无论您想要发送传感器数据、控制 ESP 输出还是建立双向通信,本指南都将为您提供必要的步骤。

ESP-NOW 协议介绍

使用 ESP-NOW,我们可以在 ESP MCU 设备之间进行单向甚至双向通信,而无需使用 Wi-Fi 网络。它允许低开销的点对点无线数据传输,但数据包较小。最多可传输 250 字节的数据。因此,如果需要传输大量数据,那么使用此协议就没用了。

使用 ESP-NOW,连接协议得到简化,从而降低了功耗,因为数据传输所需的时间更少。此外,ESP-NOWESP-NOW使用与 Wi-Fi 相同的 2.4 GHz 频段,但不需要连接或干扰本地网络连接。它是一种快速、方便的通信协议,适用于传输较小量的数据。

ESP32 ESP-NOW 主要特性

  1. 一对一的数据传输(加密和未加密)。
  2. 支持加密和未加密的对等设备。对于加密设备,工作站模式下最多有 10 个对等点,SoftAP 或两种模式的混合模式下最多有 6 个对等点。但是,对于未加密的设备,最多允许有 19 个设备,且不限制其运行模式。
  3. 最多可以以小数据包的形式传输 250 字节的数据。
  4. 它生成一个回调函数,通知应用层数据是否传输成功。

要初始化 ESP-NOW 连接,我们必须首先配对 ESP32 板。无论任何一块板重新启动,该连接都将保持,并且传输将继续顺利进行。

在本教程中,我们将演示一个 Arduino 草图,通过该草图我们将数据从一个 ESP32 板无线传输到另一块板(单向通信)。在此之前,让我们首先看一下可以使用该通信协议的一些配置。

ESP32 ESP-NOW 单向通信

在单向通信中,一个对等设备充当发送方/主设备,另一台充当接收方/从设备。在这种情况下,我们可以对发送方-接收方进行多种配置。

  • 一块 ESP32 板向另一块 ESP32 板发送数据

如下图所示,一块 ESP32 板充当发送器,另一块板接收数据,因此充当接收器。
用途:发送传感器数据,控制 ESP 输出,包括 LED、继电器、蜂鸣器等。

ESP NOW 单向通信配置1

  • 一块 ESP32 发送器板向其他各种 ESP32 接收器板发送数据

在这种情况下,一个 ESP32 板将充当发送器/主设备,并将数据发送到多个充当接收器/从设备的 ESP32 板。
用途:遥控

ESP NOW 单向通信配置2

  • 一块 ESP32 板从其他各种 ESP32 发送器板接收数据

最后,在这种情况下,一个 ESP32 板(接收器/从机)从多个 ESP32 板(发送器/主机)接收数据。
用途:接收来自各种传感器的传感器数据。

ESP NOW 单向通信配置3

ESP-NOW 双向通信

ESP-NOW 协议还支持对等设备之间的双向通信。在这种情况下,ESP32板可以同时充当发送器(主)和接收器(从)。我们可以有两个 ESP32 板来传输数据,如下所示:

ESP NOW 双向通信配置1

或者甚至有一个 ESP32 板网络传输数据:

ESP NOW 双向通信配置2

ESP-NOW 有用的功能

以下是 ESP-NOW 函数的列表,这些函数在将 ESP-NOW 与 ESP32 结合使用时非常方便且经常使用。要查看更多信息,请查看官方 ESP-NOW 文档。

  • esp_now_init() :该函数将初始化 ESP-NOW 协议。请记住在初始化 ESP-NOW 通信协议之前启动 Wi-Fi。
  • esp_
  • 3
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值