【OpenEnergyMonitor】开源的能源监控系统--项目介绍

news2024/12/23 17:05:18

OpenEnergyMonitor

  • 1. 系统框架
  • 2.项目组成
    • 2.1 emonPi模块:
      • 2.1.1 emonpi的安装:
      • 2.1.2 emonTx & emonBase 安装
      • 2.1.3 emonTx Wifi 安装:
      • 2.1.4 添加额外的 emonTx 节点:
      • 2.1.5 添加额外的emonTx-节点监控三项电源
      • 2.1.6 添加 emonTH 温度节点
      • 2.1.7 添加脉冲计数 plus counting
      • 2.1.8 添加 温度传感器

1. 系统框架

在这里插入图片描述
在这里插入图片描述
MQTT:(消息队列遥测传输)是一个基于客户端-服务器的消息发布/订阅传输协议

Arduino:开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(ArduinoIDE),可以在Windows、Macintosh OS(Mac OS)、Linux三大主流操作系统上运行。Arduino能**通过各种各样的传感器来感知环境**,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,它们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。

Arduino-emonpi:基于树莓派的能源监测

ttyAMA0: ttyAMA0是树莓派上gpio里的串口,就是tx rx两个针,ttyUSB0是usb转ttl的串口

emonhub: 远程服务器监控应用程序, Python服务将输入链接和解码到MQTT和Emoncms,基于在所述配置- emonHub在OpenEnergyMonitor系统用来读取从任一EmonPi板或RFM12 / 69Pi适配器板后,转发接收的数据通过串行到emonCMS在解码准备使用的形式的数据 更一般而言:Emonhub由一系列接口组成,这些接口可以从/从多个服务读取/订阅或发送/发布数据。 EmonHub支持解码以下数据: Emonhub包含在EmonPi和Emonbase都使用的。

树莓派:RPi,外表“娇小”,内“芯”却很强大,只有信用卡大小的微型电脑,其系统基于Linux。它是基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,卡片主板周围有1/2/4个USB接口和一个10/100 以太网接口(A型没有网口),可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有PC的基本功能。

CMS:内容管理系统(content management system,CMS),Emoncms是一个open-source的web应用程序,用于处理、记录和可视化能源、温度和其他环境数据,是OpenEnergyMonitor项目的一部分。

AC-DC:直流电、交流电:DC是指直流电源,一般常用的有30V,6.0V,90V,12V等几个常见电压; AC指的是交流电源,输出电压有220V和380V。

2.项目组成

项目官网

在这里插入图片描述
OpenEnergyMonitor系统能够监控电能的使用/产生、温度和湿度。

该系统由五个主要单元组成。这些可以配置为适用于各种应用。该系统是完全开源的,包括硬件和软件。所有硬件都基于Arduino和Raspberry Pi平台。

  • emonPi: 一个2路一体式能量监测器和基站,用于收集数据、托管emonCMS软件,还可以接收来自其他传感器节点的数据。emonPi是一款基于Raspberry Pi的多功能一体式能量监测装置,可在电表位置安装以太网或WiFi,实现简单安装。

  • emonBase:接收无线传感器节点发送的数据的简单基站。托管emonCMS软件,以实现完整的本地数据记录和可视化功能。

  • emonTx:一个4路能量监测节点。通过内置的433MHz收音机将数据传输至emonBase或emonPi。它还可以通过ESP8266
    WiFi适配器或直接通过串行连接发送数据。

  • emonTh:电池供电的无线室内温湿度监控节点。通过433MHz无线电将数据传输至emonBase或emonPi。

2.1 emonPi模块:

  • 特征:
  1. 2个CT传感器输入,用于单相交流电监测,设计用于100A SCT-013-000 CT传感器

  2. 使用插入式AC-AC适配器进行1x AC电压测量,以计算实际功率,同时测量CT传感器的电流。设计用于9V交流输出电压适配器

  3. 通过RJ45插座支持多个有线单线DS18B20温度传感器

  4. 支持有线或通过光学脉冲传感器进行脉冲计数

  5. 433 MHz RFM69无线电收发机,用于接收来自额外能源监测或温度和湿度节点的数据。

  6. emonPi测量板基于Arduino(Atmega328)。这是一个集成的Raspberry Pi,它在SD卡上运行我们的emonSD软件堆栈。

  7. 使用emonSD Emoncms软件堆栈实现完整的本地数据记录和可视化功能。数据还可以发送到远程emoncms服务器,如emoncms。组织。

  8. 按钮:用于关闭和启用/禁用SSH访问。

  9. 通过以太网或WiFi进行网络连接。

  10. LCD显示屏:为便于设置,显示网络IP地址和传感器状态。

  • 内部结构

