该系统非常适合那些热爱并想要照看家中植物但又忙于日常工作的人们。种植植物需要时间和努力才能成功,因为每天都有一些常规的事情要做,比如给它们浇水。人们有时会忘记照顾他们的植物。此外,有些人经常出差,在家呆的时间更少。在这种情况下,他们通常会寻求帮助来照顾他们的室内植物,否则他们就会放弃拥有它们。WaterPi 可以帮助那些人为植物做一些常规的事情。此外,由于可以远程控制,植物所有者可以在需要时轻松干预浇水过程。
该系统监控该地点的温度和湿度,以及地面的土壤湿度,远程浇灌植物,然后通过 AWS IoT 将所有数据保存到 DynamoDB。收集的数据通过不同的图表和数字进行可视化,以更好地了解植物生长的条件。
Raspberry Pi 运行一个 nodejs 应用程序来控制所有传感器和水泵。为此,我更喜欢使用Johnny-Five库。为了与 AWS 通信,我使用了适用于 javascript 的 AWS IoT 开发工具包。
DynamoDB 用于保存传感器收集的数据。转到DynamoDB 页面并创建一个具有以下属性的新表:
重要的是键和时间戳类型必须是字符串。
转到 AWS IoT 控制台页面并执行以下操作:
创建一个名为raspi-water-pump的东西
创建新策略。策略名称pump-policy、Action iot:*、resource * ,选择Allow,然后单击 Add statement 和 Create。
使用 1-Click certificate create 创建证书。然后下载公钥、私钥和证书。
然后您应该选择您创建的证书并执行以下操作:
使用以下内容创建规则:
水位和土壤湿度传感器输出为模拟输出。因此,与其将它们直接连接到 Raspberry Pi,我更喜欢使用 Arduino 来获取这些模拟值,然后通过 Arduino 作为数字值发送到 Pi。Arduino 代码由 pi 更新,所以我们在这一步中唯一要做的就是将 Arduino 连接到我们的计算机并将标准固件上传到它。
如果您没有 Arduino IDE,请按照 此处的步骤 进行安装。
将土壤水分连接到 Arduino 架构应如下所示;
将水位传感器连接到 Arduino 架构应如下所示;
之后,您应该 通过 USB 电缆将您的 arduino 与树莓派连接起来。另外不要忘记将土壤湿度传感器放入花盆,将水位传感器放入水箱。
线液晶屏,dht11,水泵通过继电器与树莓派。
将 DHT11 连接到 Pi
接线液晶屏
水泵接线继电器
带继电器和电池组的水泵接线
在这一部分中,我们将在 pi 上运行 nodejs 应用程序来收集传感器数据并控制水泵。树莓派应该连接到互联网。你可以通过以太网或wifi来做到这一点。
在继续之前,必须在 pi 上安装节点。如果您之前没有安装 nodejs,请按照此处的教程进行安装。
连接您的树莓派并运行以下命令:
git clone git@github.com:demirhanaydin/waterpi-node.git
cd waterpi-node
npm install
您应该将您从 aws iot 页面下载的公钥、私钥和证书文件放在certs文件夹下。此外,您应该从根证书下载根 CA 证书文件 。将该文件另存为 rootCA.pem 并将其放在certs文件夹下。
然后使用您喜欢的文本编辑器打开device.js文件,并 使用您的文件路径更新这些行。您应该 通过单击您的事物从 AWS IoT 平台获取您的IOT_DEVICE_URL 。它应该像 https://XXXXXXXXX.iot.us-east-1.amazonaws.com
然后运行
sudo node index.js
如果一切正确,您应该能够看到打印在液晶屏上的传感器值。
您还应该看到 DynamoDB 表中的值。应用程序每 20 秒向物联网平台发送传感器数据
基本的 sinatra 应用程序使用highcharts可视化 dynamodb 表上的数据。此外,它可以远程控制水泵。它的作用是每当用户单击开始/停止按钮时,它都会将事件发布到 AWS IoT 平台。Raspberry Pi 接受此事件并处理它是否启动或停止泵。
应该在您的计算机上安装 Ruby 以继续本教程。如果不是,请查看此页面以安装它。
打开终端并运行以下命令
git clone git@github.com:demirhanaydin/waterpi-web.git
cd waterpi-web
bundle install
您应该将您的公钥、私钥、证书和 rootCA 文件放在 certs 文件夹下。然后打开boot.rb并 使用正确的值 更新这些行。您应该从 AWS 管理控制台上的安全凭证页面获取您的 aws 访问密钥和秘密。
如果你完成了,那么你应该像这样运行项目
ruby app.rb
打开浏览器并输入您应该能够在图表上看到来自 dynamodb 的收集到的传感器数据。
当您单击开始时,泵将开始给植物浇水。
这是我在开发项目时拍摄的一些照片
恭喜!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !