基于STM32单片机的智能鱼缸的设计

2023-11-17

一、任务简介

       本次以STM32F103单片机为核心,设计了一款智能鱼缸,能够实现智能温控,智能换水,智能供氧,智能喂食等功能。利用单片机作为主控制器,使用Keil软件进行程序开发,除STM32F103C8T6最小系统外,系统还包含温度传感、水位传感、浑浊度传感等部分。

二、总体设计

       本文设计的智能鱼缸主要是在日常家庭中使用,成为一般家庭养鱼,改善生活品质的选择。此次设计的要求是完成对鱼缸中水质的自动检测控制,水位的自动检测控制,温度的自动检测控制以及对鱼缸内鱼类的自动喂食供氧功能。因此,智能控制的对象即为鱼缸内的水质,水温,水中含氧量以及鱼缸中的食物。但在实际操作过程中,温度和水质的检测较为容易,但是水中含氧量和鱼缸中食物数量的检测较为复杂。因此,在设计过程中,将智能鱼缸需要完成的功能设定为定时喂食,定时供氧,以及恒温控制,水质检测。

 三、硬件设计

      本设计的硬件部分主要是由STM32芯片进行控制处理,通过温度传感器DS18B20、浊度传感器TSW-30、以及用作水位检测的湿度传感器收集外部数据,将数据传输给STM32芯片,由芯片做出判断,控制继电器的开关,来控制外部的喂食、供氧、加热等设备的工作。

1、STM32F103C8T6介绍

      STM32F103C8T6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列。实物如图2.2所示。

2、 DS18B20温度传感器

        DS18B20是美国DALLAS半导体公司推出的一种智能温度传感器,它能够直接读出被测温度。而且DS18B20可使系统结构简单化,具有更高的可靠性。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。

 3、浊度传感器

       浊度传感器模块的组成如图2.7所示。该模块通过 3Pin XH-2.54 接头与浊度传感器进行连接。调节 10K 蓝色电位器的旋钮可以对数字量输出触发阈值进行调节。

 

 

4、水位传感器

       土壤湿度传感器有两个裸露的叉形探针,其电阻根据土壤中的水分含量而变化。该阻力与水分含量成反比。土壤中的水分越少,电阻越高。传感器根据电阻产生输出电压,以此可以确定水分含量。当水分含量超过阈值时,将输出低电平,否则输出高电平。该传感器还具有两个LED通电后,电源LED指示灯将点亮。当输出变为低电平时,状态LED将点亮。

 三、软件设计

1、软件框图

 2、代码展示

#include "stm32f10x.h"
#include "bsp.h"

extern int t1count;
extern int t2count;

int main()
{
	
	int T1=1000,T1_last,flag1,flag2;
	u16 adcx1,v10,v11,v12,v13,v14;
	float volt1,adcy1;
	int temp_target=30;
	int temp,t1,t2,t3;
	u8 tem,h1,h2;
	BSP_Init();
	OLED_Init(); 
	OLED_Clear(); 
	TIM_Cmd(TIM2, DISABLE);
	
	while(1)
	{ 
if(humi<humi_target)
		{
		  PBout(1)=0;
		}
		else 
		{
			PBout(1)=1;
		}

	    adcx1=Get_Adc_Average(ADC_Channel_3,20);
		adcy1=adcx1;
		volt1=adcy1/4096*3.3;
		v10=volt1*1000;
		v11=volt1;
		v12=v10%1000/100;
		v13=v10%100/10;
		v14=v10%10;
		OLED_ShowString(4,3,"hh:",8);
		OLED_ShowNum(41,3,v11,1,8);
		OLED_ShowString(47,3,".",8);
		OLED_ShowNum(54,3,v12,1,8);
		OLED_ShowNum(61,3,v13,1,8);
		OLED_ShowNum(68,3,v14,1,8);
		OLED_ShowString(76,3,"v",8);

temp=DS18B20_Get_Temp();
		t1=temp/100;
		t2=temp%100/10;
		t3=temp%10;
		OLED_ShowString(4,1,"Turb:",8);
		OLED_ShowNum(41,1,t1,1,8);
		OLED_ShowNum(48,1,t2,1,8);
		OLED_ShowString(54,1,".",8);
		OLED_ShowNum(59,1,t3,1,8);
	    OLED_ShowString(66,1,"C",8);

OLED_ShowString(4,5,"High:",8);
		OLED_ShowString(64,5,"Low:",8);
		if(PBin(3)==1)
		{
		  OLED_ShowNum(43,5,1,1,8);
		}
		else
		{ 
		   OLED_ShowNum(43,5,0,1,8);
		}
		
		
		if(PBin(4)==1)
		{
		  OLED_ShowNum(104,5,1,1,8);
		}
		else
		{ 
		   OLED_ShowNum(104,5,0,1,8);
		}
if(t1count==999)  
	 {
	  t1count=0;                          
		TIM_SetCompare1(TIM4,10000);
		delay_ms(1000);
		TIM_SetCompare1(TIM4,1);
		delay_ms(1000);
	 }
	 
	 OLED_ShowNum(10,7,t1count,3,8);
	
	}
}

