- 所需组件:
- Raspberry Pi中的电子邮件设置,用于发送警报邮件:
- Raspberry Pi中的烧瓶安装:
- 网页的HTML代码:
- 使用Raspberry Pi和重量传感器的智能容器
- 电路说明:
- 工作说明:
您可能已经听说过智能冰箱,该冰箱可以自动订购冰箱中电量低的食物,因此,我们从这里得到启发,我们正在使用称重传感器和HX711重量传感器构建Raspberry Pi智能容器。通过向您的电子邮件ID发送邮件,此智能容器可以告诉您有关其状态(例如已满或为空)的信息。我们还可以使用Web浏览器实时监控集装箱的重量,这使它成为一个IoT项目,您可以在任何地方使用Internet监控集装箱。此处,容器的重量将在网络浏览器上每5秒更新一次,此持续时间可以在HTML代码文件中轻松更改。我们已将重量阈值设置为300克,以发送有关“ 容器已满 ”,此限制也可以更改。在本教程末尾查看视频。
如果您不熟悉称重传感器和HX711模块,请检查我们以前的项目,即使用称重传感器和HX711模块的基于Raspberry Pi的重量传感自动门和Arduino重量测量。
所需组件:
在这里,我们使用的是 Raspberry Pi 3 Raspbian Jessie OS。前面已经讨论了所有基本的硬件和软件要求,您可以在Raspberry Pi简介和Raspberry PI LED闪烁中查找它,以开始使用,而我们还不需要:
- Raspberry Pi(任何型号都可以使用)
- 称重传感器
- HX711称重传感器放大器模块
- 16x2 LCD
- 电源或移动电源
- 连接线
- 面包板
- 螺母螺栓,框架和底座
此处,我们在螺母和螺栓的帮助下将木制底座与称重传感器连接在一起,以实现稳定性,如下所示。在此处了解有关称重传感器和HX711重量传感器模块的更多信息。
Raspberry Pi中的电子邮件设置,用于发送警报邮件:
要从Raspberry Pi发送包含容器状态(完整或空)的邮件,我们需要安装一个软件。在这里,我们使用 ssmtp ,这是使用命令行或使用Python Script发送邮件的简单而有效的解决方案 。我们需要安装两个使用SMTP发送邮件的库:
sudo apt-get安装ssmtp sudo apt-get安装mailutils
安装库之后,用户需要打开 ssmtp.conf 文件并如下图所示编辑此配置文件,然后保存该文件。要保存并退出文件,请按“ CTRL + x”,然后按“ y”,然后按“ enter”。
须藤nano /etc/ssmtp/ssmtp.conf
root =您的电子邮件地址mailhub = smtp.gmail.com:587主机名= raspberrypi AuthUser =您的电子邮件地址AuthPass =您的电子邮件密码FromLineOverride =是UseSTARTTLS = YES UseTLS = YES
我们还可以 通过发出以下命令来发送测试邮件来对其进行测试,如果一切正常,您将在上述电子邮件地址上收到该邮件:
回声“你好萨达姆”-邮件-s“正在测试…” [email protected]
以下是我们在测试过程中获得的警报电子邮件的快照。
Raspberry Pi中的烧瓶安装:
在这里,我们创建了一个Web服务器,它提供了一种使用Web浏览器中的Flask从Raspberry Pi向网络发送容器的重量值的方法 。Flask允许我们通过网页运行python脚本,并且我们可以从Raspberry Pi向网络浏览器发送和接收数据,反之亦然。Flask是Python的微框架。该工具基于Unicode,具有内置的开发服务器和调试器,集成的单元测试支持,对安全cookie的支持及其易于使用,这些使它对爱好者有用 。
使用给定命令将烧瓶支持包安装到Raspberry Pi中:
$ pip安装Flask
然后,只需在程序中导入Flask就可以使用Flask,就像我们为该项目导入了以下flask软件包一样:
从flask导入Flask,render_template,请求,jsonify
您可以在此处了解有关使用Flask进行编程的更多信息,还可以检查我们以前的项目中使用Flask将消息从网页发送到Raspberry Pi的情况。
网页的HTML代码:
我们还使用HTML语言创建了一个网页,用于在Web浏览器上显示重量和警告消息。我们使用了一个小jQuery脚本每5秒加载一次页面(通过调用/ show_weight),以便我们可以实时获取权重值。以下是包含jQuery的网页HTML代码:
用户需要在某些文本编辑器(记事本)中复制粘贴上述给定的HTML代码,并以.HTML扩展名(web.html)保存文件。然后根据您的python脚本位置将此HTML文件放入 / templates 文件夹。意味着您需要创建一个名为 模板 的文件夹 , 在该文件夹中为此Raspberry Pi Smart容器放置了Python代码文件 ,然后将web.html文件放入此 模板 文件夹中。此步骤很重要,否则我们的项目将无法正常工作。您可以通过双击直接打开web.html文件以获取HTML代码的输出,您将看到如下所示的网页。在演示视频中进一步检查整个过程 在最后。在完成所有编程之后,我们可以在Raspberry Pi中运行Python代码并 在Web浏览器中打开 IP_address_of_your_Pi:5010 (例如http://192.168.1.100:5010)
当容器的重量超过300克时,网页还将显示一条警告消息,如下所示:
您可以使用 ifconfig 命令检查Raspberry Pi的IP地址:
ifconfig
电路说明:
物联网智能容器的连接 非常简单,原理图如下。16x2 LCD引脚RS,EN,d4,d5,d6和d7分别与Raspberry Pi的GPIO引脚编号分别为18、23、24、25、8和7,HX711模块的DT和SCK引脚直接与Raspberry Pi的GPIO连接引脚27和17。与HX711模块的称重传感器连接已在前面进行了说明,并在下面的电路图中显示。
工作说明:
这个智能容器的工作很容易。在这个项目中,我们使用 Raspberry Pi 3 来控制整个过程。 称重传感器 感测容器的重量,并向HX711负载放大器模块提供模拟电压 。 HX711是24位ADC,可将称重传感器输出放大并转换为数字形式。然后将此放大后的值馈送到Raspberry Pi。现在,Raspberry Pi计算HX711的输出并将其转换为权重值。
然后,使用Raspberry Pi和Python代码将此重量值与预定义的阈值(300克)进行比较,如果容器的重量超过300gm,则Raspberry Pi发送一封电子邮件,指出 “智能容器警报…。容器已满”。 如果重量保持在300克以下,则Raspberry Pi将发送电子邮件,指出 “智能容器警报…。容器为空”。
重量也可以使用Web浏览器进行监视,您只需要使用端口5010(例如 http://192.168.1.100:5010) 打开Raspberry Pi IP地址(用您的地址替换IP地址)即可。在这里,我们使用Flask通过网络将数据从Raspberry Pi发送到网页。该页面将每5秒自动刷新一次,我们会获取更新的数据,为此,我们使用了jQuery,正如之前解释的那样。
可选的16x2 LCD也已用于显示重量和状态消息。
下面给出了完整的Python代码,其中我们编写了用于驱动LCD,从称重传感器读取重量值,在网页上显示数据等功能。您可以轻松地理解它们,或者如果您是初学者,请查看我们以前的Raspberry Pi教程。