ESP-NOW 开源项目教程

ESP-NOW 开源项目教程

esp-nowA connectionless Wi-Fi communication protocol项目地址:https://gitcode.com/gh_mirrors/es/esp-now

项目介绍

ESP-NOW 是乐鑫科技开发的一种无线通信协议,它允许设备在没有 Wi-Fi 路由器的情况下直接、快速、低功耗地进行通信。ESP-NOW 支持乐鑫的多系列 SoC,如 ESP8266、ESP32 等,并且可以与 Wi-Fi 和 Bluetooth LE 共存。该协议通过简化 OSI 模型中的上层协议,减少了数据传输时的延迟和功耗,非常适合于智能家居、物联网设备等场景。

项目快速启动

环境准备

  1. 硬件: 乐鑫 ESP32 或 ESP8266 开发板。
  2. 软件: 安装 ESP-IDF 开发框架。

代码示例

以下是一个简单的 ESP-NOW 发送和接收示例代码:

#include "esp_now.h"
#include "esp_wifi.h"
#include "esp_log.h"
#include "nvs_flash.h"

// 接收设备 MAC 地址
uint8_t broadcastAddress[] = {0x24, 0x6F, 0x28, 0xA1, 0xB2, 0xC3};

// 发送数据回调函数
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {
    ESP_LOGI("ESP-NOW", "Send status: %s", status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");
}

// 接收数据回调函数
void OnDataRecv(const uint8_t *mac_addr, const uint8_t *data, int data_len) {
    ESP_LOGI("ESP-NOW", "Received %d bytes from %02x:%02x:%02x:%02x:%02x:%02x", data_len, mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
}

void app_main() {
    // 初始化 NVS
    nvs_flash_init();
    tcpip_adapter_init();
    ESP_ERROR_CHECK(esp_event_loop_create_default());

    // 初始化 Wi-Fi
    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
    ESP_ERROR_CHECK(esp_wifi_init(&cfg));
    ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
    ESP_ERROR_CHECK(esp_wifi_start());

    // 初始化 ESP-NOW
    ESP_ERROR_CHECK(esp_now_init());
    ESP_ERROR_CHECK(esp_now_register_send_cb(OnDataSent));
    ESP_ERROR_CHECK(esp_now_register_recv_cb(OnDataRecv));

    // 添加对端设备
    esp_now_peer_info_t peerInfo;
    memcpy(peerInfo.peer_addr, broadcastAddress, 6);
    peerInfo.channel = 0;  
    peerInfo.encrypt = false;
    ESP_ERROR_CHECK(esp_now_add_peer(&peerInfo));

    // 发送数据
    uint8_t data[] = "Hello ESP-NOW";
    esp_now_send(broadcastAddress, data, sizeof(data));
}

应用案例和最佳实践

智能家居控制

ESP-NOW 可以用于智能家居系统中,实现设备间的快速通信。例如,通过 ESP-NOW 控制智能灯泡的开关状态,或者调节温度控制器的设定值。

物联网数据采集

在物联网应用中,ESP-NOW 可以用于传感器数据的快速采集和传输。例如,环境监测系统中,多个传感器节点通过 ESP-NOW 将数据发送到中心控制节点进行处理和存储。

典型生态项目

ESP RainMaker

ESP RainMaker 是乐鑫科技推出的一个全栈 IoT 云解决方案,它集成了 ESP-NOW 协议,支持设备快速配网和云端控制。ESP RainMaker 提供了丰富的 API 和工具,帮助开发者快速构建和部署智能家居应用。

ESP-IDF

ESP-IDF 是乐鑫科技的官方开发框架,支持 ESP32

esp-nowA connectionless Wi-Fi communication protocol项目地址:https://gitcode.com/gh_mirrors/es/esp-now

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

解雁淞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值