基于嵌入式技术的智能灌溉系统设计与实现

2023-05-16

基于嵌入式技术的智能灌溉系统设计与实现

基于嵌入式技术的智能灌溉系统设计与实现
基于cortex-A9处理器实验平台,实现对种植农作物、蔬菜、果树等的土壤温湿度及光照进行远程或本地监测,同时对泵的开关进行控制。

1 目的和要求

1.1 背景
当今时代,随着科技的发展与经济水平的不断提高,人们的生活水平得到了不断改善,人口数量也呈现出不断增长的趋势。人口数量的不断增长,势必会给社会发展带来持续增大的压力,产生一系列尖锐的社会问题。其中,解诀粮食紧张的问题迫在眉睫。传统的农业灌溉系统不仅需要消耗大量的人力、物力,而且效率也不高。因此,对原有的灌溉系统进行有效改进,已成为农业灌溉系统发展的趋势。通常讲智能灌溉系统由传感器、控制器水艺网和后台监控系统、电磁阀以及供水系统等共同组成。首先是传感器将土壤的温、湿度等信息监测并传送到控制器进入控制终端,终端会对来自传感器的信号进行处理(如转换、滤波、放大)后进行转换。当检测得到的湿度值小于事先设定数值时,电磁阀就会开启为喷头输水,喷头就会以不同的角度旋转喷水。同理,检测湿度到达设定值时,控制终端会控制电磁阀关闭灌溉结束。在实际安装过程中,会在电磁阀-.侧安装压力表,这是为了避免远离水源的喷头因水压不足而发生喷头射程减少的现象。整个系统互相协调,即可实现对灌区灌溉的智能控制,这能有效的提高自动化生产效率,降低人力成本和管理成本显著提高效益。更重要的是,他还是一种非常有效的节约水资源的,提高水资源利用效率的方式。
我们设计了一种基于嵌入式的智能灌溉系统,该系统可利用温度传感器、湿度传感器并把采集到的信息传送到嵌入式处理器中。嵌入式处理器利用模糊控制算法对各种信息进行处理,以处理后的结果控制执行机构执行相应的动作,从而实现对整个系统的控制。同时,以智能移动设备为远程控制设备可随时随地观测采集到的数据,并可对系统实现远程控制。
1.2 目的
基于Cortex-A9处理器实验平台,实现对种植农作物、蔬菜、果树等的土壤温湿度及光照进行远程或本地监测,同时对泵的开关进行控制。
1.3 要求
操作者必须熟练掌握ubuntu及其各种操作命令,对Cortex-A9多核开源嵌入式试验箱有基本的认知并能熟练操作。

2 任务分析

本设计的智能灌溉系统控制模块具有一定的可扩展性,经由相应的软硬件测试,满足智能控制的实时性、通用性、低功耗要求。智能灌溉系统模块能够实现与被控设备的连通以及控制信号的发送,可利用网络终端能进行智能化远程控制,实现了智能拉合的控制功能。该系统部署方便,成本低廉,在智慧农业和嵌入式应用等领域有较广阔的应用发展前途。
2.1 实验设备
1)装有ubuntu系统并配置了交叉编译环境的win7电脑。
2) Cortex-A9的多核开源嵌入式实验箱。
3)串口线及网线各一条。
2.2 操作步骤
1)将4412_Smartirrigation_task文件夹压缩成zip格式或者tar.gz格式(方便解压使用unzip或者tar -zxvf命令)
2)配置终端、开发板ip地址 ,必须在同一网关中。
终端ip:连接好串口线以及网线之后点击右上角选择最下面一个选项,选择wire,新建add,选择ipv4,模式选择muanul,再次点击add配置ip,输入完成点击apply即可。
开发板ip:输入ifconfig -a命令查看端口(一般为eth0),输入ifconfig eth0 IP地址 。
3)将4412_ Smartirrigation task文件夹放在tftpboot文件夹中并传入开发板中,tftp+ip地址–g–r文件名。
4)解压4412
Smartirrigation _task文件夹。
5)进入driver文件夹,挂载两个驱动(am2311.ko、leds_drv.ko、insmod(加载模块到内核)驱动文件。
6)返回上一级,直接给文件夹设置权限chmod +x 文件夹名称–R。
7)进入文件夹 运行start.sh启动文件。
8)使用火狐浏览器输入开发板ip地址即可进入登录页面用户名:hs,密码:123456。
9)成功进入之后即可控制三个模块,led control为灯光控制模块 ,Smartirrigation humiture为温湿度控制模块,Smartirrigation monitor为远程监控控制模块。

