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

希望你喜欢这个项目。



推荐阅读
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • PostgreSQL 最新动态 —— 2022年4月6日
    了解 PostgreSQL 社区的最新进展和技术分享 ... [详细]
  • Spring Cloud学习指南:深入理解微服务架构
    本文介绍了微服务架构的基本概念及其在Spring Cloud中的实现。讨论了微服务架构的主要优势,如简化开发和维护、快速启动、灵活的技术栈选择以及按需扩展的能力。同时,也探讨了微服务架构面临的挑战,包括较高的运维要求、分布式系统的复杂性、接口调整的成本等问题。最后,文章提出了实施微服务时应遵循的设计原则。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • Nature Microbiology: 人类肠道古菌基因组目录
    本研究揭示了人类肠道微生物群落中古细菌的多样性,分析了来自24个国家、农村和城市人群的1,167个非冗余古细菌基因组。研究鉴定了多个新分类群,并探讨了古菌对宿主的适应性及其与社会人口特征的关系。 ... [详细]
  • 我有一个SpringRestController,它处理API调用的版本1。继承在SpringRestControllerpackagerest.v1;RestCon ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • Linux环境下进程间通信:深入解析信号机制
    本文详细探讨了Linux系统中信号的生命周期,从信号生成到处理函数执行完毕的全过程,并介绍了信号编程中的注意事项和常见应用实例。通过分析信号在进程中的注册、注销及处理过程,帮助读者理解如何高效利用信号进行进程间通信。 ... [详细]
  • Spring Cloud Config 使用 Vault 作为配置存储
    本文探讨了如何在Spring Cloud Config中集成HashiCorp Vault作为配置存储解决方案,基于Spring Cloud Hoxton.RELEASE及Spring Boot 2.2.1.RELEASE版本。文章还提供了详细的配置示例和实践建议。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 利用YAML配置Resilience4J的Circuit Breaker
    本文探讨了Resilience4j作为现代Java应用程序中不可或缺的容错工具,特别介绍了如何通过YAML文件配置Circuit Breaker以提高服务的弹性和稳定性。 ... [详细]
  • 掌握Spring MVC中自定义类型转换与格式化的技巧
    近期,在开发一款小程序的过程中遇到了几个Spring MVC接口需要传递时间参数的问题。本文将详细介绍如何利用Java 8 Time API在Spring MVC中实现时间参数的自定义类型转换和格式化。 ... [详细]
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社区 版权所有