物联网中的设备电源管理

在开发物联网项目时要考虑的一个方面是设备电源管理 。 随着物联网的兴起,电池供电设备的优化是一个重要方面,可以有所作为。 物联网中的设备电源管理是一项具有挑战性的任务,因为设备可以始终通电并且可以放置在任何地方。 IoT设备通常位于远程位置,并且必须使用电池才能工作。

物联网设备电源管理:如何实施

物联网中的设备电源管理涉及与设计过程相关的所有步骤,因此,必须考虑设备的行为方式以及此行为如何影响能耗,这一点非常重要。 电池容量和设备行为是最重要的两个方面。 更详细地,设备行为可能对能量管理产生不良影响。 通常,我们可以使用三个不同的区域对物联网设备的功耗进行建模:

  • 微控制器
  • 无线电作业
  • 传感器和执行器

一个典型的物联网设备用例是:

  • 从传感器获取数据
  • 发送和接收数据
  • 控制执行器

通常,物联网设备使用一个或多个传感器来获取与环境有关的信息。 所获取的数据可在本地或远程进行决策。 此信息是使用传感器获取的,每个传感器都有特定的功耗。 因此,仔细选择传感器以优化电源管理非常重要。

物联网设备在其运行期间可以远程发送和接收数据。 通常,数个物联网设备连接到物联网网关,物联网网关收集此类信息并将其发送到云。 从电源管理的角度来看,发送和接收操作是最昂贵的任务之一。 此操作涉及无线电连接(蜂窝,Wi-Fi,蓝牙等)。

最后,物联网设备可以在本地或远程使用一些特定的业务逻辑,从而可以控制一个或多个执行器。

微控制器控制着所有操作,它是设备的大脑,为了工作,它需要电源。

在物联网中实施电源管理

现在,我们介​​绍了与IoT设备中的电源管理相关的一些方面,现在该介绍如何实现它了。 为此,我们将从开发的角度描述一些最佳实践,涵盖如何编写考虑设备电源管理的代码。

我们使用Arduino,ESP8266和其他兼容设备开发IoT应用程序的最简单方法是在loop()方法中实现代码。 例如,当我们必须在特定的时间间隔从传感器获取数据时,我们只需添加delay(..)方法,指定设备在再次启动并重复相同任务之前应等待的时间。 考虑电源管理方面,这种方法并不是最佳方法。 我们可以使用不同的方法来获得更好的结果。

例如,更多详细信息,ESP8266设备具有四种不同的模式来“休眠”或节省电池:

  • 没睡
  • 调制解调器睡眠
  • 浅睡眠
  • 沉睡

下表描述了这些不同的睡眠模式:

设备电源管理

没睡

这是使用此设备的最无效的方法。 它总是打开。

调制解调器睡眠模式

仅在ESP8266连接到Wifi时启用此模式。 在此模式下,ESP8266在两个DTIM Beacon间隔之间关闭WiFi模块。 ESP8266在下一个信标之前再次打开WiFi模块。 当需要保持CPU开启时,使用睡眠模式。

浅睡眠模式

该模式与Modem-sleep模式非常相似,但在此模式下,ESP8266暂停CPU并关闭时钟。 此模式比以前的模式更有效。 在浅睡眠模式下,应使用GPIO引脚唤醒ESP8266。

深度睡眠模式

在此模式下,除了RTC(实时时钟)外,所有其他设备都将关闭,因此ESP8266可以定期打开。 这是最有效的模式。 深度睡眠模式可用于设备应按特定间隔发送数据的情况。 这是使用传感器的应用程序的示例。 该应用程序读取传感器数据,发送值并进入深度睡眠模式。

更多有趣的资源:

如何将Cayenne IoT与ESP8266和MQTT结合使用:完整的分步实用指南

使用带有IFTTT警报系统的Arduino构建IoT土壤湿度监测器

如何使用ESP8266的电源管理来降低功耗

现在该构建一个简单的示例,描述如何使用深度睡眠模式来处理物联网中的电源管理。 让我们假设我们的应用程序必须读取温度并将其发送到远程物联网平台。 应用程序结构必须为:

  • 从传感器读取数据
  • 发送数据
  • 在预定的时间间隔内进入深度睡眠模式
  • 从第一步再次重复

如何在ESP8266中启用深度睡眠模式

第一步是启用深度睡眠模式。 下面的示意图显示了如何执行此操作:

设备电源管理

在这种情况下,我们将引脚D0连接到RST。

小费
将代码上传到ESP8266时,请勿将D0连接到RST

下面的ESP8266代码展示了如何实现:

#include <ESP8266WiFi.h>

const char* WIFI_SSID="---";
const char* WIFI_PWD="----";
 
void setup() {
  Serial.begin(9600); 

  connectToWifi();
  // send data

  Serial.println("Going to deep sleep for 15 sec");
  ESP.deepSleep(15e6);
}

void loop() {
  // put your main code here, to run repeatedly:
}

void connectToWifi() {
  Serial.print("Connecting to Wifi:");
  Serial.println(WIFI_SSID);
  WiFi.begin(WIFI_SSID, WIFI_PWD);
  
   while (WiFi.status() != WL_CONNECTED) {
    if (WiFi.status() == WL_CONNECT_FAILED) {
      Serial.println("Error during WiFi connection- ");
      delay(10000);
    }
    delay(1000);
   }

    Serial.print("Wifi IP:");
    Serial.println(WiFi.localIP());
}

在这种情况下,ESP8266会进入深度睡眠模式达15秒钟。 当它唤醒时,它会从头开始,重新连接到WiFi等。

可以使用此方法通过按钮启动ESP8266。 我们将在另一篇文章中介绍。

摘要

希望在本文结尾处,您可以通过一些示例获得有关如何管理IoT中电源的知识。 电源管理在物联网中非常重要,因此必须加以考虑。

翻译自: https://www.javacodegeeks.com/2019/02/device-power-management.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值