资料介绍
描述
介绍
该系统非常适合那些热爱并想要照看家中植物但又忙于日常工作的人们。种植植物需要时间和努力才能成功,因为每天都有一些常规的事情要做,比如给它们浇水。人们有时会忘记照顾他们的植物。此外,有些人经常出差,在家呆的时间更少。在这种情况下,他们通常会寻求帮助来照顾他们的室内植物,否则他们就会放弃拥有它们。WaterPi 可以帮助那些人为植物做一些常规的事情。此外,由于可以远程控制,植物所有者可以在需要时轻松干预浇水过程。
该系统监控该地点的温度和湿度,以及地面的土壤湿度,远程浇灌植物,然后通过 AWS IoT 将所有数据保存到 DynamoDB。收集的数据通过不同的图表和数字进行可视化,以更好地了解植物生长的条件。
Raspberry Pi 运行一个 nodejs 应用程序来控制所有传感器和水泵。为此,我更喜欢使用Johnny-Five库。为了与 AWS 通信,我使用了适用于 javascript 的 AWS IoT 开发工具包。
第 1 步:设置 DynamoDB
DynamoDB 用于保存传感器收集的数据。转到DynamoDB 页面并创建一个具有以下属性的新表:
- 表名:waterpi_sensor_data
- 分区键:key
- 单击添加排序键并添加时间戳
重要的是键和时间戳类型必须是字符串。
第 2 步:设置 AWS IoT
转到 AWS IoT 控制台页面并执行以下操作:
创建一个名为raspi-water-pump的东西
创建新策略。策略名称pump-policy、Action iot:*、resource * ,选择Allow,然后单击 Add statement 和 Create。
使用 1-Click certificate create 创建证书。然后下载公钥、私钥和证书。
然后您应该选择您创建的证书并执行以下操作:
- 单击 操作 >激活按钮证书
- 单击操作 > 附加策略,键入您创建的策略名称,然后单击附加
- 单击Actions > Attach a thing ,键入 raspi-water-pump,然后单击Attach
使用以下内容创建规则:
- 名称 saveToDynamoDB
- 属性 *
- 主题过滤 传感器/数据
- 选择 将消息插入数据库表的操作
- 表名 waterpi_sensor_data
- 哈希键值 ${topic()}
- 范围键值 ${timestamp()}
- 角色名称 > 单击 创建新角色 ,然后从打开页面单击 允许 按钮,然后从角色名称下拉列表中选择它
第 3 步:准备 Arduino
水位和土壤湿度传感器输出为模拟输出。因此,与其将它们直接连接到 Raspberry Pi,我更喜欢使用 Arduino 来获取这些模拟值,然后通过 Arduino 作为数字值发送到 Pi。Arduino 代码由 pi 更新,所以我们在这一步中唯一要做的就是将 Arduino 连接到我们的计算机并将标准固件上传到它。
如果您没有 Arduino IDE,请按照 此处的步骤 进行安装。
- 打开 Arduino IDE
- 打开文件 > 示例 > Firmata > StandardFirmata示例
- 将草图上传到 Arduino
将土壤水分连接到 Arduino 架构应如下所示;
- VCC(电源)-> PIN 7
- GND(接地)-> GND
- AO(模拟输出)-> A1
将水位传感器连接到 Arduino 架构应如下所示;
- (+) -> PIN 4
- (-) -> 接地
- S -> A0
之后,您应该 通过 USB 电缆将您的 arduino 与树莓派连接起来。另外不要忘记将土壤湿度传感器放入花盆,将水位传感器放入水箱。
第 4 步:准备树莓派
线液晶屏,dht11,水泵通过继电器与树莓派。
将 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
如果一切正确,您应该能够看到打印在液晶屏上的传感器值。
您还应该看到 DynamoDB 表中的值。应用程序每 20 秒向物联网平台发送传感器数据
第 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 的收集到的传感器数据。
当您单击开始时,泵将开始给植物浇水。
这是我在开发项目时拍摄的一些照片
恭喜!
- 使用Arduino构建植物浇水系统
- Arduino带TFT LCD的植物浇水系统
- 带arduino的植物浇水报警系统
- 使用土壤湿度传感器的植物浇水和监控系统
- CNM Ingenuity IoT植物浇水系统
- 智能植物浇水系统项目
- 自动植物浇水系统开源分享
- 智能植物浇水系统开源案例
- 双植物浇水系统开源分享
- 室内植物浇水系统开源分享
- 智能植物浇水系统开源
- 智能植物浇水系统开源分享
- 智能植物浇水系统开源项目
- Arduino自动植物浇水系统
- 使用树莓派2实现的植物浇水系统的资料合集 56次下载
- 如何利用树莓派Zero实现自动室内园丁的设计 1356次阅读
- 如何利用温度传感器实现植物监控系统的设计 1663次阅读
- 利用网际组态软件WebAccess实现回风空调系统远程监控系统的设计 3429次阅读
- 基于ARM+RTOS+LWIP+HTTP实现工业洗衣机远程监控系统的设计 3057次阅读
- 基于流媒体应用系统为基础的远程监控系统的设计 1139次阅读
- 几种远程监控通信方式的介绍_几种远程监控方式的比较 5907次阅读
- 基于远程监控系统对风力发电场远程管理的现实 1750次阅读
- 智能工业设备远程监控系统设计方案 9373次阅读
- 如何自制植物生长灯_自制植物生长灯步骤 4.3w次阅读
- 一种基于STM32的温室远程监测和控制系统的设计 1.2w次阅读
- 智能家居远程监控系统设计与实现 4177次阅读
- 利用PLC实现云远程监控系统——HDRS 3453次阅读
- 工程师DIY智能灌溉器解决植物浇水难题 2364次阅读
- 基于Qt的远程监控系统的设计方案 7623次阅读
- 基于Android智能家居远程监控系统设计 5428次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多