一、任务简介

       本次以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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