找回密码
 立即注册

微信扫码登录

搜索
查看: 131|回复: 3

[技术探讨] esphome里espnow的简单代码示例

[复制链接]

192

主题

2874

回帖

9327

积分

元老级技术达人

积分
9327
金钱
6246
HASS币
80
发表于 昨天 15:42 | 显示全部楼层 |阅读模式
本帖最后由 bugensui 于 2025-9-20 16:00 编辑

一共2个esp设备,1个是esp32开发板的开关按钮(是发送端),另外1个是esp32开发板上的板载led灯(接收端),目前esphome的espnow只能在同1个信道通信(比如:发射端连接的是wifi 1,接收端连接的是wifi 2,那可能无法通信,因为不是一个信道),示例是用esp开发板1连接的开关,切换esp32开发板2上的led灯(蓝色的灯)。

下载.jpg

发送端设备yaml代码
里面主要的是替换成接收端mac地址,然后这个字符串std::string data = "kai"可以自定义,你定义为on或者off都可以,到时候接收端判断这个字符即可。
espnow:
  auto_add_peer: true


binary_sensor:
  - platform: gpio
    name: relay_toggle
    pin:
      number: GPIO12
      mode:
        input: true
        pullup: true
    id: gpio_light_id
    on_state:
      then:
        - espnow.send:
            address: 68:接收端mac地址:CC
            data: !lambda |-
              std::string data = "kai" ;           
              unsigned char* buffer = (unsigned char*)data.c_str();
              return std::vector<unsigned char>(buffer, buffer + data.length() + 1);




接收端设备yaml代码
下面代码里,替换掉发送端设备的mac地址,通过判断字符串的方式验证是否切换灯的开和关,esp32kf3_led这个是接收端设备上灯的id
espnow:
  auto_add_peer: true
  peers:
    - "88:发送端设备mac地址:34"
  on_receive:
    - logger.log:
        format: 'Received "%s" from %s: RSSI: %ddBm'
        args:
          - data
          - format_mac_address_pretty(info.src_addr).c_str()
          - info.rx_ctrl->rssi
    - lambda: |-
        const char * command = (const char *)data;
        if (strncmp(command, "kai", 3) == 0) {
        auto call = id(esp32kf3_led).toggle();
        call.perform();
        ESP_LOGI("jieguo", "kai");
        }



评分

参与人数 1金钱 +20 收起 理由
sorrypqa + 20 高手,这是高手!

查看全部评分

回复

使用道具 举报

7

主题

66

回帖

1072

积分

金牌会员

积分
1072
金钱
999
HASS币
0
发表于 昨天 16:42 | 显示全部楼层
能不能发送传感器的数值呢 比如温湿度的
回复

使用道具 举报

192

主题

2874

回帖

9327

积分

元老级技术达人

积分
9327
金钱
6246
HASS币
80
 楼主| 发表于 昨天 16:51 | 显示全部楼层
mqs000 发表于 2025-9-20 16:42
能不能发送传感器的数值呢 比如温湿度的

可以的,发送端把传感器数值转成文本,然后在接收端接收,然后给模板传感器赋值
回复

使用道具 举报

1

主题

76

回帖

1024

积分

金牌会员

积分
1024
金钱
947
HASS币
0
发表于 昨天 18:58 | 显示全部楼层
非常感谢楼主,适合学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-9-21 08:30 , Processed in 1.086789 second(s), 10 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表