基于单片机的智能鱼缸控制系统的设计与实现

收藏和点赞,您的关注是我创作的动力

文章目录

    • 概要
  • 一、开发技术和原理的相关知识
    • 2.1开发设计目标
    • 2.2 开发设计使用技术和原理
    • 2.2.1嵌入式技术
    • 2.2.2传感器技术
  • 二、基于单片机的智能鱼缸控制系统的总体设计
    • 3.1智能鱼缸控制系统的基本组成
    • 3.1.1系统的构成部分
    • 3.2需求分析
    • 3.2.1功能性需求
    • 3.2.2系统的功能流程
  • 三 系统设计概要
    • 4.1总体设计
    • 4.2智能鱼缸控制系统的控制参数
    • 4.3系统的硬件组成
    • 4.4系统的软件设计
  • 四、 各个功能模块的软件设计
    • 5.3.2系统的主程序和中断服务程序
  • 四、 结论
  • 五、 文章目录

概要

  近几年,随着经济水平的发展,现在的居住环境也得到了质的飞跃,各个装饰业也在这些年悄然出现,鱼缸也成为我们国家很多家庭用于装饰居家环境的青睐物,但是在现在的中国,生活工作节奏越来越快,大多数的家庭拥有观赏鱼缸的水族爱好者表示日常没有过多的时间和精力去对鱼缸进行日常的维护工作,因此本文设计的基于单片机的智能鱼缸控制系统有着实用和实际意义,本文的设计的智能鱼缸控制系统基于STC89C52单片机,主要组成结构有:单片机控制模块、温度检测调节模块、液位传感器模块、电机计时计次喂食模块、供电模块。其工作以STC89C52单片机作为控制的核心,通过温度检测调节模块、液位传感器模块的检测工作返回数据给控制中心,并由控制核心判断是否进行温度的控制、水位和喂食的指令,并将数据显示到LCD1602。

关键词:温度控制 水位控制 单片机 STC89C52 温度传感器 液位传感器

一、开发技术和原理的相关知识

  

2.1开发设计目标

一种集温度检测和控制、水位感应(液位传感)、计时投食和数据显示的一体化智能鱼缸控制体系。能够实现温度检测,当温度低于最低温度时间加热,并且能够自动控制加热温度,能够感应水位状态自动加水和定时给鱼缸投食。

2.2 开发设计使用技术和原理

2.2.1嵌入式技术

本项目采用嵌入式设计,软件和硬件结合实现所设计的功能,其响应速度快、可独立运行的优点在开发方面有着优势,本智能鱼缸控制系统的设计使用52单片机,其存储量比51单片机更大。

2.2.2传感器技术

传感器技术在现代开发设计上起到稳定可靠的技术基础和技术保障,现代各个领域的研发都设计传感器技术,传感器技术在各个领域的研发设计上提供了可靠准确而实时的数据技术保障,例如温度传感器、距离传感器、光线传感器、压力、液位湿度传感器等。传感器技术得到普遍利用,传感器不仅可以代替我们人体手动测量数据,更能高效准确地得到我们人体无法直接感受到的信息。可以直接取代人体自身感官。无论在航空军事等顶尖技术领域还是在农业和家居等日常领域,传感器技术都是属于获取数据信息技术的基础。本项目设计的智能鱼缸控制系统也广泛运用到了传感器技术。

二、基于单片机的智能鱼缸控制系统的总体设计

3.1智能鱼缸控制系统的基本组成

3.1.1系统的构成部分

