热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python物联网驱动_树莓派驱动的物联网滴灌系统

MAKER:Technovation/译:趣无尽Cherry(转载请注明出处)本次介绍的是一个由树莓派驱动的物联网滴灌系统,比往期《用树莓

MAKER:Technovation/译:趣无尽 Cherry(转载请注明出处)

本次介绍的是一个由树莓派驱动的物联网滴灌系统,比往期《用树莓派制作一款自动浇灌系统》的功能更加完备。

利用物联网来监测和维护植物的正常生长,使用现有的工具,将传感器与植物相结合,监测植物的实时状态。项目还构建了一个App,可以根据反馈的数据来进行相应的操作。

项目可扩展,成本低且易于上手。你也可以试试哦!

材料清单

树莓派×1

Grove Pi 扩展板×1

传感器外壳×1

12V 电磁阀×1

温湿度传感器(dht11)×1

土壤湿度传感器×1

光线传感器×1

继电器模块×1

12V 电源×1

1 英寸松木板(300×10cm)×1

1/4 英寸胶合板(120×80cm)×1

防水布(180x275cm)×1

PVC管(长30cm,直径2cm)×1

水管(250cm)×1

弯管接头×2

螺丝x30

3D 打印

所有 3D 打印的文件,请在文件项目库中下载。

https://make.quwj.com/project/130

如需更改,请根据自己的实际情况进行修改。使用 Creality Ender 打印零件大约需要八个小时。

水管接头 30%填充x1

喷嘴适配器 30%填充x3

水管塞子 30%填充x3

钩子 30%填充x2

传感器底座 20%填充x1

阀门适配器 20%填充x1

电线盖子 20%填充x1

系统工作原理

IOT 系统运行过程如下:

1、树莓派采集数据信息,例如光照、温湿度和土壤中的水分含量等。

2、将各种传感器的数据传送到云数据库中。

3、使用智能手机应用程序在任何地点访问。用户可以将指令(例如水泵的状态)发送至滴灌系统并执行相关的命令。

项目的主要特点:

1、各种传感器的数据实时反馈。

2、建立植物生长状况数据库。

3、可以全球监测和运行。

4、滴灌系统。

5、App 控水系统。

6、自动浇水时间设定。

我们使用 Google 的 Firebase 作为物联网系统的中介,创建免费的云数据库。然后使用 MIT 的 App Inventor 创建了一个与 Firebase 数据库和树莓派兼容的智能手机应用程序。也可以使用免费的 Python 库与数据库进行传送。

制作木边框

制作一个木制边框将植物放入其中,其木制结构部分的尺寸将根据种植的植物来决定。本项目中所需的木板尺寸如图所示。

1、制作边框

使用松木来制作边框,盒子内部尺寸为 70cm×50cm,高度为 10cm。

使用圆锯切割出四根长条。标记好需要钻孔的地方。在木框边缘钻八个埋头孔并确保边框是正方形,最后将其固定。

2、制作底部面板

使用 5cm 厚的胶合板制作底部面板,切割好后安装到边框上。确保孔是埋头孔,以便螺钉与底座齐平。

3、钻管道的孔

制作的木制盒子可以种植三排植物。对于滴灌系统,需要在盒子的一侧安装输水的管道。

首先测量连接器的直径,在短的一边等距离钻三个孔。孔的大小与管道的大小相匹配。最后打磨边缘,以便连接。

4、连接水管

连接接头,需要将两根 12cm 长的 PVC 管切开。保持干燥并检查是否平整。

将 3D 打印的接头与两端的 PVC 弯头接头连接,直到它们方向齐平。将面板重新安装到框架上,并使用 3D 打印适配器从内部盖住连接器。所有连接处都会摩擦,需要防水。如果达不到,可以用热胶或特氟隆胶带密封接头。

5、电磁阀

为了控制滴灌系统,我们使用了电磁阀。阀门在发送电子信号时设置为开门,它可自动控制。为了安装它,我们使用中间适配器将一端连接到水源,另一端连接到植物的输水管。需要注意的是要正确的安装连接阀门的方向,通常标记 “IN” 为输入(水龙头)和 “OUT” 为输出(植物)。

连接设备各部件

以下是各种模块和传感器的连接方式,端口位于 Grove Pi 和 shield 上,如图所示。

温湿度传感器==>端口 D4

继电器模块==>端口 D3

土壤湿度传感器==>端口 A1

光传感器==>端口 A0

安装各部件

使用胶合板制作出一个隔离盒便于安装所有的电子设备。如图所示,根据电子设备的布局切割木材并组装好。待胶水干燥后,将电源和树莓派安装到隔离盒中,通过插槽将传感器的线穿入。插槽务必严丝合缝的密封好。

传感器安装座上有孔,便于连接安装传感器的挂钉。将光度和湿度传感器安装在顶部,将土壤湿度传感器安装在可调节插槽上。

为了使隔离盒易于拆卸,使用 3D 打印的挂钩和传感器支架,使盒子可以挂在主结构上。如此,电子产品和 IOT 管理系统可以很容易移植到其他项目上。

创建数据库

注意,这里需要用到墙外的 Google 服务,墙内的话建议寻找替代服务或自建数据库。

1、为系统创建数据库,请点击 Google firebase https://firebase.google.com/访问 Firebase 网站(使用 Google 帐户登录)。

2、单击“开始”按钮,将转到 Firebase 控制台。单击“添加项目”按钮创建一个新项目,按照要求填写。单击“创建项目”按钮完成。

3、请从左侧菜单中选择“数据库”,因为只需要 Firebase 的数据库工具。单击“创建数据库”按钮,选择“测试模式”选项并单击“启用”。

4、通过单击顶部的下拉菜单,将数据库设置为“实时数据库”而不是“cloud firestore”。选择“规则”选项卡并将两个“错误”更改为“正确”,单击“数据”选项卡并复制数据库 URL,稍后将需要此选项。

5、单击项目概述旁的齿轮图标,单击“项目设置”,然后选择“服务帐户”选项卡,最后单击“数据库密钥”并记下安全代码的数据库。完成此步骤后,你就成功创建了可从智能手机和树莓派访问的云数据库。

配置 APP

物联网系统的下一步就是智能手机应用程序。使用 MIT App Inventorhttp://appinventor.mit.edu/作为该项目的定制应用程序。

1、请点击打开 MIT App Inventor 链接并访问网页。点击屏幕上方的“创建应用”,然后使用 Google 帐户登录。

2、请在项目库中下载 .aia 文件。https://make.quwj.com/project/130

打开“项目”选项卡,然后单击“从我的计算机导入项目(.aia)”,然后选择下载好的文件并单击“确定”。

3、在组件窗口中,向下滚动至“FirebaseDB1”,单击它并将“FirebaseToken”,“FirebaseURL”修改为在上一步中记下的值。

完成这些步骤后,你就可以下载并安装该应用程序了。你可以通过单击“构建”选项卡并单击“应用程序(.apk 提供 QR 代码)”直接将应用程序下载到手机上,然后使用智能手机扫描 QR 代码或单击“应用程序”(将 .apk 保存到我的计算机),你可以将 apk 文件下载到计算机上,然后再转移到你的智能手机并安装。

树莓派编程

首先为树莓派下载最新版本的 Raspbian 并安装好。如果你也使用 Grove Pi+shield,请使用最新版本的 Raspbian for Robotshttps://www.dexterindustries.com/raspberry-pi-robot-software/烧录树莓派。下面需要安装一个额外的 Python 库。打开终端并粘贴以下命令:

sudo pip install requests==1.1.0

sudo pip install python-firebase

完成后,请在文件库中下载 .py 文件并将其保存到树莓派的目录中。https://make.quwj.com/project/130

打开文件并向下滚动至第 32 行。在此行中,将“在此处粘贴你的 URL”部分替换为之前记下的数据库 URL,确保将 URL 粘贴到’之间。完成后,打开终端并使用“python”命令运行 python 脚本。

运行 APP

应用程序界面非常的简单明了。前四个图标显示光度,温度,湿度和土壤湿度的实时值。可以通过单击“获取值”按钮来更新这些数据。该按钮将指导树莓派更新云数据库,同时点击“刷新”按钮,刷新屏幕就会刷新数据。

屏幕下方的部分用于滴灌系统。“开”按钮打开水泵,“关”按钮关闭水泵。 “自动”按钮,可以利用各种传感器显示的数值来计算每天所需的确切水量并在每天早上八点和下午四点时给植物浇两次水。

安装防水布

因为土壤中的水分会不断的腐蚀木框,将制作一块防水油布垫放在木框的内部表面上。确保可以将其从两侧拉出,然后用胶水将其固定到位。完成后就可以开始填充土壤。使土壤与木框表面平铺,安装三排滴灌的水管。

在靠近水管的拐角处安装电箱并将土壤湿度传感器埋入土壤中。这样更便于接线,因为电磁阀可以靠近电子设备而且易于连接。

安装滴灌系统

将输液管作为滴灌的水管,根据木框的长度切割出三条滴灌的水管。根据植物之间的间距,钻若干个一毫米的滴水孔。测试水量是否充足,如果不够,则需要扩大孔的尺寸。使用三个塞子将水管两端塞住,确保水只从滴水孔流出。

最后,将管子轻轻地嵌入土壤中,就可以开始灌溉了。

完成

如图所示,IOT 智能种植实验已经运行一个月了。植物都非常的健康。

通过实验,自动模式每天可节省约 12% 的水。当植物通过滴灌浇灌时,它们的根笔直生长,而且给容器中的植物留出更多的生长空间。唯一缺点是如果要种植更大的植物,则需要更深的容器。

希望你喜欢这个项目。



推荐阅读
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文将介绍由密歇根大学Charles Severance教授主讲的顶级Python入门系列课程,该课程广受好评,被誉为Python学习的最佳选择。通过生动有趣的教学方式,帮助初学者轻松掌握编程基础。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 本文探讨了如何在编程中正确处理包含空数组的 JSON 对象,提供了详细的代码示例和解决方案。 ... [详细]
author-avatar
麻廿_965
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有