3 主要内容

3.1 需求分析
本项目设计了一套智能灌溉系统,用户可以根据传感器探测到的大棚内的生态环境,可自行使用网络终端调控合适的环境。采用Cortex-A9架构系列的Exynos4412处理器为核心控制器,搭建了置放于户内的Boa固定服务器,并设计了移动客户端软件。用户凭借自身的移动客户端软件,就可以采用有线或者APP等无线方式对自己远端的农业设备进行数据采集和遥控。系统能够自动感应采集周围环境的温湿度,并根据采集到的温湿度值反馈给终端,用户可随时通过手机APP或web浏览器远程控制棚内的温湿度,该系统基于智云物联平台设计,通过无线传感器采用温湿度,通过电机控制是否进行灌溉,同时采用了无线网络通信技术。客户通过web或android手机App对环境进行控制。
智能灌溉系统可以实现如下功能:
1)可以通过led灯的亮灭控制光照强度。
2)可通过温湿度传感器向终端发送数据。
3)用户可通过移动终端控制是否进行灌溉。
3.2 总体设计
3.2.1 系统模块

如图3-1所示
在这里插入图片描述
3.2.2 系统总体结构设计
智能灌溉系统的总体设计思路是利用温湿度传感器采集环境温度和湿度,采用步进电机对是否进行灌溉控制,,将上述无线传感器通过zigbee无线网络与协调器节点通信,协调器节点通过串口与终端网关通信,终端通过wifi接入互联网,在网页上对其进行控制。
3.2.3 系统功能分析
通常讲智能灌溉系统由传感器、控制器水艺网和后台监控系统、电磁阀以及供水系统等共同组成。该研究的准则是“智慧、环保和安全为本”, 实现对灌区灌溉的智能控制,这能有效的提高自动化生产效率,降低人力成本和管理成本显著提高效益。本文所研究的智能灌溉控制系统是根据人们日常农业生产的环境融入智能技术所实现的智慧农业。整个控制系统主要是实现如下功能。
温湿度参数采集控制系统。智能灌溉系统主要通过温湿度传感器采集环境温湿度参数,并且把采集到的模拟信号转换为数据信号显示到LED屏幕上。
1)Led灯控制系统
通过网页登陆远程控制LED灯的光照强度以及亮灭。
2)直流电机控制系统
该模块用来仿真灌溉系统。
3)用户交互控制系统
用户交互控制系统主要通过网页端,可以看到温湿度参数,以及远程控制光照强度和是否进行灌溉。
各系统之间的关系如图3-2所示:
在这里插入图片描述
3.3 详细设计
3.3.1 登录界面与主页

1)在Ubuntu中使用火狐浏览器输入开发板ip地址(192.168.1.1)即可进入登录页面。用户名:hs ;密码:123456。
2)成功进入即可看到两个控制模块 ,led灯控制模块和温湿度控制模块 。
3.3.2 温湿度控制
1)设置温湿度的预警值,当温湿度超过预警值时,电机会控制进行灌溉。
2)温湿度正常时,按照之前的正常状态继续工作。
3.3.3 直流电机控制
当检测得到的湿度值小于事先设定数值时,电磁阀就会开启为喷头输水,喷头就会以不同的角度旋转喷水。同理,检测湿度到达设定值时,控制终端会控制电磁阀关闭灌溉结束。该模块用来仿真灌溉系统。
3.4 代码设计流程图
3.4.1 项目启动流程图

如图3-4-1所示:
在这里插入图片描述
3.4.2 项目核心设计流程图
如图3-4-2所示:
在这里插入图片描述
3.5 系统测试
智能灌溉系统控制系统登录页面如图3-5-1所示:
在这里插入图片描述
LED灯控制如图3-5-2所示:
在这里插入图片描述
温湿度控制界面如图3-5-3所示:
在这里插入图片描述