emonPi= RaspberryPi + emonPi测量板 ,其中 emonPi测量板是基于运行Arduino固件的ATmega328p 8位微控制器。

  • emonPi 系统框架

在这里插入图片描述

以上系统图显示了构成emonPi的主要硬件和软件组件。左边是基于ATmega328微控制器的emonPi测量板,带有来自不同传感器的输入、RFM69 433 MHz收发器、按钮以及与LCD的I2C连接。Atmega328微处理器通过内部UART串行端口(/dev/ttyam0)与 Raspberry Pi通信

1. RF 射频

emonPi使用HopeRF RFM69CW射频模块**以433 MHz的频率从其他无线节点(emonTx、emonTH等)接收数据。**我们使用 JeeLib packet format 据包格式。每个RF节点都有一个唯一的节点ID,但有一个公共网络组(默认为210)。ATmega328运行一个改进版的JeeLabs RFM12演示草图,以接收来自无线节点的数据。接收到的无线数据包通过串口转发,并使用EmonHub在RaspberryPi上解码。

2. 能源监测

emonPi测量板包括输入电路,用于将来自ACAC适配器和CT传感器的输出转换为与模数转换器(ADC)兼容的信号。ATmega328的10位ADC按顺序对电压和电流通道进行采样。ATmega328上运行的固件计算每个通道的实际功率、视在功率、功率因数、VRM和IRM。然后每隔5秒将真实功率读数推送到RaspberryPi进行记录和可视化

要了解更多有关电力监控工作原理的信息,请访问我们的学习网站:

  • Learn: AC Power Theory

  • Learn: CT Sensors, interfacing with an Arduino

  • Learn: Measuring AC Voltage with an AC to AC power adapter

    可在此处访问和下载完整的emonPi测量板固件:

    • emonPi Discrete Sampling Firmware
    • The firmware uses the EmonLib Discrete Sampling Library
  1. 脉冲计数 Pulse Counting

emonPi上的脉冲计数使用ATmega328上的硬件中断IRQ1。RFM69CW使用第一个硬件中断IRQ0。每个emonTx/emonPi只能有一个脉冲计数器输入。

  1. emonPi Raspberry Pi And emonSD

emonPi Raspberry Pi运行基于Raspbian Buster Lite的emonSD软件堆栈。可以购买或下载预构建的emonSD映像,也可以使用我们的自动构建脚本自己构建映像,请参阅EmonScripts。

EmonSD包括emonHub,它从emonPi测量板读取串行数据,并充当代理,通过MQTT将这些数据转发到emoncms的本地安装或远程服务器,如emoncms.org通过HTTP。

Emoncms是我们的开源网络应用程序,用于处理、记录和可视化能源、温度和其他环境数据。它作为emonSD软件堆栈的一部分安装,并提供完整的本地数据记录和可视化功能。

2.1.1 emonpi的安装:

https://guide.openenergymonitor.org/setup/install/

2.1.2 emonTx & emonBase 安装

以2个CT传感器和一个ACAC电压传感器为例,该传感器用于监控房屋中的两个交流电路,并允许计算实际功率以及emonTx装置本身的功率。emonTx最多支持4个CT传感器,因此可以轻松扩展以下步骤,以监控其他电路。

在本例中,emonTx每隔10秒通过433 MHz无线电将交流电源、电压和温度传感器测量值(如果已连接)传输至emonBase基站。emonBase基站由一个RaspberryPi和一个RFM69Pi适配器板组成,用于接收来自emonTx的433 MHz无线数据包。emonBase运行我们的emonSD软件,包括用于完整本地数据记录和可视化功能的emonCMS。

典型的emonTx和emonBase系统包括:

  • 1个emonTx(包括天线和壁挂式支架)
  • 1-4x 100A CT传感器
  • 1个ACAC电压传感器
  • 1x USB电源和微型USB电缆
  • 1个emonBase(RaspberryPi+RFM69Pi适配器板+机柜+emonSD卡)

在这里插入图片描述

emonTx传感器节点安装示例:
在这里插入图片描述

在本示例安装中,使用连接到棕色电缆(房屋主馈线)的CT传感器测量房屋总用电量。另一个CT传感器位于主用电设备内部,在这种情况下监测热泵的供电。为AC-AC电压传感器和组合电源安装了专用插座。连接了一个RFM69 433 MHz天线,还有一个DS18B20温度传感器连接到emonTx RJ45温度和脉冲输入插座。emonTx每10秒通过RFM69无线电将实际功率、累计瓦时、电源电压和温度测量值传输到一个通过以太网连接到客厅互联网路由器的emonBase。

  • emonTx

将emonTx安装在所需位置,必要时使用壁挂式支架,连接天线。首先将CT传感器插入emonTx,然后夹住要测量的交流电路的线路或中性线。如果功率读数为负值,则反转CT传感器方向。安装前请阅读CT安装指南。根据需要安装温度传感器或/和脉冲传感器。参见指南:+添加温度节点+添加光脉冲传感器。插入并连接AC-AC适配器,以提供电压测量和电源。这可能需要安装新插座或扩展现有插座。

  • emonBase
  1. 如果使用以太网,请在给emonBase通电之前连接以太网。
  2. 插入USB电源并连接微型USB电缆。

硬件设置完成了!下一步是配置网络连接,并将emonBase设置为在本地记录数据或/或将数据发布到远程服务器(如emoncms)。组织。

2.1.3 emonTx Wifi 安装:

https://guide.openenergymonitor.org/setup/esp8266-adapter-emontx/

使用带有ESP8266 Huzzah WIFI模块的emonTx V3

这是一个关于如何使用Adafruit ESP8266 Huzzah WiFi模块和emonTx v3制作一个简单的支持WiFi的能量监测器的指南,该监测器可以直接发送到emoncms.org或任何其他Emoncms安装本地或远程。

适用于只需要将数据从一个emonTx基本发布到远程服务器(如Emoncms)的应用程序。与安装emonBase或emonPi基站相比,使用此WiFi模块的emonTx提供的路由成本更低。

对于需要本地存储和/或安装有多个传感器和控制节点的更复杂应用,建议使用emonBase或emonPi。emonPi/emonBase系统允许更大的可扩展性和定制性。

emonTx V3:+CT、AC-AC适配器、温度和脉冲传感器,根据您的应用程序的要求。要将ESP8266与emonTx三相固件一起使用,需要将EmonESP波特率设置为9600

emonTx的5V USB直流电源:在正常运行时为emonTx供电的AC-AC电压适配器无法提供足够的电源来运行ESP8266 Huzzah WiFi模块,因此需要额外的5V USB电源。使用ESP8266时,电池无法工作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-crjZ3dMD-1670642785047)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220516154226811.png)]

注意:应该只连接RX引脚,不需连接Tx引脚。

设置程序

  • 1) 如上图所示,将ESP8266 Huzzah WIFI模块插入emonTx。
  • 2) 根据需要连接所有CT传感器、用于电压感应的AC-AC适配器和其他传感器,并将USB电源插入emonTx上的USB迷你插座。
  • 3) 卸下(打开)emonTx PCB上的跳线JP2,然后同时连接5V直流USB电源和AC-AC适配器,以确保emonTx启动时检测到AC-AC适配器,并向ESP8266 Huzzah WiFi模块提供足够的电源以供启动。
  • 注意:务必拆下/断开跳线JP2,将交流和直流电源分开,以确保emonTx通过直流供电,且交流仅用于提供交流参考电压。
  • 4) ESP8266 WiFi模块现在将创建一个用于配置的WiFi接入点。使用笔记本电脑或手机扫描WIFI网络,你应该会看到一个网络SSID,比如: emonESP_1679732
  • 5) 成功连接后,导航至IP地址192.168.4.1以访问配置页面:
  • 6) 选择要连接的WiFi网络,输入密钥,然后单击“连接”。等待大约30秒,等待模块连接。一旦连接,模块将在界面上显示其IP地址(在屏幕截图中用红色下划线)。
  • 7) 单击IP地址将浏览器更改为新位置。重新连接到您的家庭WiFi网络。刷新页面以通过家庭局域网WiFi而不是接入点加载emonESP配置页面。
  • 8) 如果您希望将数据发布到Emoncms.org,输入你的表情。在您的emoncs上找到org write apikey。组织账户页面。
  • 9) 单击保存,大约10-20秒后,界面应报告成功的数据包已发送到EMONCM。组织。现在,您可以查看emoncm上的输入页面。组织帐户,应如下所示:
  • 10) 配置emoncm。正常情况下,请参阅指南的emoncms文档部分。

如果您的本地网络上有emonBase或emonPi,默认设置为

hostname: emonpi
username: emonpi
password: emonpimqtt2016
base topic: emon/emontx

2.1.4 添加额外的 emonTx 节点:

https://guide.openenergymonitor.org/setup/emontx/

添加额外的节点可实现:

  • 扩展可以测量的交流电路的数量。(每个EmonTx增加+4个CT传感器输入)

  • 监视建筑物中不同位置的电路

  • 监控交流插座不可用的电路(使用电池电源)

  • 监控三相电源(使用三相emonTx固件,请参阅emonTx技术)

数据通过标准的低功率433MHz无线电传输到emonPi或emonBase,或者在433MHz无线电范围不足的应用中,通过WiFi使用ESP8266 WiFi适配器。

A) 向emonPi系统添加一个emonTx

如果您已经按照emonPi安装指南安装了emonPi。emonTx和emonBase安装指南中介绍了安装emonTx的步骤。在本例中,emonPi的工作方式与emonBase基本相同。

B) 向emonPi或emonBase系统添加多个emonTx

除了《emonTx和emonBase安装指南》中所述的标准emonTx安装之外:当在同一基站上使用两个或多个emonTx单元时,每个单元上的节点ID必须是唯一的。如果同一网络上需要两个以上的emonTx,则可以通过RF node ID serial config设置更多的nodeID值。

串口配置:

可以通过串口设置emonTx无线电设置、传感器校准和其他属性。请参阅** Github PDF: Configuration of RF Module & on-line calibration **,了解完整详细信息。如果设置了自定义节点ID,则需要在emonhub中设置相应的节点解码器。conf 对 emonTx无线数据包进行解码。见 emonhub.conf configuration guide.

注意:使用Arduino IDE通过串行设置固件属性时,确保串行监视器设置为NL/CR,波特率设置为115200。更改线路结束选择后,可能需要重新启动串行监视器。

2.1.5 添加额外的emonTx-节点监控三项电源

https://guide.openenergymonitor.org/setup/emontx-3phase/

可以将运行三相固件的其他EmonTx能量监控节点添加到emonPi或emonBase系统中,以:

监控三相电源(使用三相emonTx固件,请参阅emonTx技术)数据通过标准的低功率433MHz无线电传输到emonPi或emonBase,或者在433MHz无线电范围不足的应用中,通过WiFi使用ESP8266 WiFi适配器。可以将运行三相固件的其他EmonTx能量监控节点添加到emonPi或emonBase系统中,以:监控三相电源(使用三相emonTx固件,请参阅emonTx技术)

数据通过标准的低功率433MHz无线电传输到emonPi或emonBase,或者在433MHz无线电范围不足的应用中,通过WiFi使用ESP8266 WiFi适配器。

2.1.6 添加 emonTH 温度节点

https://guide.openenergymonitor.org/setup/emonth/ (待续)

无线温湿度监测节点,通过射频(433Mhz)与emonPi和emonBase通信,单个emonPi最多和4个emonTH通信。通过手动更改RF nodeID,单个emonPi/emonBase可以连接超过4个emonTH单元。

2.1.7 添加脉冲计数 plus counting

很多仪器仪表都有脉冲输出,这些仪表可以直接与两根电线连接,通常可以切换监控硬件提供的电压。

2.1.8 添加 温度传感器

emonPi和emonTx都支持使用DS18B20单线数字温度传感器进行温度感应。emonPi上的标准固件最多支持6个温度传感器,emonTx最多支持3个温度传感器。emonPi和emonTx都有一个特殊的RJ45插座,可以直接连接一个RJ45 DS18B20温度传感器,也可以通过RJ45分接板或端子块分接板连接多个传感器。或者,emonTx上的接线板可用于有线连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/78348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue核心】8.计算属性

1. 定义: 要用的属性不存在,要通过已有属性计算得来。 2. 原理 底层借助了objcet.defineproperty方法提供的getter fllsetter. 3. get两数什么时候执行? (1),初次读取时会执行一次。 (2),当依赖的数据发生改变时会被再次调用。 4. 优势 与methods实现相比,内部有缓存机…

进厂手册:Git 学习笔记(详解命令)

文章目录git 对象通过git对象进行文件的保存git对象的缺点树对象构建树对象提交对象高层命令工作区的文件状态git reset hard 咋用以及用错了怎么恢复git checkout vs git resetGit存储后悔药工作区暂存区版本库reset三部曲checkout深入理解tag远程上的相关操作ssh登入一些个人…

[附源码]计算机毕业设计家庭整理服务管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

LeetCode刷题复盘笔记—一文搞懂动态规划之213. 打家劫舍 II问题(动态规划系列第十八篇)

