首页 > 微机单片机 >单片机制作 > 如何在任何物联网应用中使用ESP8266来节省电力

如何在任何物联网应用中使用ESP8266来节省电力

来源:互联网发布者:张七岁 关键词: 物联网 睡眠模式 Wi-Fi模块 ESP8266 更新时间: 2024/05/17

随着物联网革命每天都在蓬勃发展,连接设备的数量正在迅速增加。未来,大部分设备将相互连接并实时通信。这些设备面临的问题之一是功耗。这个功耗因素是任何物联网设备和物联网项目的关键和决定性因素之一。

众所周知,ESP8266 是构建任何物联网项目的最受欢迎的模块之一,因此在本文中,我们将了解如何在任何物联网应用中使用 ESP8266 来节省电力。在这里,我们每隔 15 秒将 LM35 温度传感器数据上传到 ThingSpeak 云,在这 15 秒内,ESP8266 保持在 DeepSleep 模式以节省电量

降低功耗的不同方法

有几种方法可以优化嵌入式和物联网设备的功耗。可以在硬件和软件上进行优化。有时我们无法优化硬件组件以降低功耗,但我们可以通过更改和优化代码指令和功能在软件方面做到这一点。不仅如此,开发人员还可以修改时钟频率以降低微控制器功耗。

我们可以编写一个固件,让硬件在没有数据交换时休眠,并在特定的时间间隔内执行定义的任务。在睡眠模式下,连接的硬件消耗的电量非常少,因此电池可以持续很长时间。如果您想了解有关功耗技术的更多信息,还可以阅读微控制器中的最小化功耗。

ESP8266 模块是使用最广泛的 Wi-Fi 模块,具有许多小尺寸的功能,具有不同的模式,包括睡眠模式,并且可以通过对硬件和软件进行一些修改来访问这些模式。

在这里,我们将解释ESP8266 中可用的不同睡眠模式,并通过使用深度睡眠模式定期向Thingspeak 服务器发送温度数据来演示它们。

所需组件

ESP8266 Wi-Fi 模块

LM35温度传感器

跳线

ESP8266 中的睡眠模式类型

Esp8266 模块工作在以下模式:

主动模式:在该模式下,整个芯片上电,芯片可以接收、发送数据。显然,这是最耗电的模式。

调制解调器睡眠模式:在此模式下,CPU 处于运行状态,Wi-Fi 无线电被禁用。此模式可用于需要 CPU 工作的应用中,如PWM中。它使 Wi-Fi Modem 电路在与 Wi-Fi AP(接入点)连接时关闭,没有数据传输,以优化功耗。

Light-sleep 模式:在此模式下,CPU 和所有外设都处于暂停状态。外部中断等任何唤醒都会唤醒芯片。在没有数据传输的情况下,可以关闭 Wi-Fi Modem 电路并暂停 CPU 以节省功耗。

深度睡眠模式:在此模式下,只有RTC正常工作,芯片的所有其他组件都断电。此模式在数据在较长时间间隔后传输的情况下很有用。

pYYBAGMW-EuAdyzWAADgTxuBLrs136.png

ESP8266 中的深度睡眠模式

Modem-sleep 和 Light-sleep 在您需要让 ESP8266 模块运行而某些功能关闭时很有用。但是,如果您需要一些严格的电源控制,请选择深度睡眠模式。整体平均电流小于1mA。在 2.5V 时,电流要求仅为 20 μA。

使用深度睡眠模式的步骤:

将模块与 Wi-Fi AP 连接

执行读取传感器值、发布 MQTT 消息等任务。

休眠定义的微秒数

再次重复上述过程

睡眠时间以微秒为单位定义。根据 ESP8266 SDK,您只能休眠 4,294,967,295 µs,即约 71 分钟。

设置 ESP8266 模块:

将 ESP8266 的 RST 引脚与 GPIO 16 即 D0 引脚连接。GPIO 16 是具有 WAKE 功能的重要引脚。

poYBAGMW-EeATRGDAACkBAwfhWo583.png

将LM35 温度传感器连接到 NodeMCU 的 A0 引脚。

poYBAGMW-EOAUr-YAAS6eExRF64818.png

当 ESP 模块的 RST 引脚为高电平时,它处于运行状态。一旦它在 RST 引脚上接收到 LOW 信号,ESP 就会重新启动。

使用深度睡眠模式设置定时器,一旦定时器结束,D0 引脚向 RST 引脚发送 LOW 信号,模块将通过重启唤醒。

现在,硬件已经准备就绪并且配置良好。温度读数将在 Thingspeak 服务器上发送。为此,请在 thingspeak.com 上创建一个帐户,并通过以下步骤创建一个频道。

现在,复制 Write API 密钥。这将在 ESP 代码中使用。

pYYBAGMW-D-ALWBeAAC4a5WwRwA643.png

ESP8266 深度睡眠模式编程

首先包括所需的所有重要库。

