电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>WaterPi:室内植物远程浇水和监控系统

WaterPi:室内植物远程浇水和监控系统

2022-11-22 | zip | 0.84 MB | 次下载 | 免费

资料介绍

描述

介绍

该系统非常适合那些热爱并想要照看家中植物但又忙于日常工作的人们。种植植物需要时间和努力才能成功,因为每天都有一些常规的事情要做,比如给它们浇水。人们有时会忘记照顾他们的植物。此外,有些人经常出差,在家呆的时间更少。在这种情况下,他们通常会寻求帮助来照顾他们的室内植物,否则他们就会放弃拥有它们。WaterPi 可以帮助那些人为植物做一些常规的事情。此外,由于可以远程控制,植物所有者可以在需要时轻松干预浇水过程。

该系统监控该地点的温度和湿度,以及地面的土壤湿度,远程浇灌植物,然后通过 AWS IoT 将所有数据保存到 DynamoDB。收集的数据通过不同的图表和数字进行可视化,以更好地了解植物生长的条件。

Raspberry Pi 运行一个 nodejs 应用程序来控制所有传感器和水泵。为此,我更喜欢使用Johnny-Five库。为了与 AWS 通信,我使用了适用于 javascript 的 AWS IoT 开发工具包。

第 1 步:设置 DynamoDB

DynamoDB 用于保存传感器收集的数据。转到DynamoDB 页面并创建一个具有以下属性的新表:

  • 表名:waterpi_sensor_data
  • 分区键:key
  • 单击添加排序键并添加时间戳

重要的是键和时间戳类型必须是字符串。

poYBAGN6WeKABLzmAAJZfRM73DI380.png
 

第 2 步:设置 AWS IoT

转到 AWS IoT 控制台页面并执行以下操作:

创建一个名为raspi-water-pump的东西

poYBAGN6WeWAXr19AAIX3L0ImbY559.png
在 aws iot 上创建事物
 

创建新策略。策略名称pump-policy、Action iot:*、resource * ,选择Allow,然后单击 Add statement 和 Create。

poYBAGN6WemAFpizAAIWaoaihSQ280.png
制定新政策
 

使用 1-Click certificate create 创建证书然后下载公钥、私钥和证书。

pYYBAGN6WeyAZSOkAAIFzWP8fZM183.png
 

然后您应该选择您创建的证书并执行以下操作:

  • 单击 操作 >激活按钮证书
  • 单击操作 > 附加策略,键入您创建的策略名称,然后单击附加
  • 单击Actions > Attach a thing ,键入 raspi-water-pump,然后单击Attach

使用以下内容创建规则:

  • 名称 saveToDynamoDB
  • 属性 *
  • 主题过滤 传感器/数据
  • 选择 将消息插入数据库表的操作
  • 表名 waterpi_sensor_data
  • 哈希键值 ${topic()}
  • 范围键值 ${timestamp()}
  • 角色名称 > 单击 创建新角色 ,然后从打开页面单击 允许 按钮,然后从角色名称下拉列表中选择它
poYBAGN6WfCAH3k_AAJwoAVbXas535.png
 

 

第 3 步:准备 Arduino

水位和土壤湿度传感器输出为模拟输出。因此,与其将它们直接连接到 Raspberry Pi,我更喜欢使用 Arduino 来获取这些模拟值,然后通过 Arduino 作为数字值发送到 Pi。Arduino 代码由 pi 更新,所以我们在这一步中唯一要做的就是将 Arduino 连接到我们的计算机并将标准固件上传到它。 

如果您没有 Arduino IDE,请按照 此处的步骤 进行安装。

  • 打开 Arduino IDE
  • 打开文件 > 示例 > Firmata > StandardFirmata示例
  • 将草图上传到 Arduino
pYYBAGN6WfOAfdyQAARvsRjVW-g835.png
上传标准固件
 

 

 

 

将土壤水分连接到 Arduino 架构应如下所示;

  • VCC(电源)-> PIN 7
  • GND(接地)-> GND
  • AO(模拟输出)-> A1

将水位传感器连接到 Arduino 架构应如下所示;

  • (+) -> PIN 4
  • (-) -> 接地
  • S -> A0
使用 Arduino UNO 连接土壤湿度和水位传感器
 
使用 Arduino UNO 连接土壤湿度和水位传感器
 
 

之后,您应该 通过 USB 电缆将您的 arduino 与树莓派连接起来​​。另外不要忘记将土壤湿度传感器放入花盆,将水位传感器放入水箱。

第 4 步:准备树莓派

线液晶屏,dht11,水泵通过继电器与树莓派。

使用 Raspberry Pi 接线系统部件
 
使用 Raspberry Pi 接线系统部件
 
 

将 DHT11 连接到 Pi

  • S -> GPIO4(引脚 7)
  • (+) -> 3V3(引脚 1)
  • (-) -> GND(引脚 25)

接线液晶屏

  • VCC -> 5V(引脚 2)
  • 接地 -> 接地(引脚 6)
  • SDA -> GPIO2(引脚 3)
  • SCL -> GPIO3(引脚 5)

水泵接线继电器

  • S -> GPIO18(引脚 12)
  • (+) -> 5V(引脚 4)
  • (-) -> GND(引脚 20)

 

带继电器和电池组的水泵接线

  • 水泵有两条电缆。一个应连接到继电器,另一个应连接电池组电缆。
  • 其他电池组电缆应连接到继电器。查看上图以了解如何连接它们。

第 5 步:在 Pi 上运行 Nodejs 应用程序

在这一部分中,我们将在 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

如果一切正确,您应该能够看到打印在液晶屏上的传感器值。

poYBAGN6WfyAQ_oNABPTiWHfZPk109.jpg
液晶屏上的传感器值
 

您还应该看到 DynamoDB 表中的值。应用程序每 20 秒向物联网平台发送传感器数据

pYYBAGN6Wf-AKY8CAAO01wusIA0894.png
动态表
 

第 6 步:运行 Web 应用程序

基本的 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 的收集到的传感器数据。

poYBAGN6WgSAakzZAAF9IIN-4pM673.png
水皮网页界面
 

当您单击开始时,泵将开始给植物浇水。

这是我在开发项目时拍摄的一些照片

 
 
 
poYBAGN6WguAXHpSABQOM0GP2R4101.jpg
 
1 / 5
 

恭喜!


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费