今日主要总结一下动态规划完全背包的一道题目,213. 打家劫舍 II 题目:213. 打家劫舍 II Leetcode题目地址 题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一…

快速排序详解

快速排序,简称快排。其实看快速排序的名字就知道它肯定是一个很牛的排序,C语言中的qsort和C中的sort底层都是快排。 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法…

Opencv 基本操作五 各种连通域处理方法

在深度学习中,尤其是语义分割模型部署的结果后处理中,离不开各类形态学处理方法,其中以连通域处理为主;同时在一些传统的图像处理算法中,也需要一些形态学、连通域处理方法。为此,整理了一些常用的连通域处…

leetcode每日一题寒假版:1691. 堆叠长方体的最大高度 (hard)( 换了皮的最长递增子序列)

2022-12-10 1691. 堆叠长方体的最大高度 (hard) 🚩 学如逆水行舟,不进则退。 —— 《增广贤文》 题目描述: 给你 n 个长方体 cuboids ,其中第 i 个长方体的长宽高表示为 cuboids[i] [width(i), length(i), height(i)]&#xf…

Docker补充知识点--自定义网络实现直连容器

前面介绍docker镜像的秘密这篇知识点的时候,https://blog.csdn.net/dudadudadd/article/details/128200522,提到了docker容器也有属于自己的IP的概念,默认的Docker容器是采用的是bridge网络模式。并且提到了一嘴自定义网卡配置,本…

java基于Springboot的健身房课程预约平台-计算机毕业设计

项目介绍 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven 本健身网站系统是针…

Unity纹理优化:缩小包体

Android打包apk大小约:475M 查看打包日志:Console→Open Editor Log; 或者依赖第三方插件:build reports tool(在unity store里可以下载); 定位问题 经过排查后,发现项目中纹理占比很高&#…

分布式能源的不确定性——风速测试(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清…

(6)Pytorch数据处理

Pytorch 数据处理 要点总结 1、功能 Dataset:准备数据集,一般会针对自己的数据集格式重写Dataset,定义数据输入输出格式 Dataloader:用于加载数据,通常不用改这部分内容 2、看代码时请关注 Dataloader中collate_fn 传入…

【云原生】K8s Ingress rewrite与TCP四层转发讲解与实战操作

文章目录一、背景二、K8s Ingress安装三、K8s Ingress rewrite 讲解与使用1)配置说明2)示例演示1、部署应用2、配置ingress rewrite转发(http)3、配置ingress rewrite转发(https)【1】创建证书(…

音视频- iOS图像采集

本文主要总结一下,如何使用AVFoundation的功能来实现图像的采集,主要用到了AVFoundation中的一些类,采集的结构如下图,引用自iOS开发者官网: AVCaptureSession 采集会话,其主要功能从整体上来掌管图像采集的…

MOSFET 和 IGBT 栅极驱动器电路的基本原理学习笔记(五)交流耦合栅极驱动电路

交流耦合栅极驱动电路 1.计算耦合电容 2.耦合电容器的启动瞬变 3.总结 栅极驱动路径中的交流耦合可为栅极驱动信号提供简单的电平位移。交流耦合的主要作用是修改主MOSFET 的开通和关断栅极电压,而高侧栅极驱动则不同,它最需要关注的是缩小较大的电势差…

软件安全测试-web安全测试基础

目录 1. Web安全的测试范围 2.Web安全的四要素 3. Web安全的分类 4. Web安全的类别排名​ 5. 零时差攻击 6. Web安全的载体 7. 了解软件安全测试相关的Cooike,Session,Token 7.1 会话级鉴权及认证技术 7.2 会话安全管理需要授权和鉴权两个步骤 …

单例模式(史上最全)

文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新 史上最全 面试必备 2000页 面试必备 大厂必备 涨薪必备 免费赠送 经典…

0121 动态规划 Day10

剑指 Offer 46. 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。…

Python——翻转字符串

题目介绍 以空格为分割,将字符串中的每个单词的字母位置不变,单词顺序从后往前翻转 例如:I am a student. 变成:student. a am I Python中的标准库是为了提高程序员开发效率,减少学习成本,而设计的一系列方…

spring——Spring Bean定义

在 XML 配置的<beans> 元素中可以包含多个属性或子元素&#xff0c;常用的属性或子元素如下表所示。 属性名称描述idBean 的唯一标识符&#xff0c;Spring IoC 容器对 Bean 的配置和管理都通过该属性完成。id 的值必须以字母开始&#xff0c;可以使用字母、数字、下划线等…