用树莓派“揪出”家里的耗电怪兽!
在本应用中,我们将使用树莓派设置一个CE电流监测器,并通过网页界面显示电路的电流读数。
本项目使用的组件
硬件组件
树莓派2 Model B x 1
12通道20安培电流监测控制器 x 1
项目背景
介绍
在本文中,我们将通过树莓派监测家庭或商业场所中某些电路的能耗(电流)。树莓派将连接到来自 www.controleverything.com 的12通道电流监测板,并在网页上显示这些电流读数。这将使我们能够通过网络浏览器从网络上的任何设备实时查看特定电路的电流消耗。
我们将在这里构建的网页界面是一个简洁的界面。它只会以黑白形式显示每个电路的当前读数。您可以随意编辑网页界面,并按照您认为合适的方式美化它。甚至可以在界面上为每个电路贴上标签,如客厅灯、冰箱等。
事不宜迟,让我们开始吧!
步骤1.1 树莓派设置
首先,我们需要将树莓派设置好并准备就绪。对于本项目,我在树莓派上运行的是当前的最新版本Raspbian(2016-03-18 Jessie)。所有提供的说明都基于这一版本。如果您使用的是其他版本的Raspbian或其他Linux操作系统,请注意后续说明中的某些部分可能对您有所不同。树莓派提供了关于如何在您的树莓派上安装Raspbian的说明,请参见此处。
一旦您的树莓派启动并运行,我们将开始通过SSH连接到它。连接到您树莓派的SSH说明请参见此处。
默认用户名通常是pi,密码是raspberry。
SSH已连接到树莓派?很好,让我们继续。
步骤1.2 Apache安装/设置
我们要做的第一件事是安装Apache,这是一个将向用户提供网页界面的Web服务器。所以,请在SSH终端中输入以下命令:
sudo apt-getinstall apache2 -y
这就是在您的树莓派上安装Apache。有趣的是,安装完成后它就可以工作了!在您的计算机上打开一个网页浏览器,并输入树莓派的IP地址。您应该会看到默认网页。
接下来,我们需要修改Apache中的一些设置。
回到您的SSH终端,在树莓派上输入以下命令:
sudo nano /etc/apache2/apache2.conf
这将打开一个文件,我们需要向其中添加一些信息。向下滚动,直到看到一些目录标签。我们需要在那里添加一个额外的标签,内容如下:
Options+ExecCGI AddHandlercgi-script .py
这是我添加此标签的屏幕截图:
按ctrl+x退出。当提示保存时,选择是。当提示输入文件名时,保持原样。
回到终端,输入:
sudoa2enmod cgi
步骤1.3 I2C工具设置
现在我们需要安装一个名为I2C工具的软件包和另一个名为Python-SMBus的软件包。这两个软件包一起将允许我们的Python脚本与ControlEverything.com的电流监测板进行通信。
在SSH终端中输入:
sudo apt-getupdate
这将更新apt-get软件包安装程序,以便我们可以确保获取最新软件包。
接下来,在SSH终端中输入:
sudoapt-get install12c-tools
安装完该软件包后,输入:
sudo apt-getinstall python-smbus
安装完该软件包后,最好重启树莓派,然后在SSH终端中输入:
sudoreboot
等待几秒钟让树莓派重启并重新连接到网络,然后通过SSH重新连接到树莓派。
让我们测试i2c-tools以确保一切正常工作。确保使用I2C电缆将电流监测板连接到树莓派,并使用12VDC电源供电。然后在SSH终端中输入:
i2cdetect-y1
希望树莓派能够识别我们的电流监测板,该板将在地址0x2a处注册。这是您在终端中看到的内容:
如果您在那里看到控制器列出,那么我们可以继续下一步。
步骤1.4 将网页界面/Python文件上传到树莓派
我们将使用sftp将文件上传到树莓派。您需要一个FTP客户端来完成此操作。如果您还没有FTP客户端,我强烈推荐FileZilla。
他们提供了关于FTP的文档,但使用起来相当简单。下载并安装完成后,我们就可以继续了。
为了将文件上传到树莓派,我们需要修改Apache文件目录的一些权限,所以回到SSH终端并输入:
sudochown-R pi:www-data /var/www/html
现在打开FileZilla并连接到树莓派。输入树莓派的IP地址作为主机,pi作为用户名,raspberry作为密码,22作为端口。连接上了?很好!让我们上传一些文件!
文件可以从我们的GitHub仓库获取:
https://github.com/ControlEverythingCom/Pi-Current-Monitor-Web-1
在FileZilla中导航到您下载/克隆这些文件的本地目录。在FileZilla的树莓派远程侧面板中,导航到/var/www/html目录并上传文件。
回到终端,通过输入以下命令移动到/var/www/html目录:
cd/var/www/html
现在输入:
pythonCurrentMonitor.py
Python应用程序应该将当前读数打印到控制台,如下所示:
步骤1.5 最终配置设置
我们现在需要更改html目录中所有文件的所有者。在SSH终端中输入:
sudochown-R pi:www-data /var/www/html
现在我们需要更正CurrentMonitor.py的权限,输入:
sudochmodg+x /var/www/html/CurrentMonitor.py
现在,由于Apache将运行Python脚本以与树莓派上的i2c端口接口,我们必须确保Apache(www-data)被允许这样做。因此,我们将把www-data添加到i2c组中,如下所示:
sudo usermod -a-G i2c www-data
最后……(请鼓掌):
sudoreboot
关闭那个SSH终端
步骤2 接线并安装电路板
我们必须注意,将会在这里处理120 VAC电线,而电击可不是闹着玩的。如果您对此感到不舒服,请务必聘请注册电工来完成这一步。他们知道自己在做什么。
在继续之前,您必须使用主开关关闭电路断路器面板的所有电源。如果可能,我们强烈建议也关闭向面板供电的电线杆/配电箱上的断路器。这将确保您不会受到电击。在继续之前,请务必测试电路断路器面板中的所有点是否有电压。
我还建议关闭面板中的所有断路器,以确保安全。
电流监测板监测交流电路的火线。这根线通常是三芯电缆中的黑色线。白色通常是中性线,而裸线或绿线通常是地线。因此,将您想要监测的每个电路的黑色线穿过板载电流监测传感器,如下所示:
在所有电线都穿过板载传感器并重新连接到面板中的电路断路器后,将USB电源连接到树莓派,并将调节后的12VDC电源连接到电流监测板。如果由于所有电路都关闭而导致这些电源关闭,请不要担心。稍后树莓派和电流监测板通电时不会造成任何损害。
现在是时候给所有设备通电了。小心!!!!再对所有东西进行一次彻底检查,并确保每个人都离开该区域,且所有东西都连接正确。另外,如果您在安装过程中拆下了电路面板的盖子,请确保将其重新装上。在电线杆/配电箱上重新打开电源。然后回到电路面板并打开那里的主电源开关。现在逐个打开面板中的每个电路断路器。如果所有断路器都能正常打开而不跳闸,并且房屋/商业场所中的所有设备都已通电,那么恭喜您工作完成得很好!
步骤3 让我们开始玩吧!
确保您的树莓派已重新连接到网络。请注意,如果路由器重启,其IP地址可能已更改,因此请务必检查。一旦您知道了树莓派的IP地址,请确保您的计算机、手机或平板电脑与树莓派在同一网络上,然后在网页浏览器中输入树莓派的IP地址。您现在应该能够看到您所接线的每个电路的实时电流水平。
现在跑来跑去,像个疯子一样打开和关闭东西。我知道我通过在客厅里不规则地开关灯几分钟,笑得前仰后合,像个彻头彻尾的傻瓜一样惹恼了我的妻子。如果这发生在您身上,请不要难过。
结束语
虽然这很有趣,但几天后您可能会发现自己对此感到有些无聊。在那个时候,我强烈建议您自定义树莓派的网页界面,以从中获得更多乐趣。您可以在那里做一些非常酷的事情。
您还可以做的事情是在您的网络上为树莓派注册一个静态IP地址,以便它不会更改(DHCP)。我通常会在路由器上保留IP地址,因为我觉得这是最安全的事情,而且如果您的路由器支持,这很容易。
此外,您还可以在路由器防火墙中打开一个端口以允许外部访问,这样您就可以在离开家时监控所有内容。您真的可以在这里全力以赴并设置DNS。如果您决定这样做,请务必考虑安全性并正确设置。
另一件非常酷的事情是监测每个电路的电流并计算电路的千瓦时使用量。这绝对是可行的,但稍微复杂一些。我们稍后可能会就此发布另一篇文章。这将使您能够看到房屋中每个电路为您花费了多少钱!
这里的可能性确实非常丰富,所以请发挥创意并告诉我们您想出了什么!
如何接线
接线相当简单。只需将交流电路的火线穿过板载电流传感器。使用随附的电缆将电流监测板连接到树莓派。然后将您的以太网和电源连接到树莓派,并将调节后的12VDC电源连接到电流监测板。
代码
树莓派网页界面的HTML、JS和Python文件
https://github.com/ControlEverythingCom/Pi-Current-Monitor-Web-1
https://codeload.github.com/ControlEverythingCom/Pi-Current-Monitor-Web-1/zip/refs/heads/master
原文地址:
https://www.hackster.io/ControlEverything/energy-monitoring-through-a-raspberry-pi-190a2a