随着物联网革命每天都在蓬勃发展,连接设备的数量正在迅速增加。未来,大部分设备将相互连接并实时通信。这些设备面临的问题之一是功耗。这个功耗因素是任何物联网设备和物联网项目的关键和决定性因素之一。
众所周知,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正常工作,芯片的所有其他组件都断电。此模式在数据在较长时间间隔后传输的情况下很有用。
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 功能的重要引脚。
将LM35 温度传感器连接到 NodeMCU 的 A0 引脚。
当 ESP 模块的 RST 引脚为高电平时,它处于运行状态。一旦它在 RST 引脚上接收到 LOW 信号,ESP 就会重新启动。
使用深度睡眠模式设置定时器,一旦定时器结束,D0 引脚向 RST 引脚发送 LOW 信号,模块将通过重启唤醒。
现在,硬件已经准备就绪并且配置良好。温度读数将在 Thingspeak 服务器上发送。为此,请在 thingspeak.com 上创建一个帐户,并通过以下步骤创建一个频道。
现在,复制 Write API 密钥。这将在 ESP 代码中使用。
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 云,然后模块进入深度睡眠模式。
// esp8266 deepsleep
#include
这里还没有内容,您有什么问题吗?
电子电路资源推荐
- 微波射频电路设计与仿真100例
来源:下载中心
- Cortex-M3 STM32F103 开发板 Protel PCB 原理图
来源:下载中心
- 电路理论基础
来源:大学堂
- 石群电路视频
来源:大学堂
- PCB板基础知识讲解
来源:电路图
- 电阻的串联、并联及混联电路介绍及作用
来源:电路图
推荐帖子 最新更新时间: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下载中心专版
- C6000系列DSP的GPIO框图
- 关于NRF24L01实现无线视频传输
- IAR 5.4 破解 (坛子里的那个5.4文件不对)
- bootLoadModule
- 【精品】WEBENCH系列培训课程上线!不可错过!
- 奖品追加!有奖直播:是德科技全新光通信测试方案介绍
- F6638关于UART串口突然失效,连中断都进不了的问题
- 【DFRobot 云雀气象仪】学习笔记07(微信小程序实时显示云雀气象仪数据和阈值告警)
- 【免费领取】MPS DCDC电源模块评估板EVM38111-R-00A
- 射频能量采集技术
- 【Atmel SAM R21创意大赛周计划】+openwrt网关准备(一)
- 之前的面试题 麻烦大家指点下
- NI 特惠月,购买软件及更多产品,可享最低6折优惠!
- 本周精彩博文分享
- RAS拨号连接后获取了一个错误的IP,子网掩码
- 这种固定PCB的套件哪里有卖?
- 非BSP工程,一定要SYSGEN才能编到NK当中吗?
- 咱也来玩BeagleBone【1】- 给BeagleBone装系统
- 电子管放大器(第4版)
- 【藏书阁】数字信号处理教程(第二版)
- TWR-34933EVB: 塔式 系统和恩智浦 Freedom扩展板 - MC34933,双H桥,步进电机驱动器,2.0-7.0V,1.4A
- 具有固定版本使能的 600mA CMOS LDO 稳压器的典型应用
- MC78M08BTG 8V 可调输出稳压器的典型应用
- 具有低噪声、低失真差分放大器的 LTC6605-7 双路匹配 7MHz 滤波器的典型应用
- 使用符合 EN55022 B 类(24Vin 和 48Vin,单输出)具有 EMC 滤波的 RP40-2412SFR DC/DC 转换器的典型应用
- AP330112V-3.5AEV1,基于AP3301 2V/3.5A通用交流输入准谐振反激转换器的评估板
- 具有集成二极管的L2293Q推挽四通道驱动器评估板
- LTC2970-1 支持电源跟踪
- LT3970HMS-5 5V 降压转换器在启动期间具有降低的输入电流的典型应用
- 使用 LT1228 和 LT1223 视频衰减器的视频设计电路