智能家居能源监控管理系统的制作

电子说

1.3w人已加入

描述

步骤1:项目范围分析

简介

鉴于电力成本的不断上涨以及旨在减少一般用电量的全球变暖运动,人们对分析家庭用电量的兴趣日益浓厚。通过分别分析每个电器的用电量,可以得出有关其效率和更换需求的更准确的结论。此外,这还可以确定设备在关闭时是否正在消耗大量电能,以及是否应该拔掉电源。这样可以减少电力消耗和成本。

问题说明

当前安装在家庭中的大多数传统预付费电表仅显示实时总使用量的电量和可用电量。无法查看这些电表的日,周或月消耗量,并且这些电表通常放置在不方便的位置,这使得定期查看变得有些困难。这些功率计还缺乏单独监视设备的能力。因此,隐藏了有关单个电器的重要信息。

项目目标和范围

需要一个智能电表系统,该系统可以分析家庭中的多个电器以获取诸如如电压,电流,有功功率,视在功率,无功功率,功率因数和频率。借助有线/无线连接,设备可以连接到中央网关,并且网关管理系统可以上载和处理收集的信息。然后,数据可以显示在平台的基于android的图形用户界面上。该平台允许用户从任何启用Android的设备访问数据。为了降低成本,系统需要能量计量节点,该能量计量节点可以通过网关以无线方式或有线方式与网关通信,这样对于包含许多受监视设备的家庭来说,仅需要一个Wi-Fi接入点。此外,还要求关于电器的当前信息也可以通过菜单界面在本地显示器上查看。如果满足以下条件,则远程电能计量节点将被视为成功:

•节点与网关之间的有线/无线通信

•正确测量电压,电流和功率

•网关上具有显示和菜单的工作用户界面

•网关和远程仪表节点之间可靠的有线/无线通信。

如果时间允许,可能会添加以下附加功能以改进项目,请记住,省略这些功能不会影响操作:

•建立安全的机械结构来包装网关站

•建立安全的机械结构以隔离能量计量节点

•在设备关闭时提高设备的电源效率并最小化功耗

智能电表和智能电表系统

智能电表是公用事业用于交流信息的电子测量设备为客户开帐单并操作其电气系统。十五年来,电表已被公用事业公司有效地用于为其至少一部分客户群提供准确的账单数据。

最初,由于技术原因,该技术已应用于商业和工业客户对更复杂的费率和更精细的计费数据需求的需求。电子表的使用已为公用事业的最大客户服务,并随着时间的流逝逐渐扩展到所有客户类别。通过降低技术成本和所有客户类别的高级计费要求,可以实现这种迁移。电子仪表与用于信息,监视和控制的双向通信技术的结合通常被称为高级仪表基础架构(AMI)。利用单向通信收集电表数据的先前系统称为AMR(自动电表读取)系统。 AMI已随着时间的流逝而发展,从最初的抄表替代品(AMR)到如今的双向通讯和数据系统。

尽管智能电表在公用事业行业中相对较新,但它们却受到与电子电表和较旧的机电产品相同的尽职调查和审查。这些仪表在仪表精度和设计上一直达到或超过国家标准,例如美国国家标准协会(ANSI)C12.1。此外,用于认证仪表性能的设备必须可追溯到美国国家标准技术研究院(NIST),这是与行业合作以正确应用技术和测量的联邦机构。智能电表安装使用的其他标准包括用于家庭电气布线的国家电气法规(NEC),用于外壳和设备的国家电气制造商协会(NEMA)和Underwriters Laboratories(UL),以及用于公用设施布线的国家电气安全法规(NESC) 。通过公用事业计量专业人士和计量制造商的领导,这些固态电子测量设备的精心开发使得计量表产品具有先进的功能,稳定的精度和更严格的精度公差,并且比先进的功能更具成本效益。

步骤2:系统设计简介

系统由三个主要部分组成。网关,能源节点和android应用程序界面。下面的图1显示了这些部分之间如何相互作用。

能量计量节点

能量节点单元负责在请求时进行功率测量然后将它们发送到网关。它等待通过UART(有线连接)从网关发出的请求。收到请求后,它会从EMIC读取测量值,然后将此信息发送回网关。

网关单元

网关负责收集数据,然后将其发送到android应用程序界面。它还具有控制台访问权限,可以显示所有相关信息以及一个小的界面。通过有线通信从能量节点请求信息。然后,能量节点将信息发送回网关。然后,网关将此信息转发到android应用程序界面。此过程以固定的间隔进行,可以在菜单界面中进行设置。因为网关和能量节点是分开的,所以单个系统可以包含许多能量节点。这样做的优点是,由于仅需要购买能源节点,因此监视其他附加设备的成本较低。

Android应用程序界面

设计了android应用程序,该应用程序负责读取每个连接的能源节点的网关,还负责设置各种网关配置和参数(例如各种阈值等)。

步骤3:能源节点设计简介

智能家居

能量节点单元负责读取EMIC的测量值,并在收到网关请求后中继此信息。能量节点单元由三个主要部分组成–能量测量IC本身,感测电路和隔离电路。能源节点的设计方式使其可以通过电线直接连接到基站,以作为独立系统运行。

能源测量前端(EMIC)

来自cirrus逻辑的CS5490用作能量测量的前端。从文献回顾中可以明显看出,一种简单的功率测量方法是使用EMIC,因为不需要进一步的计算,也不需要考虑其他任何因素。仅需要设置和校准EMIC,然后可以读取寄存器以获取相关信息。正在考虑一些EMIC,例如微芯片的MCP3903。它使用SPI通信,共有8个专用于通信的引脚(SCK,SDO,SDI,CS,复位和3个数据就绪线)。大多数EMIC使用SPI通信。然而,最引人注目的逻辑芯片是CIRRUS LOGIC的CS5490。它使用UART进行通信,并且似乎比其他EMIC更强大。该IC具有的一些功能包括:

•能量测量精度为0.1%

•支持分流电阻和CT

•片上测量/计算:

–有功,无功和视在功率

– RMS电压和电流

–功率因数和线路频率

–瞬时电压,电流和功率

•过电流,电压骤降和电压骤升检测

•超快速片上数字校准

•UART串行接口

•片上温度传感器

•3.3 V单电源

•低功耗:13 mW

CS5490集成了独立的四阶Delta-Sigma模数转换器,用于通道,参考电路和成熟的EXL信号处理内核,可提供有功,无功和视在能量测量。此外,RMS和功率因数计算可用。计算结果通过可配置的能量脉冲输出,或直接通过UART串行访问片上寄存器。串行端口上还提供瞬时电流,电压和功率测量。两线制UART可在需要时最大程度地降低隔离成本。

CS5940总共仅需要3个引脚来接收,接收和复位。 EMIC通常连接到电源以获取电压读数,因此需要将IC与与其通信的微处理器隔离。该项目中使用光耦合器在网关(Beaglebone黑色)和IC之间建立隔离连接。光耦合器在使用光传输数据时可以将两个电路彼此隔离,并且其光敏晶体管全部封装在一个小封装中。方便的是,它还可以用作电平转换器,因为Beaglebone black在3.3V电压下工作,某些部件在5V逻辑下工作,而电能计量IC仅在3.3V逻辑下解决了一个设备的两个问题。

可配置的数字输出提供能量脉冲,过零,能量方向或中断功能。在各种情况下都可能产生中断,包括电压骤降或骤升,过电流等等。通过校验和和写保护来确保片上寄存器的完整性。 CS5490旨在与各种电压和电流传感器接口,包括分流电阻器,电流互感器和Rogowski线圈。

EMIC确实需要一些电路来进行测量。为了进行电压测量,在两根线之间使用了一个分压器,为了进行电流测量,使用了一个分流电阻器。该IC在电压测量和电流测量输入上的最大峰峰值为250mV,因此CT或并联电阻和分压器的选择必须使最大值不会达到最大值,否则IC会断裂

第4步:能量节点电路说明

智能家居

选择了并联电阻,因为它比霍尔效应传感器更稳定。并且比电流互感器小。分流电阻器必须处于这样的范围内:如果从设备汲取最大允许电流,则分流电阻器上的电压降峰峰值之间小于250mV,因为这是EMIC的最大电流电压输入。

Vmax = Imax * Rshunt

因此,Rshunt = Vmax/Imax

选择Imax为17A,Vmax为250mV

R = 10mΩ

因此此处将使用一个小于10mΩ的并联电阻。 EMIC具有50倍的内部可调增益,因此可以使用更小的分流电阻器,并且还具有减小电阻器功耗的优势。

高压交流线路通过分压器进行衰减。传感器由1.76Mohm和1Kohm电阻组成,然后提供给CS5490电压通道输入。分压比取决于CS5490电压通道的最大输入范围(176mVRMS)和最大线路电压。分压比由下面的公式确定。

Vout = Vin *(R2/(R1 + R2))《176mV RMS

对于线路电压,Vin = 260 Vrms,并且R2 = 1K,则可以求解R1。参见下面的公式:

R1 = [1000 * {(260V/176mV)– 1}] = 1.47Mohm

给出120%的裕度,为了选择公共电阻值,选择了R1 = 120%* 1.47M = 1.76Mohm电阻。电压检测电阻(R2)的参考电位必须与电流传感器和CS5490电源(位于线路或中性线)相同。

微处理器和继电器电路的逻辑电平为3.3 V和5V,而EMIC具有3.3V逻辑电平,因此需要一个电平转换器。此外,电能计量IC连接到电源,但是必须将微处理器芯片与电源隔离,因为来自电源的噪声会损坏微处理器,尤其是其他组件的可靠性。因此,需要一种能够同时进行隔离和电平转换的设备。幸运的是,光耦合器可以做到这一点。当光耦合器中的一个信号传输到它时,它的光源就会打开。该光源激活连接接收侧两端的晶体管。光耦合器的选择主要是由于可用性和尺寸。另一个重要因素是在光耦合器之间传输信号的上升和下降时间。

EMIC的默认波特率设置为600。由于波特率非常低,因此光耦合器可以处于微秒范围。该项目的光耦合器是MCT2E。它的上升和下降时间分别为3和4 us,因此以600的波特率可靠地通信是可以接受的。还选择它的原因是它易于获得并且具有仅6针的小型封装。

步骤5:EMIC校准,缩放和补偿

智能家居

智能家居

智能家居

智能家居

电表是配电网络的一部分,用于测量电力消耗。在配电网中使用电表要求电表适应各种配置。这取决于配电网的一部分以及安装了电表的最终用户的类型。这些配置包括广泛的电压和电流范围,根据规格,电表应能正常工作。上述要求要求计量引擎具有适应性,以便根据规格可选择转换输入信号的换能器,同时仍记录输入线路信号的实际值。

电表设计是由许多组件组成,由于电表设计中的各种因素,其特性可能会有所不同。构成电路一部分的组件包括:

•用作电流传感器的电流互感器(CT)或分流器

•用作电压传感器的电阻分压器

•电阻器

•电容器

•电感器

这些特性的变化会影响测量信号,可能会导致

偏移增加,幅度改变和信号相位变化。考虑到以上所有因素,需要进行标准值校准以实现仪表输出。校准是将线路参数设置为已知值,并计算各种信号调节参数(例如增益,偏移补偿和相位补偿因子)的过程。

校准在CS5490中是独立的,并且所有计算均由器件执行,并存储在内部寄存器中。补偿要求MCU执行一些计算,然后将结果存储回CS5490寄存器。由于CS5490没有非易失性存储器(NVM),因此必须将永久性的校准和补偿存储放在MCU NVM中,并在任何AFE复位条件后重新加载。通常,每次校准和补偿都需要执行以下步骤:

•1.配置CS5490的初始条件

•2.将模拟输入与来自精确源的激励相结合

•3.启用所需的校准

•4.执行校准

•5.读取结果

•6.计算新寄存器补偿值

•7.将结果存储在AFE和NVM中

通常同时执行校准和补偿。例如,由于AC增益校准和相位补偿需要将类似的输入信号施加到电流和电压通道,因此校准和补偿是同时执行的。

1。正常操作过程(在现场每次复位时执行)

以下过程概述了将仪表置于正常操作模式所需的步骤。图2.3显示了现场常规操作的简化流程图。

1。重置CS5490。

2。恢复配置和控制寄存器。

3。从非易失性存储器中恢复VGAIN和IGAIN寄存器。

4。如果需要,请从NVM恢复偏移量寄存器。

5。如果需要,请从NVM恢复相位补偿寄存器。

6。如果需要,请从NVM恢复空载补偿到POFF和QOFF寄存器。

7。将单个转换命令发送到CS5490。

8。确认寄存器校验和有效,或返回到步骤1。

9。将连续转换命令发送到CS5490。

10。启用并清除DRDY。

11。投票DRDY。

12。如果设置了DRDY,请清除DRDY。

13。读取IRMS,VRMS和PAVG。通过以下方法将IRMS,VRMS和PAVG缩放回真实值:

安培= Full_Scale_Current *(IRMS/0.6)

电压= Full_Scale_Voltage *(VRMS/0.6)

瓦数= Full_Scale_Power *(PAVG/0.36)

14。循环回到“轮询DRDY”步骤。

2。完整的校准和补偿过程(执行一次)

以下过程显示了执行校准和补偿所需的步骤。图2.4显示了完整校准过程的流程图。

图2.4主要校准过程

1。接通CS5490设备的电源。

2。重置CS5490设备。

3。验证寄存器校验和以确认重置成功。

4。恢复配置和控制寄存器。

5。将参考线电压和负载电流连接到电表,电流相滞后角为60o。

6。如果参考负载电流不是满负载,则将比例寄存器设置为0.6 x 223x参考负载电流÷满量程电流的比率。如果参考线电压低于最大线电压,请参阅非满量程增益校准。

7。连续转换(0xD5命令)2秒钟。

8。停止连续转换(0xD8指令)。

9。读取IRMS,VRMS,PAVG和PF,并通过验证IRMS,VRMS,PAVG和PF是否在合理范围内来确认参考电压和电流信号是否正确连接。

10。清除DRDY状态位。

11。将交流增益校准命令(0xFE)发送到CS5490。

12。等待设置DRDY。

13。如果需要,请执行相位补偿,交流偏移校准和功率偏移校正。

14。发送连续转换(0xD8命令)。

15。验证测量精度。如果精度不在规格范围内,请检查设置或使仪表失灵。

16。读取VGAIN,IGAIN,IACOFF,POFF,QOFF,PC,然后注册校验和并将其保存到闪存/EEPROM中。

17。校准完成。

3。系统缩放比例

硬件缩放比例:CS5490输入使用衰减电路进行缩放,衰减电路的最大输入幅度为176mVRMS或35mVRMS,这取决于AFE增益设置为增益分别为10倍或50倍。

AFE刻度: AFE寄存器记录输入电平,这些电平显示为最新测量值与最大RMS电压和RMS电流的比率。 。 RMS寄存器的最大值使用0.6的比率生成。寄存器值读取为24位十六进制数字,该数字按比例表示0.6VRMS满量程。在最大电压(0.6)和最大电流(0.6)时,最大功率为PMAX = VRMSMAX×IRMSMAX = 0.6×0.6 = 0.36。

MCU比例尺:读取所有寄存器并根据满载条件解释24位十六进制数。知道最大硬件缩放比例和与满量程输入有关的最新AFE寄存器值后,MCU例程便能够计算实际功率测量值。

步骤6:网关设计

网关负责收集数据,然后将其发送到android应用程序界面。它还具有控制台访问权限,可以显示所有相关信息以及一个小的界面。通过有线通信从能量节点请求信息。然后,能量节点将信息发送回网关。然后,网关将此信息转发到android应用程序界面。此过程以固定的间隔进行,可以在菜单界面中进行设置。因为网关和能量节点是分开的,所以单个系统可以包含许多能量节点。这样做的好处是,由于只需要购买能源节点,因此监视其他附加设备的成本较低。

网关的应用程序完全使用C语言设计。该应用程序的流程图如右图所示。该应用程序使用“ sys”文件系统初始化Beaglebone黑板的GPIO引脚开始。然后设置GPIO引脚的方向以适应该引脚上使用的功能。例如,选择连接继电器的引脚作为输出,而选择连接开关的引脚作为输入。

在GPIO引脚初始化之后,我们打开了两个串行端口节点。在Linux文件系统中以“/dev/ttyOx”访问,其中x是UART号。这两个串行端口是我们的电能计量节点使用UART直接连接的端口。因此,只有在打开这些端口之后,我们才能访问这些端口。之后,我们阅读串行端口的先前配置,并设置一个新的端口以匹配我们的EMIC功能。成功设置串行端口后,我们将校准常数加载到两个EMIC板上,从而初始化两个CS5490 EMIC,准备进行能量测量。

成功加载校准常数后,我们设置了一个信号处理程序,用于紧急停止网关服务器应用程序。在这里,我们对资源进行了所有的明智分配,例如服务器文件描述符,串行端口以及我们在应用程序中使用的所有资源。

由于网关还负责将电表读数存储在数据库中,因此我们使用sqlite数据库,用于以结构化格式存储仪表的读数。初始化信号处理程序后,我们打开/创建名为“ METERx”的对应仪表的数据库文件,其中x是仪表编号。如果数据库文件最初不存在,则创建该文件,否则将其打开。现在,以“ month_year”格式创建/打开对应月份和年份的表。对于新的月份/年份,应用程序会自动在数据库中创建相应的表。

现在要在网关应用程序中实现并行性,我们实现了三个线程,它们运行三种不同的应用程序功能。在这里,我们初始化三个线程。第一个是“计时器线程”,它负责维护程序中的参考时间延迟,以定期更新数据库和用于仪表读数的用户界面。下一个线程“开关轮询线程”负责连续监视开关是否被按下,从而执行相应的负载开关功能。第三个线程“服务器线程”负责与Android客户端应用程序创建,绑定,侦听和维护TCP/IP连接,以进行数据更新和检索。

为进行原型演示,我们选择了Beaglebone black ,这是德州仪器(TI)的开发板作为网关处理器。它配备了最少的功能集,以允许用户体验处理器的功能,并且不打算用作完整的开发平台,因为BeagleBone Black无法通过板载访问处理器提供的许多功能和接口。支持某些接口。 BeagleBone Black并非旨在执行任何特定功能的完整产品。它是实验和学习如何对处理器进行编程以及如何通过创建自己的软件和硬件来访问外围设备的基础。它还提供对许多接口的访问,并允许使用称为capes的附加板来添加许多不同的功能组合。用户还可以开发自己的电路板或添加自己的电路。

电路板功能包括:

1。 AM335x 1GHzARM®Cortex-A8

2。 512MB DDR3 RAM

3。 4GB 8位eMMC板载闪存存储器

4。 3D图形加速器

5。 NEON浮点加速器

连接性:

1。用于电源和通信的USB客户端

2。 USB主机

3。以太网

4。 HDMI

5。 2个46针接头插座

软件兼容性:

1。 Debian的

2。的Android

3。 Ubuntu的

4。 Cloud9 IDE

步骤7:ANDRIOD应用程序设计

简介

此应用程序将负责通过Wi-Fi从网关进行通信。首先,它将要求登录名和密码,以便未经授权的用户将无法使用它。然后它会根据用户要求发送特定数据的命令,然后以不同的形式显示网关发送的数据。有各种用于显示各种类型数据的按钮,每次单击都会发送特定命令,以便网关将识别出要从数据库发送给用户的数据。还提供了根据用户需求从应用中打开和关闭电表的措施。从我们可以在电表将限制发送到网关的应用程序中设置能耗限制的角度来看,该电表很聪明,网关将在达到该限制时跟踪能耗,并自动关闭设备。

在上图中,我们看到启用了Meter1,而未启用Meter2,因此我们只能使用仪表1的按钮;与仪表2相关的按钮被禁用,以防止它们被意外使用。还有三个按钮,用于发送命令以检索当前使用情况数据,当月前几周的数据使用情况以及前一天的数据使用情况。每个电表都有一个开关,可以将其打开和关闭,这将使电器根据我们的意愿打开/关闭。当前使用情况将显示在同一屏幕上,并且将显示的数据是功率,电压,电流和能量。其他命令将导致数据以图形的形式显示在不同的活动上。文本框底部是设置每月消耗量的限制,下面的按钮将显示上个月的能耗。

为了以图表形式显示数据,我们使用了Achartengine库,我们必须复制到项目的libs文件夹中,我们必须在mainfest文件中添加其图形活动。我们之所以使用Achartengine是因为它是免费的,精简的并且支持各种类型的图形。

为了发送命令和接收数据,我们使用了Stream Sockets,因为在UDP套接字的情况下,数据可能会被丢失,这将导致应用程序行为异常。数据发送和接收是一个耗时的过程,因此对于每个通信,都会创建一个线程,通信将在其处理程序中进行,结果将由其在主线程中的运行状态发布。在每个线程关闭时,其套接字也将关闭。我们还使用了一些背景图片,需要将其复制到/bin/res/drawable-mdpi文件夹中。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分