『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 2907|回复: 14

[技术探讨] 有没有兄弟有ESPNOW的经验?

[复制链接]

22

主题

78

帖子

652

积分

高级会员

Rank: 4

积分
652
金钱
574
HASS币
0
发表于 2023-1-6 12:45:01 | 显示全部楼层 |阅读模式
靠谱吗?


我主要是为了做低功耗温度传感器, 20分钟唤醒, 发一次温度,继续睡眠


15个左右的传感器, 配一个ESPnow -> MQTT网关,


有经验的参考一下


回复

使用道具 举报

46

主题

1654

帖子

6676

积分

论坛元老

Rank: 8Rank: 8

积分
6676
金钱
5012
HASS币
40
发表于 2023-1-6 13:04:56 | 显示全部楼层
esp8266,做低功耗属实自己折腾,低功耗还得zigbee
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

9

主题

65

帖子

1230

积分

金牌会员

Rank: 6Rank: 6

积分
1230
金钱
1165
HASS币
0
发表于 2023-1-6 16:09:20 | 显示全部楼层
本帖最后由 HGQ21102 于 2023-1-6 16:18 编辑

ESPnow我测试一下,最近感觉距离太短,不知什么原因,感觉就几米?有其它大神搞过不?
回复

使用道具 举报

3

主题

171

帖子

1929

积分

金牌会员

Rank: 6Rank: 6

积分
1929
金钱
1758
HASS币
0
发表于 2023-1-6 20:13:55 | 显示全部楼层
不会   蹲一个看看后续
回复

使用道具 举报

2

主题

33

帖子

582

积分

论坛技术达人

积分
582
金钱
544
HASS币
20
发表于 2023-1-8 21:02:44 | 显示全部楼层
靠谱,我自己做过一套,如果只是传感器到网关的单向传输,而且没什么加密需求的话,直接传感器广播然后网关接收就行了。但是一般的开发板(nodemcu)之类的外围元器件功耗不小,deepsleep之后耗电还是比较可观,要是想半年一年换一次电池这种,估计要自己画板子
回复

使用道具 举报

0

主题

6

帖子

78

积分

注册会员

Rank: 2

积分
78
金钱
72
HASS币
0
发表于 2023-1-9 09:59:54 | 显示全部楼层
自己写了个程序,目前只实现数据上传到hass,控制数据下发没做,没实现加密,只接入了一个设备

                               
登录/注册后可看大图

开机两三个月了没有问题

esp8266/esp32的功耗太大,低功耗够呛,拿18650自己打板+deepsleep撑几个月估计还是可以的
回复

使用道具 举报

45

主题

452

帖子

1639

积分

金牌会员

Rank: 6Rank: 6

积分
1639
金钱
1187
HASS币
0
发表于 2023-1-9 10:43:32 | 显示全部楼层
Light-sleep
Light-sleep模式与Modem-sleep相似,不同的是,除了关闭Wi-Fi模块电路以 外,在Light-sleep模式下,还会关闭内部时钟并暂停CPU,⽐Modem-sleep 功耗更低。

Light-sleep模式也分自动和强制两种模式。自动Light-sleep可⽤于需要保持与路由器的连接,可以实时响应路由器发来的数据的场合。在未接收到命令时,CPU处于空闲状态。⽐如Wi-Fi开关的应⽤,⼤部分时间CPU都是空闲的,直到收到控制命令,CPU才需要进⾏GPIO的操作。

esphome:
sensor:
  - platform: aht10
    temperature:
      name: "bedroom Temperature"
    humidity:
      name: "bedroom Humidity"
    update_interval: 60s
   
Light-sleep:
  run_duration: 10s
  sleep_duration: 20min
回复

使用道具 举报

45

主题

452

帖子

1639

积分

金牌会员

Rank: 6Rank: 6

积分
1639
金钱
1187
HASS币
0
发表于 2023-1-9 10:48:11 | 显示全部楼层
//Force Light-sleep
extern "C" {
    #include "gpio.h"
}
extern "C" {
    #include "user_interface.h"
}
void setup() {
   Serial.begin(115200);
   Serial.println();
   gpio_init(); // Initilise GPIO pins
}
void loop() {
  ...
  delay(200);
  Serial.println("Going to sleep now");
  wifi_fpm_set_sleep_type(LIGHT_SLEEP_T); // set sleep type
  wifi_fpm_open(); // Enables force sleep
  wifi_enable_gpio_wakeup(GPIO_ID_PIN(12), GPIO_PIN_INTR_LOLEVEL); //set wakeup pin
  wifi_fpm_do_sleep(0xFFFFFFF); // Sleep for longest possible time
  delay(200);
  Serial.println("Wake up");
  ...
}
回复

使用道具 举报

45

主题

452

帖子

1639

积分

金牌会员

Rank: 6Rank: 6

积分
1639
金钱
1187
HASS币
0
发表于 2023-1-9 10:51:15 | 显示全部楼层
Deep-sleep
Deep-sleep是比Modem-sleep和Light-sleep更节能的模式,它会关闭除了GPIO状态和RTC之外的所有电路来最小化电流,最低仅为20uA。如果我们用1000mA的锂电供电,那么这个系统理论上可以工作:

T = 1000mAh / 20µA = 50,000小时 = 2083 天 = 5.7 年
Deep-sleep可以通过短接GPIO16针脚和RST针脚,代码里设定特定的时间自动唤醒,以NodeMCU开发板为例,我们可以这样连接:
//Deep sleep
void setup() {
  Serial.begin(115200);
  Serial.setTimeout(2000);
  // 等待串口初始化
  while(!Serial) { }
  Serial.println("I'm awake.");
  Serial.println("Going into deep sleep for 20 seconds");
  // 一但遇到以下方法ESP就会进入deepSleep状态
  //ESP.deepSleep(time_in_us)
  ESP.deepSleep(20e6); // 20e6 = 20 microseconds
}
void loop() {
}
回复

使用道具 举报

22

主题

78

帖子

652

积分

高级会员

Rank: 4

积分
652
金钱
574
HASS币
0
 楼主| 发表于 2023-1-9 13:37:17 | 显示全部楼层
steven52880 发表于 2023-1-9 09:59
自己写了个程序,目前只实现数据上传到hass,控制数据下发没做,没实现加密,只接入了一个设备

开机两三个 ...

计划用ESp01

18650电池3.7V-4.2V,可以直接供电吗, 还是需要降压到3.3V?
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 00:28 , Processed in 0.092120 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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