系统主要分为水温检测调节模块、液位检测控制模块、计时投食模块、系统显示模块4个功能模块,各个模块设计:
水温检测调节模块:系统可手动设定最高温度和最低温度的温度区间、由DS18B20数字温度传感器检测到当前温度,实现信号转换,将温度信号转换为数字信号,然后通过已写入控制核心的程序进行识别和检测到当前温度不在所设定的最高温度到最低温度的范围内且低于所设定的最低温度时,加热器启动并进行加热,加热所设定的温度区间中的最高温度时停止加热,以此来保持温度在所设的温度区间值内。
液位检测控制模块:常用的液位检测模块有超声波检测(使用超声波水位计)和使用液位传感器检测,超声波检测有着精确度高、检测水位的过程中受影响因素少等特点、但是超声波水位计价格昂贵,多用于精密度要求高的高分子液位检测,基于成本考虑,本设计采用的是液位传感器df-893,通过两个液位传感器一个检测最高水位一个检测最低水位,其工作原理与温度检测相似,当液位传感器检测到鱼缸水位在两个液位传感器中间时,不进行其他工作,当水位低于最低水位时,传感器将检测到的水位信号值转化为数字信号,再由单片机识别、控制执行电路进行水位的增加,当水位到最高水位时,停止加水。
计时投食模块:系统可以手动设定投食时间,当计时器检测到达到投食时间的时候,由单片机控制执行电路投食。
系统显示模块:系统的各个既定和设定参数显示在LCD1602,包括温度,投食时间等。

3.2需求分析

3.2.1功能性需求

智能鱼缸控制系统是以鱼缸环境的控制和调节为主,其系统的主要功能是对水温检测和调节,水位的检测和调节,定时投食等自动化操作,集成以自动鱼缸内温度环境的检测调节、水位的检测和调节、自动喂食等一体化的智能鱼缸控制系统。

3.2.2系统的功能流程

本设计的智能鱼缸控制系统功能流程图如图3.1所示。
在这里插入图片描述

图3.1 系统功能流程图

三 系统设计概要

4.1总体设计

智能鱼缸控制系统的设计分为每个功能模块的硬件部分和由单片机控制的软件部分。硬件部分包括对时间,温度和液位的感知,并传送所有信息到控制端。软件部分包含信号的转换,分析温度和液位的临界值、时间的分析,并将得到的信号转换为电信号,控制温度、液位、电机喂食的实现。

4.2智能鱼缸控制系统的控制参数

本系统的控制参数如表4.1所示。

表4.1 系统的控制参数
在这里插入图片描述

4.3系统的硬件组成

本设计的智能鱼缸控制系统的功能分为多个模块组成模块,其组成分为核心控制模块、DS18B20数字温度传感器、时钟控制模块、电机。控制模块以STC89C52单片机为控制核心,分析传感器模块和时钟控制模块获取到的信号,控制其他功能模块的工作;DS18B20数字温度传感器的主要功能是鱼缸内温度的检测,获取到当前的温度值并返回到单片机控制核心;时钟控制模块的功能是整个系统的时钟参数的提供;不同的电机的功能是实现自动喂食器。系统的整体硬件结构见图4.3所示。
在这里插入图片描述

图4.3 智能鱼缸控制系统的整体硬件结构
系统的控制部分是:
中央控制模块:主要基于CPU内核,包括晶体振荡器,复位电路等。该模块的主要功能是处理单片机每个引脚的信号以及命令和参数。通过绿色能源模块接收,然后发出各种控制信号。通过驱动硬件完成与各种控制信号相对应的相关操作。
系统的输入部分和系统的输出部分:
温度检测模块:输入部分包含温度传感器的获取实时温度功能,传感器获取数值。当然温度传感器获取的数据需要进行转换才能够识别,所以也需要运用到A/D转换器。温度传感器作用是获取温度信号值,但是单片机识别不了其信号只能识别数字信号,所以温度需要转换为数字信号给单片机识别。

4.4系统的软件设计

根据系统功能要求,基于系统硬件电路设计了智能鱼缸控制系统。C语言作为本次设计开发所使用的程序。根据本次系统设计的软件设计思路,将整个系统划分为多个模块,包括系统的主程序、系统的中断、包括实时温度值和时间倒计时的数值获取模块、鱼缸生存环境其余参数的获取模块、按键控制功能对应按键的程序等。

四、 各个功能模块的软件设计

系统软件的设计是完成鱼缸内生产环境检测监督的重要部分,也是如何把拼接在一起的硬件有目的性地实现所需功能的通道和方法。由已知的系统功能需求焊接了硬件,然后又以硬件为基础进行对应功能的软件设计,所以软件设计是需要在硬件设计以及建立的基础上完成的。
为了达到更高效更层次分明以及便于日后软件调试和进行软件的完善和升级,本设计的软件设计部分采用了以大化小的方式,对系统的功能和硬件构成进行了分解和分析。把智能鱼缸控制系统分解为了多个模块进行有结构有层次地完成软件设计部分。有必要在模块化设计中将整个控制系统分为几个模块,这是将复杂问题转化为许多小问题的常用方法。关于解决问题的大量实验表明,复杂性可以减少解决问题的总工作量。而单片机程序的实现,是使用了单片机的C语言进行开发。分化出的模块主要有本系统的主程序、单片机的时钟读取与写入和初始化、df-893上下液位检测、设定温度上限值和下限值和喂食电机的驱动等。经过对本系统的模块排序和功能的解析,决定采用keil进行开发。

5.3.2系统的主程序和中断服务程序

本设计的控制系统主要程序的作用有很多,例如检测鱼缸中的生存环境的状况,以数据的形式返回以便直观了解。而本次系统的软件设计是以分解大系统为各个小模块来设计的,数个小模块有对应的实现方式,把分解出来的各个模块组合在一起实现鱼缸生存环境的状况监督和自动投食,系统的主程序流程图如图5.12所示。
在这里插入图片描述

图5.12 系统的主程序工作流程图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、 结论

本设计的智能鱼缸控制系统结合实际地通过调查研究的功能以及根据鱼缸水族爱好者对一些功能的必须性要求,从不同的功能需求和市场需求的角度进行了设计和开发,设计完成出了结合温度检测控制,液位检测和自动喂食功能的一体集成智能鱼缸控制系统。且该控制系统设在设计上安排合理,成本贴合于市场的需求,对于没有过多时间管理鱼缸的水族爱好者来说方便而且实际,本设计便于生产,可以广泛运用在各个场所。
在技术上,本设计的控制系统采用了多项高新技术,例如传感器计算和嵌入式控制技术。在硬件的排版和设计上,本设计采用了各个硬件独立工作的方式,结合实际采用了成本亲民且抗干扰性好的硬件设备。软件设计方面采用了分解整个系统为分模块化设计,层次分明,便于日后系统的完善和升级。整体的设计使得本系统的响应速率快、可靠性强,稳定性高。

五、 文章目录

目录
1.绪论 1
1.1选题背景 1
1.2课题研究现状 1
1.3课题研究目的 2
2.开发技术和原理的相关知识 3
2.1开发设计目标 3
2.2 开发设计使用技术和原理 3
2.2.1嵌入式技术 3
2.2.2传感器技术 3
3.基于单片机的智能鱼缸控制系统的总体设计 4
3.1智能鱼缸控制系统的基本组成 4
3.1.1系统的构成部分 4
3.2需求分析 5
3.2.1功能性需求 5
3.2.2系统的功能流程 5
4.系统设计概要 6
4.1总体设计 6
4.2智能鱼缸控制系统的控制参数 6
4.3系统的硬件组成 6
4.4系统的软件设计 7
5.系统软硬件详情设计 8
5.1单片机的设计 8
5.1.1单片机型号选择 8
5.1.2最小系统设计 9
5.2各个功能模块的硬件设计 10
5.2.1时钟电路模块 10
5.2.2液晶显示模块 11
5.2.3液位检测模块 12
5.2.4温度检测控制模块 12
5.2.5自动定时投食模块 13
5.3各个功能模块的软件设计 14
5.3.1系统软件设计方法和介绍 14
5.3.2系统的主程序和中断服务程序 14
5.3.3时钟DS1302显示模块的软件设计 15
5.3.4温度检测控制模块的软件设计 17
5.3.5电机驱动程序 18
5.4硬件设备的实物图 18
5.4.1液位传感器df-893 18
5.4.2数字温度传感器DS18B20 19
5.4.2智能鱼缸控制系统的整体硬件设计图 19
6.系统测试 20
6.1系统功能测试 20
6.1.1LCD1602显示和数字温度传感器DS18B20温度检测测试 20
6.1.2液位检测模块的测试 22
6.1.3自动喂食模块的检测 23
7.结论 25
8.参考文献 26
9.致谢 27
10.附录 28

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/129705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uni-app 解决钉钉小程序日期组件uni-datetime-picker不兼容ios问题

最近在使用uni-app开发 钉钉小程序 ,遇到一个ios的兼容性问题 uni-datetime-picker 组件在模拟器上可以使用,在真机上不生效问题 文章目录 1. 不兼容的写法,uni-datetime-picker 不兼容IOS2. 兼容的写法,使用 dd.datePicker 实现。…

Java数组小练习求出数组中的最大值

加油,新时代打工人! Java基础八之数组的定义和获取元素 package demo;/*** author wenhao* date 2023/11/04 10:47* description 数组练习*/ public class ArrDemo {public static void main(String[] args) {//求一个数组中的最大值int [] arr {66,12…

ActiveMQ是什么?-九五小庞

MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有ActiveMQ,RabbitMQ,kafka。ActiveMQ是Apache下的开源项目,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现。特点:1、支持多种语言…

Cross-Entropy Loss(多分类损失函数)

文章目录 1. 网络输出output:score2. Cross-Entropy Loss(多分类损失函数) 1. 网络输出output:score 2. Cross-Entropy Loss(多分类损失函数) 先用softmax function把score 变成 probabilities。再用交叉熵损失函数来进行Loss的计算

【Midjourney入门教程4】与AI对话,写好prompt的必会方法

文章目录 1、语法2、单词3、要学习prompt 框架4、善用参数(注意版本)5、善用模版6、临摹7、垫图 木匠不会因为电动工具的出现而被淘汰,反而善用工具的木匠,收入更高了。 想要驾驭好Midjourney,可以从以下方面出发调整&…

智能工厂架构

引:https://www.bilibili.com/video/BV1Vs4y167Kx/?spm_id_from=333.788&vd_source=297c866c71fa77b161812ad631ea2c25 智能工厂框架 智能工厂五层系统框架 MES 数据共享 <

JumpServer开源堡垒机与万里安全数据库完成兼容性认证

近日&#xff0c;中国领先的开源软件提供商FIT2CLOUD飞致云宣布&#xff0c;JumpServer开源堡垒机已经与万里安全数据库软件GreatDB完成兼容性认证。针对产品的功能、性能、兼容性方面&#xff0c;经过双方共同测试&#xff0c;万里安全数据库软件&#xff08;简称&#xff1a;…

软件测试用例方法---边界值法

原则&#xff1a; 输入最小值&#xff08;min&#xff09;、稍大于最小值&#xff08;min&#xff09;、域内任意值&#xff08;nom&#xff09;、稍小于最大值&#xff08;max-&#xff09;、最大值&#xff08;max&#xff09; 写法&#xff1a;“单故障”假设&#xff08;致…

Redis Part2

Redis中如何的去存放一个Java对象&#xff1f; 直接存放Json类型即可&#xff0c;因为我们Json类型最终就是一个String类型。 Spring Boot整合Redis 三步骤完成SpringBoot对Redis数据库的整合 引入spring-boot-starter-data-redis依赖在application.yml中配置Redis信息注入Re…

关于pytorch张量维度转换及张量运算

关于pytorch张量维度转换大全 1 tensor.view()2 tensor.reshape()3 tensor.squeeze()和tensor.unsqueeze()3.1 tensor.squeeze() 降维3.2 tensor.unsqueeze(idx)升维 4 tensor.permute()5 torch.cat([a,b],dim)6 torch.stack()7 torch.chunk()和torch.split()8 与tensor相乘运算…

Unity中Shader的GI相关数据的准备

文章目录 前言一、把 Unity 中用到的 GI 的函数移植到我们自定义的 cginc 文件中二、开始使用和 GI 相关的方法1、了解 UnityGI 结构体的内容,并且准备 UnityGI 的数据2、了解 SurfaceOutput 结构体&#xff0c;并且准备数据3、了解并准备 UnityGIInput 结构体&#xff0c;并且…

centos7安装oxidized备份软件

首先需要提前下载ruby&#xff0c;因为默认yum安装的版本太低 https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0.tar.gz 1、yum remove ruby ruby-devel&#xff08;有就卸载&#xff0c;没有则忽略&#xff09; 2、将下载好的ruby包解压到/opt下 [rootoxidized ruby-…

第6章_多表查询

文章目录 多表查询概述1 一个案例引发的多表连接1.1 案例说明1.2 笛卡尔积理解演示代码 2 多表查询分类讲解2.1 等值连接 & 非等值连接2.1.1 等值连接2.1.2 非等值连接 自连接 & 非自连接内连接与外连接演示代码 3 SQL99语法实现多表查询3.1 基本语法3.2 内连接&#x…

2023.11.03 homework

小学4年级数学 1 2 3 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 19…

我的大语言模型微调踩坑经验分享

由于 ChatGPT 和 GPT4 兴起&#xff0c;如何让人人都用上这种大模型&#xff0c;是目前 AI 领域最活跃的事情。当下开源的 LLM&#xff08;Large language model&#xff09;非常多&#xff0c;可谓是百模大战。面对诸多开源本地模型&#xff0c;根据自己的需求&#xff0c;选择…

【Midjourney入门教程1】Midjourney的注册、订阅

文章目录 前言一、Midjourney是什么二、Midjourney注册三、新建自己的服务器四、开通订阅 前言 AI绘画即指人工智能绘画&#xff0c;是一种计算机生成绘画的方式。是AIGC应用领域内的一大分支。 AI绘画主要分为两个部分&#xff0c;一个是对图像的分析与判断&#xff0c;即“…

Azure 机器学习 - 无代码自动机器学习的预测需求

了解如何在 Azure 机器学习工作室中使用自动化机器学习在不编写任何代码行的情况下创建时序预测模型。 此模型将预测自行车共享服务的租赁需求。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕…

Linux flock和fcntl函数详解

文章目录 flock函数描述返回值和错误码笔记 fcntl函数描述复制文件描述符文件描述标志文件状态标志 咨询锁强制锁管理信号租赁文件和目录变更通知改变管道容量 返回值错误备注遗留问题 flock函数 主要功能是在已打开的文件应用或者删除共享锁或者独占锁。sys/file.h声明了这个…

firefox浏览器添加自定义搜索引擎方法

firefox浏览器添加自定义搜索引擎方法 1.在地址栏添加搜索引擎2.Mycroft Project 搜索引擎附加组件3.通过扩展插件添加自定义搜索引擎 Firefox这货居然不支持直接网址%s的搜索引擎定义方式&#xff0c;以下是添加方法。 firefox国际版119.0 1.在地址栏添加搜索引擎 &#xff…

TrafficWatch 数据包嗅探器工具

TrafficWatch 是一种数据包嗅探器工具&#xff0c;允许您监视和分析 PCAP 文件中的网络流量。它提供了对各种网络协议的深入了解&#xff0c;并可以帮助进行网络故障排除、安全分析等。 针对 ARP、ICMP、TCP、UDP、DNS、DHCP、HTTP、SNMP、LLMNR 和 NetBIOS 的特定于协议的数据…