四、原理图

五、说明书内容

第1章  绪 论

1.1 研究背景及意义

1.2 国内外的研究现状

1.2.1 国外研究进展

1.2.2 国内研究进展

1.3 主要研究内容及章节安排

第2章 智能鱼缸硬件设计

2.1 需求分析

2.2 总体设计方案

2.2.1 设计要求

2.2.2设计方案

2.2.3 硬件总体设计

2.3 STM32F103C8T6介绍

2.3.1 STM32F103C8T6的主要特性参数和优点

2.3.2 STM32F103C8T6单片机最小系统引脚及原理图

2.4DS18B20温度传感器

2.4.1 DS18B20的主要特性及优点

2.4.2 DS18B20工作原理介绍

2.4.2 DS18B20引脚介绍及原理图

2.5 浊度传感器

2.5.1浊度传感器模块介绍

2.5.2配套浊度传感器介绍

2.5.3浊度传感器原理图

2.6水位传感器

2.6.1土壤湿度传感器工作原理

2.6.2水位检测装置原理图

2.7 MG996R舵机

2.7.1 MG996R舵机产品参数及工作原理

2.7.2 PWM简介

2.8继电器

2.8.1 电磁式继电器的参数及优缺点

2.8.2 电磁式继电器的工作原理及引脚定义

2.9本章小结

第3章 智能鱼缸软件分析

3.1软件总体流程

3.2编程语言选择

3.3Keil介绍

3.4 STM32开发方式的介绍

第4章  实物演示

4.1实物温度调节功能

4.2实物浊度调节功能

4.3实物水位调节功能

4.4实物定时喂食供氧功能

第5章  总结与展望

参考文献

致  谢

附录1:原理图

附录2:主程序

 

 有问题,私聊。微信:lwfw123456789

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

基于STM32单片机的智能鱼缸的设计 的相关文章

  • 单片机毕设选题 - 基于STM32自行车智能无线防盗报警器 -物联网 单片机 嵌入式

    hr style border solid width 100px height 1px color 000000 size 1 quot 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到
  • k8s_day01_01

    k8s day01 01 1 it发展趋势 it 的发展趋势中 我们最早的资源粒度从最早的物理机时代 到达十年之前的 kvm 还有xen 为代表的虚拟化代表的虚拟机时代 那个时候 VMware是如日中天的时期 vmware 以产品众多且成熟
  • 【安全知识】——如何绕过cdn获取真实ip

    作者名 白昼安全 主页面链接 主页传送门 创作初心 以后赚大钱 座右铭 不要让时代的悲哀成为你的悲哀 专研方向 web安全 后渗透技术 每日鸡汤 现在的样子是你想要的吗 cdn简单来说就是 通过不同地理位置的缓存来加快访问速度 所以我们有可