#include

一旦包含所有用于访问函数的库,然后分配 API 写入密钥,配置您的 Wi-Fi 名称和密码。然后声明所有变量以供进一步使用要存储数据的位置。

字符串 apiWritekey = "*************"; // 在此处替换为您的 THINGSPEAK WRITEAPI 密钥
char ssid[] = "******"; // 你的 wifi SSID 名称
char passw

现在,使用wifi.begin()函数将模块连接到 Wi-Fi 网络,然后使用 while 循环不断检查直到模块没有连接到 Wi-Fi。

void connect1() { 
  WiFi.disconnect(); 
  延迟(10);
  WiFi.begin(ssid, 密码); 
  而(WiFi.status()!= WL_CONNECTED){

制作另一个函数将数据发送到 thingspeak 服务器。在这里,将发送一个字符串,其中包含 API 写入密钥、字段编号和必须发送的数据。然后使用 client.print() 函数发送这个字符串。

void data() { 
  if (client.connect(server,80)) 
  {   
    String tsData = apiWritekey; 
           tsData +="&field1="; 
           tsData += String(tempF); 
           tsData += "

"; 
     client.print("POST /update HTTP/1.1
"); 
     client.print("主机:api.thingspeak.com
");

调用 connect1 函数,该函数将调用该函数来连接 Wi-Fi,然后读取温度并将其转换为摄氏度。

无效设置() { 
  Serial.begin(115200);
  Serial.println("设备处于唤醒模式"); 
  连接1();
  int 值 =

现在,调用 data() 函数将数据上传到 thingspeak 云上。最后,调用的重要函数是 ESP.deepSleep();这将使模块在定义的时间间隔内休眠,以微秒为单位。

数据(); 
Serial.println("深度睡眠 15 秒"); 
ESP.deepSleep(15e6);

循环功能将保持为空,因为所有任务都必须执行一次,然后在定义的时间间隔后重置模块。

教程末尾提供了工作视频和完整代码。上传 ESP8266 模块中的代码。上传程序前先拔掉RST和D0的连接线,否则会报错。

在 ESP8266 中测试 DeepSleep

上传程序后,您会看到温度读数每 15 秒上传到 ThingSpeak 云,然后模块进入深度睡眠模式。

pYYBAGMW-DmAZbnqAAD71Irl1lU739.png
// esp8266 deepsleep

#include

提问/讨论

这里还没有内容,您有什么问题吗?

我要提问/讨论

推荐帖子 最新更新时间:2024-11-13 09:09

电压基准及时间基准
电压基准及时间基准 所有模数转换器(ADC)和数模转换器(DAC)都需要一个基准信号,通常为电压基准 。 ADC的数字输出表示模拟输入相对于它的基准的比率;DAC的数字输入表示模拟输 出相对它的基准的比率。有些转换器有内部基准,有一些转换器需要外部基准。不管怎样所 有转换器都必须
 fighting测试/测量
2008广西大学生电子设计大赛正式开始
本帖最后由 paulhyde 于 2014-9-15 09:45 编辑 第二阶段电子设计竞赛从2008年9月19日上午8:00 开始,到2008年9月22日晚上20:00结束。9月22日晚上20;00各参赛学校在巡视员监督下将竞赛作品封箱,学校指定地点统一存放,请保证包装箱的
 maker电子竞赛
发布 车用传感器技术参数
有需要请回贴! 如何粘贴附件呀???? 发布 车用传感器技术参数 现在可以上传文件了 Re: 发布 车用传感器技术参数 我需要 可是什么都没有啊
 goodboy综合技术交流
vivado生成IP核问题
vivado有个大工程,下面一堆子程序,当我生成ip核的时候,只生成了顶层的ip核,下面子程序的ip核都没有生成,这是为什么啊? vivado生成IP核问题 把ip核的参考调用接口函数,写到子程序里,ip核自动回更新到子程序目录下
 刘123FPGA/CPLD
2021慕尼黑华南电子展推出行业年度关键词
因为疫情原因,我们很遗憾地通知您,本次活动暂时取消了。但是承诺的奖品我们将在近期发出。让我们期待来年的活动更精彩。 2021年12月27-29日 在 深圳国际会展中心(宝安新馆) ,2021华南国际智能制造、先进电子及激光博览会(LEAP Expo)旗下成员展: 慕
 EEWORLD社区综合技术交流
CMOS低压差线性稳压器
《CMOS低压差线性稳压器》系统地介绍了CMOS低压差线性稳压器(LDO)芯片设计技术,包括系统结构与组成,以及基准电路、误差放大器、辅助电器等,对其中的设计关键技术,例如频率补偿、电源噪声抑制、大信号响应等技术有详细的分析。在电路理论分析的基础上,提出了低功耗LDO、无片外电
 arui1999下载中心专版

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD 电路图 站点相关: 下载中心 Datasheet 参考设计

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved