热门标签 | 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% 的水。当植物通过滴灌浇灌时,它们的根笔直生长,而且给容器中的植物留出更多的生长空间。唯一缺点是如果要种植更大的植物,则需要更深的容器。

希望你喜欢这个项目。



推荐阅读
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 本文介绍了网页播放视频的三种实现方式,分别是使用html5的video标签、使用flash来播放以及使用object标签。其中,推荐使用html5的video标签来简单播放视频,但有些老的浏览器不支持html5。另外,还可以使用flash来播放视频,需要使用object标签。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
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社区 版权所有