随机推荐

  • centos7离线升级gcc到9.3.1,解决redis6安装失败

    我们在安装Redis6的时候会编译出错 大概率是因为centos7的gcc版本 centos7的默认版本是4 8 5 需要将gcc版本升级到9 如果服务器是互联网环境 可以直接通过yum命令升级 yum y install centos r
  • MFC多字节和宽字节转换方式

    第一种转换 代码中可以直接用宏定义转换 可以使用 L 或者 T 但是对于传过来的值 就不能这样了 需要写函数转换 第二种转换 必须在一个函数中执行 否则上一次调用并不会释放栈中的空间 要直到函数结束才会释放空间 测试是否释放内存空间可以使用
  • 单片机——PWM调光工作原理

    前言 如果只用单片机做一个调光系统 pwm是可以实现的 但是如果有其它的功能 比如传感器要检测 显示屏显示数据等等功能 就不推荐了 其它函数一多 定时器的时间又比较短 以至于单片机大多数时间都用在定时中断函数里去了 处理其它函数的时间太少
  • 京东云鼎服务器系统时间问题-时间戳参与与服务器时间差异大于设定值

    业务背景 目前业务对接了各大电商平台的订单 按照规定京东需要入鼎进行调用jos接口来拉取订单 相当于与订单API之间多一个应用中转 如图 该文章暂时不讨论对接的细节 后面打算出个专题文章细说各大电商平台的对接 目前好像比较少这个业务的分享
  • ios 无法发起ajax请求,PhoneGap的iOS的Ajax请求无法完成(Phonegap iOS ajax request

    请阅读更新这个答案在底部 原来的答案 我已经找到了问题所在 并设法得到基本的认证工作 问题是 Web服务器期待基本身份验证的细节与请求一起发送先发制人 要做到这一点使用 头 的jQuery AJAX的特性如下图所示 ajax type GE
  • 【debug】error: subprocess-exited-with-error

    在安装Python的某个三方包时 出现了下面的报错方式 error subprocess exited with error 解决办法 解决方案重新安装importlib metadata pip install importlib met
  • 经典面试题-大厂SQL题目

    1 如何用一个SQL找出部门下所有员工的平均工资大于某个数 例如20000元 的所有部门 正确答案 select depno avg sal as avgsal from emp group by depno having avgsal g
  • 使用python编写脚本测试目标主机的TCP端口连通性

    使用Python的Socket模块的connect 函数来尝试连接目标主机的特定端口 如果连接成功 则说明该端口是打开的 否则 该端口是关闭的 下面是一个示例脚本 可以检测目标IP的22端口是否开启 import socket def ch
  • 【c++】类模版

    1 类模板语法 类模板作用 建立一个通用类 类中的成员 数据类型可以不具体制定 用一个虚拟的类型来代表 语法 template
  • 市场监管总局关于对锂离子电池等产品实施强制性产品认证管理的公告

    按照 国务院办公厅关于深化电子电器行业管理制度改革的意见 国办发 2022 31号 有关要求 市场监管总局决定对电子电器产品使用的锂离子电池和电池组 移动电源以及电信终端产品配套用电源适配器 充电器 以下统称新纳入产品 实施强制性产品认证
  • 树莓派安装卸载软件命令apt-get

    apt get命令用法 1 安装软件 apt get install 软件名 2 卸载软件但不删除配置 apt get remove 软件名 3 卸载软件并且删除相关配置 apt get purge 软件名 4 更新数据库 apt get
  • Python简单的用户交互

    death age 80 name input your name input 接受的所有数据都是字符串 即便你输入的是数字 但依然会被当成字符串来处理 age input your age print type age int integ
  • TS复习----TS中的接口

    目录 概念 属性接口 函数类型接口 可索引的类型 类类型接口 接口继承 概念 接口的作用 在面向对象编程中 接口是一种规范的定义 他定义了行为和动作的规范 在程序设计里面 接口起到了一种限制和规范的作用接口定义了某一批类所需要遵守的规范 接
  • windos怎么查看oracle进程,怎么样查看哪个进程使用了哪个CPU

    1 在系统维护的过程中 随时可能有需要查看 CPU 使用率 并根据相应信息分析系统状况的需要 在 CentOS 中 可以通过 top 命令来查看 CPU 使用状况 运行 top 命令后 CPU 使用状态会以全屏的方式显示 并且会处在对话的模
  • java:方法引用无效-IDEA 社区版 lombok插件报错解决

    IDEA 社区版 lombok插件报错 java 方法引用无效 报错信息1 java 方法引用无效 找不到符号 符号 方法 getId 位置 类 com xxx xxxx className 打开problem面板向上找你就会发现还有一个报
  • 天九共享赋能新基建项目,易保全区块链存证助力应用场景多点开花

    在国家政策的大力扶持下 中国的区块链发展势力愈发迅猛 作为数字经济的基石 区块链技术发挥着重要作用 据数据显示 2020年全球区块链专利累计达到5 14万件 其中中国累计申请了3 01万件 占全球总数的58 同时 近期发布的 北京城市副中心
  • C语言写网络爬虫总体思路

    使用C语言编写爬虫可以实现网络数据的快速获取和处理 适用于需要高效处理海量数据的场景 与其他编程语言相比 C语言具有较高的性能和灵活性 可以进行底层操作和内存管理 适合处理较复杂的网络请求和数据处理任务 但是 使用C语言编写爬虫也存在一些挑
  • 2个不错的通配符比较函数

    近日在和朋友讨论 MaskMatch 时偶得2个不错的算法 函数1 只支持 模糊匹配 速度比采用递归算法的快近2倍 比TMask方法快很多 函数2 完全支持正规表达式 速度于之前的相同 不会正规表达式的朋友慎用 Funtion 1 Chec
  • mysql error1215

    You have a foreign key constraint operating in both directions When you re creating the tables the first to be created w
  • 基于STM32单片机的智能鱼缸的设计

    一 任务简介 本次以STM32F103单片机为核心 设计了一款智能鱼缸 能够实现智能温控 智能换水 智能供氧 智能喂食等功能 利用单片机作为主控制器 使用Keil软件进行程序开发 除STM32F103C8T6最小系统外 系统还包含温度传感