4 总结

本次课程设计为期一周,我们设计了一种基于嵌入式的智能灌溉系统,该系统可利用温度传感器、湿度传感器等对现场的环境信息进行采集,并把采集到的信息传送到嵌入式处理器中,可提高系统的实时性和智能化水平,运用模糊控制的系统控制算法,对不易建立精确数学模型的控制对象能够进行很好的处理,最终对系统实现远程控制,能够随时随地对系统的运行状况进行监视和控制。远程控制设备为智能手机,具有操作方便、携带便捷等特点。系统采集到的数据及处理后的结果数据可以通过 3G 网络实时发送到智能手机上,同时也可以通过手机上的一些控制键控制系统执行相应的动作,在原有灌溉系统的基础上进行改造,具有成本低、易于维护等特点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于嵌入式技术的智能灌溉系统设计与实现 的相关文章

  • ROS 环境使用第三方动态链接库(.so)文件

    目录 1 背景 2 如何在编译时调用 so文件 1 背景 最近调试了一款设备 xff0c 设备厂家没有直接给驱动的源码 xff0c 而是给了一个动态链接库 so文件 及对应的头文件的使用说明 xff0c 由于需要集成到 ROS 中 xff0
  • The Gazebo grasp fix plugin

    The Gazebo grasp fix plugin 官方资料链接 xff1a https github com JenniferBuehler gazebo pkgs wiki The Gazebo grasp fix plugin 特
  • unzip: Ubuntu系统下解压文件失败的解决办法

    unzip Ubuntu系统下解压文件失败的解决办法 双击打开 zip压缩文件 xff0c 出现错误 xff1a 装入归档文件时出现了一个错误 使用命令unzip无法解压成功 xff0c span class token function
  • 运行moveit_rviz报错 Tried to advertise on topic [/move_group/filtered_cloud] with md5sum [060021388200f

    运行moveit rviz报错 ERROR 1656070551 111682083 1948 582000000 Tried to advertise on topic move group filtered cloud with md5
  • 使用sudo apt-get update报错:E: 无法下载 http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/dists/xenial/main/b

    使用sudo apt get update报错 xff1a E 无法下载 http mirrors tuna tsinghua edu cn ubuntu ports dists xenial main binary amd64 Packa
  • cout和printf的区别

    cout和printf的区别 缓冲机制 全缓冲 xff1a 全缓冲就是等待标准IO缓冲区填满或者flush操作 xff0c 才进行IO操作输入输出 行缓冲 xff1a 当遇到 n 回车换行符时 xff0c 进行IO操作输入输出 无缓冲 xf
  • Google chrome 浏览器提示【证书无效】问题

    问题描述 在使用google浏览器时 xff0c 访问某些网址时会显示网址不安全 xff0c 查看后发现网络证书无效 解决方法1 1 桌面找到google浏览器图标 xff0c 右键 xff0c 选择属性 2 在 34 目标 34 后空一格
  • Ubuntu18下Vscode的安装及环境配置

    Ubuntu18下Vscode的安装及环境配置 转载自 xff1a https www douban com note 719118404 在linux下使用vscode xff1a 1 安装 xff1a 在官网下载deb格式的文件 xff
  • ubuntu18.04安装docker和nvidia-docker2

    ubuntu18 04安装docker和nvidia docker 1 卸载旧版本的docker 旧版本的 Docker 被称为 docker docker io 或 docker engine 如果安装了这些 xff0c 需要卸载它们 x
  • docker上运行ros

    docker上运行ros 1 方法一 xff1a 使用小鱼的一键安装工具 xff1a span class token function wget span http fishros com install span class token
  • 记录使用docker运行ros过程中遇到的问题

    记录使用docker运行ros过程中遇到的问题 1 问题一 xff1a QStandardPaths XDG RUNTIME DIR not set defaulting to tmp runtime root No protocol sp
  • ROS 节点初始化步骤、topic/service创建及使用

    目录 1 节点初始化步骤 2 service 创建及使用 3 topic创建及使用 4 框架总结 这是一个总结复盘的记录 1 节点初始化步骤 在 mian 函数中使用 ros init 初始化节点 xff0c 注册节点名 xff0c 这里注
  • java 方法的注意事项

    方法的注意事项 1 方法不能嵌套定义 2 方法的返回值类型为void xff0c 表示该方法没有返回值 xff0c 没有返回值的方法可以省略return语句不写 xff0c 如果要编写return xff0c 后面不能跟具体的数据 3 re
  • java 方法重载

    方法名相同 xff0c 参数也完全相同 xff0c 称为方法的重复定义 xff0c 是一种冲突性的错误 如下 xff1a 在同一个类中 xff0c 定义了多个同名的方法 xff0c 但每个方法具有不同的参数或参数个数 xff0c 这些同名的
  • java 方法的参数传递(基本数据类型、引用数据类型)

    基本数据类型传递 xff1a span class token keyword public span span class token keyword class span span class token class name Test
  • java 方法求数组最大值

    需求 xff1a 设计一个方法用于获取数组中元素的最大值 xff1a span class token keyword public span span class token keyword class span span class t
  • docker 拉取镜像、创建并启动容器

    获取镜像 默认情况下 xff0c 使用docker pull命令 xff0c 会从官方的Docker Hub库中将镜像拉取到本地 首先介绍这条命令的格式 xff1a docker pull OPTIONS lt 仓库名 gt xff1a l
  • Docker 停止容器

    使用docker stop停止一个容器 docker stop可以用来终止一个正在运行的容器 它的命令格式如下 xff1a docker stop OPTIONS Container Container 其中 xff1a docker st
  • 进入docker容器

    进入docker容器的三种方法 1 使用ssh登陆进容器 xff1b 2 使用nsenter nsinit等第三方工具 xff1b 3 使用docker本身提供的工具 Docker目前主要提供了docker exec和docker atta
  • docker删除容器

    删除容器使用 docker rm 命令 xff1a 1 删除容器 1 首先需要停止所有的容器 docker stop docker ps a q 2 删除所有的容器 只删除单个时把后面的变量改为container id即可 docker r

随机推荐

  • docker 基于Commit定制镜像

    在Docker中提供了一个命令docker commit xff0c 该命令会把对容器的修改提交成一个镜像 换句话说 xff0c 就是在原有镜像的基础上 xff0c 再叠加上容器的存储层 xff08 该存储层仅仅保存了容器所做的修改 xff
  • Ubuntu 实现shell文件的开机运行(从原理到实现)

    目录 0 Linux的开机启动顺序 1 完善 rc local service 脚本 3 创建 rc local 脚本 4 总结 设置 shell 脚本开机启动的方法有挺多 xff0c 比如 xff1a 添加到 init d 中的方法 xf
  • docker 保存镜像、加载镜像

    将镜像保存到tar包 docker save用来将一个或者多个镜像保存为一个tar文件 xff0c 默认标准输出流的方式输出 xff0c 它的具体语法如下 xff1a docker save OPTIONS IMAGE IMAGE 其中 x
  • docker 导入导出容器

    将 容器的文件系统 保存到tar包 docker export是将 容器的文件系统 导出为一个tar包 注意是操作的对象是容器 xff01 它的具体语法如下 xff1a docker export OPTIONS CONTAINER 其中
  • docker 删除镜像

    删除镜像 如果要删除本地的镜像 xff0c 可以使用 docker rmi xff08 注意rm为删除容器 xff0c 而rmi为删除镜像 xff0c 其中i代表image xff09 命令 xff0c 它的具体语法如下 xff1a doc
  • docker 构建私有Registry、私人仓库

    1 使用docker tag给busybox加上一个标签localhost 5000 busybox latest xff1b docker tag busybox localhost span class token operator s
  • mall在linux环境下的部署(基于docker容器)

    mall在docker容器下部署涉及到MySQL Redis Nginx RabbitMQ MongoDB Elasticsearch Logstash Kibana xff0c 以及Spring Boot应用部署 本人事先已经拉取过镜像了
  • docker拉取镜像速度很慢的解决方法

    将docker修改为国内镜像源 在 etc docker daemon json文件中添加下面参数 xff0c 文件不存在的话创建即可 此处使用的是中国科技大学的docker镜像源 span class token punctuation
  • 解决您的qq.exe已在防护中,链接无法打开的问题

    适用于联想电脑 出现以上情况是由于默认了联想自带的浏览器打开QQ的链接 xff0c 如果不是直接点击的话可以复制到浏览器打开 xff0c 以下内容是方便直接QQ打开链接 问题如图 xff1a 解决方法 打开联想浏览器 设置 智能实验室 管理
  • ubunut16.04 kinetic版本gazebo7升级为gazebo9(完美解决!!!)

    问题 xff1a 我们加载gazebo7发现启动rourun节点有关摄像头的画面加载不出来 xff0c 往往是黑屏或者卡顿中断gazebo 原因 xff1a Gazebo版本太低造成的 因此 xff0c 需要对此升级 Kinetic中的默认
  • 【Java】Java对象的上转型对象与下转型

    Java对象的上转型对象与下转型 1 解释说明2 代码示例2 1 示例一2 2 示例二 3 强制对象类型转换 将一个类型强制转换成另一个类型的过程被称为类型转换 本节所说的对象类型转换 xff0c 是指存在继承关系的对象 xff0c 不是任
  • 虚拟机/云服务器安装docker

    本文基于腾讯云服务器CentOS7 6版本 一 操作步骤 提示 xff1a 执行whoami命令可以查看当前账户 xff0c 如果不是管理员 xff0c 所有命令需要加上sudo 如果需要切换账户 xff0c 可以使用命令 su root
  • Linux SocketCAN 编程(C++,启用多线程接收)

    目录 1 使用指令设置can参数 2 使用 socket 函数创建一个 socketcan 套接字 3 使用 ioctl 函数 将套接字与 can 设备绑定 4 使用 setsockopt 函数设置过滤规则 xff08 接收滤波器 xff0
  • CentOS 7 配置 VNC 服务(单用户单界面)

    CentOS 7 配置 VNC 服务 xff1a 前提图形界面已安装 安装图形仅供参与不同版命令有些区别 yum check update yum groupinstall 34 X Window System 34 yum install
  • CentOS禁止root登录ssh

    为什么要禁止root登录ssh xff0c 为了安全 添加一个用户 为了禁止root登录时候登录的账号密码 useradd admin passwd admin 然后输入两次密码 xff0c 提示的信息可忽略 修改文件sshd config
  • C++复习题(面向对象程序设计)

    C 43 43 复习题 xff08 面向对象程序设计 xff09 一 选择题 C 43 43 语言属于 C A xff09 自然语言 B xff09 机器语言 C xff09 面向对象语言 D xff09 汇编语言下面选项中不属于面向对象程
  • PWM控制直流电机(单片机实验)

    PWM控制直流电机 xff08 单片机实验 xff09 有问题欢迎私信哦 一 题目 设计电路 xff0c 使用定时器实现PWM对直流电机的转速控制 xff0c 并且实现按键切换转动方向 并进行软件仿真 xff0c 做出实物 二 基本要求 1
  • 模拟ATM机存取款管理系统设计(C++)

    模拟ATM机存取款管理系统设计 有问题欢迎私信哦 1 1问题描述 xff1a 模拟银行自动存取款机使用过程中的界面和用户交互过程 xff0c 实现查询银行卡余额 取款 修改密码 退出系统等功能 1 2基本要求 xff08 功能要求 xff0
  • 蒙牛伊利静悄悄,为什么牛奶的标准这么低,还能喝吗

    蒙牛伊利静悄悄 xff0c 为什么牛奶的标准这么低 xff0c 还能喝吗 中国的食品问题 xff0c 可能是最容易牵动国人关注焦点的大事 从苏丹红到三聚氰胺 xff0c 历年都有各种大大小小的食品安全事件见诸报端 要不是前段时间湖南郴州大头
  • 基于嵌入式技术的智能灌溉系统设计与实现

    基于嵌入式技术的智能灌溉系统设计与实现 基于嵌入式技术的智能灌溉系统设计与实现 基于cortex A9处理器实验平台 xff0c 实现对种植农作物 蔬菜 果树等的土壤温湿度及光照进行远程或本地监测 xff0c 同时对泵的开关进行控制 1 目