毕业设计|基于STM32单片机的水位浑浊度检测设计

1、项目简介

1.1 系统构成

本设计由STM32单片机+蜂鸣器报警电路+OLED显示电路+水位监测电路+TSW-30浑浊度监测电路+电源电路组成。

1.2 系统功能

  • 1、 通过stm32单片机,实时水位、浑浊度数据,并将数据实时显示在OLED液晶显示屏上。
  • 2、水位超过设置的阈值,蜂鸣器报警
  • 3、浑浊度超过设置的阈值,蜂鸣器报警

2、部分电路设计

2.1 stm32f103c8t6单片机最小系统电路设计

STM32F103C8T6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装。

具体参数为:

  • 64K x 8bit的Flash
  • 20K x 8bit的SRAM
  • 37个GPIO,分别为PA0-PA15、PB0-PB15、PC13-PC15、PD0-PD1
  • 2个12bit ADC合计12路通道,外部通道:PA0到PA7以及PB0到PB1
  • 内部通道:温度传感器通道ADC_Channel_16和内部参考电压通道ADC_Channel_17
  • 4个16bit定时器/计数器,分别为TIM1、TIM2、TIM3、TIM4
  • 2个看门狗定时器(独立看门狗IWDG、窗口看门狗WWDG)
  • 1个24bit向下计数的滴答定时器systick
  • 2个IIC,2个SPI,3个USART,1个CAN
  • 内部8MHz时钟HSI最高可倍频到64MHz,外部8MHz时钟HSE最高可倍频到72MHz

Cortex-M3是ARM公司推出的基于ARMv7架构的MCU内核,ST公司在此内核的基础上完成了USART、DMA、GPIO等外围电路的设计。

STM32单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。

单片机最小系统原理图如下图所示:

实物图:

2.2 OLED液晶显示电路设计

IIC-OLED模块是一种高品质、高性能的显示屏,采用了有机发光二极管(OLED)技术,通过四个针脚控制电源和信号来实现对显示内容的控制。该模块具有以下特点:

  • 低功耗:OLED技术具有自发光特性,因此相比其他类型的显示屏,该模块具有更低的功耗,延长了电池寿命。
  • 高可靠性:该模块采用了高品质的材料和工艺,严格把控生产流程,保证了产品的稳定性和可靠性,适用于各种环境下的使用。
  • 简单易用:该模块通过四个针脚进行控制,接口简单,易于集成到各种设备中。

OLED的定义和优势:

  • OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。
  • LCD都需要背光,而OLED不需要,因为它是自发光的。这样同样的显示,OLED效果要来得好一些。以目前的技术,OLED的尺寸还难以大型化,但是分辨率确可以做到很高。

电路设计
在这里插入图片描述

OLED模块实物图:

2.2 蜂鸣器报警电路设计

  • 蜂鸣器是一种将电信号转换成声音信号的器件。按驱动方式分类,可以分为有源蜂鸣器和无源蜂鸣器。有源蜂鸣器内部自带震荡源,通直流电就能发声。无源蜂鸣器内部不带震荡源,需要控制震荡脉冲的频率,就能发出不同频率声音。

  • 电路图如下:

  • 蜂鸣器实物图

2.3 浑浊度检测传感器(TSW-30)

  • TS 浊度传感器是 GE 公司开发的一种专门用于家电产品的低成本传感器,该模块价格低廉、使用方便、测量精度高可以用于洗衣机、洗碗机等产品的水污浊程度的测量;也可以用于工业现场控制,环境污水采集等需要浊度检测控制的场合。

  • 这款浊度传感器利用光学原理,通过溶液中的透光率和散射率来综合判断浊度情况。传感器内部是一个红外线对管,当光线穿过一定量的水时,光线的透过量取决于该水的污浊程度,水越污浊,透过的光就越少。光接收端把透过的光强度转换为对应的电流大小,透过的光多,电流大,反之透过的光少,电流小。浊度传感器模块将传感器输出的电流信号转换为电压信号,通过单片机进行AD 转换数据处理。

  • 该款模块具有模拟量和数字量输出接口。模拟量可通过单片机 A/D 转换器进行采样处理,以获知当前水的污浊度。数字量可通过模块上的电位器调节触发阈值,当浊度达到设置好的阈值后,D1 指示灯会被点亮,传感器模块输出由高电平变成低电平,单片机通过监测电平的变化,判断水的浊度是否超标,从而预警或者联动其他设备。

电路图:

  • TS-300B浑浊度模块实物图:

3、部分代码展示

3.1 OLED的初始化

//OLED的初始化
void OLED_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	 //使能A端口时钟
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;	 
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; 		 //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz
 	GPIO_Init(GPIOB, &GPIO_InitStructure);	  //初始化PA0,1
 	GPIO_SetBits(GPIOB,GPIO_Pin_6);

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;	 
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz
 	GPIO_Init(GPIOB, &GPIO_InitStructure);	  //初始化PA2
 	GPIO_SetBits(GPIOB,GPIO_Pin_7);
	
//	OLED_RES_Clr();
//	delay_ms(200);
//	OLED_RES_Set();
	
	OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel
	OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
	OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
	OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
	OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control register
	OLED_WR_Byte(0xCF,OLED_CMD);// Set SEG Output Current Brightness
	OLED_WR_Byte(0xA1,OLED_CMD);//--Set SEG/Column Mapping     0xa0左右反置 0xa1正常
	OLED_WR_Byte(0xC8,OLED_CMD);//Set COM/Row Scan Direction   0xc0上下反置 0xc8正常
	OLED_WR_Byte(0xA6,OLED_CMD);//--set normal display
	OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
	OLED_WR_Byte(0x3f,OLED_CMD);//--1/64 duty
	OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset	Shift Mapping RAM Counter (0x00~0x3F)
	OLED_WR_Byte(0x00,OLED_CMD);//-not offset
	OLED_WR_Byte(0xd5,OLED_CMD);//--set display clock divide ratio/oscillator frequency
	OLED_WR_Byte(0x80,OLED_CMD);//--set divide ratio, Set Clock as 100 Frames/Sec
	OLED_WR_Byte(0xD9,OLED_CMD);//--set pre-charge period
	OLED_WR_Byte(0xF1,OLED_CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
	OLED_WR_Byte(0xDA,OLED_CMD);//--set com pins hardware configuration
	OLED_WR_Byte(0x12,OLED_CMD);
	OLED_WR_Byte(0xDB,OLED_CMD);//--set vcomh
	OLED_WR_Byte(0x30,OLED_CMD);//Set VCOM Deselect Level
	OLED_WR_Byte(0x20,OLED_CMD);//-Set Page Addressing Mode (0x00/0x01/0x02)
	OLED_WR_Byte(0x02,OLED_CMD);//
	OLED_WR_Byte(0x8D,OLED_CMD);//--set Charge Pump enable/disable
	OLED_WR_Byte(0x14,OLED_CMD);//--set(0x10) disable
	OLED_Clear();
	OLED_WR_Byte(0xAF,OLED_CMD);
}

3.2 TSW-30浑浊度传感器初始化

void TSW30Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE );	  //使能ADC1通道时钟

	//PA0 作为模拟通道输入引脚                         
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;		//模拟输入引脚
	GPIO_Init(GPIOA, &GPIO_InitStructure);
}	

3.3 获取水位传感器电压值

//读取水位传感器的电压值
float WaterGetValueV(void)
{
  uint16_t value = 0;
  float water_v = 0;
  
  value = Get_Adc_Average(WATER_ADC_CH1,WATER_READ_TIMES);	//读取ADC值
  
  water_v = (float)value * (3.3 / 4096);
  
  return water_v;
}
### 回答1: 可以使用DHT11或DHT22等温湿度传感器测量室内温度,并将数据通过串口或者其他通信方式传输给STM32单片机,再通过程序处理并显示到OLED屏幕或其他输出设备上。同时,为了提高温度检测的精度,可以在代码中加入滤波算法等优化措施。 ### 回答2: 室内温度检测系统是一种监测和控制室内温度的设备。本文主要介绍基于stm32单片机的室内温度检测系统的设计设计方案: 本系统主要由温度传感器、人机交互界面、温度控制器等组成。具体设计如下: 1.硬件设计 主控芯片采用stm32单片机,它具有充足的I/O口和存储空间,并能满足温度采集和控制的要求。温度传感器采用DS18B20数字温度传感器,它可以直接连接到单片机上。 2.软件设计 (1)温度采集程序:通过I/O口读取DS18B20数字温度传感器的信号。 (2)温度控制程序:根据室内温度大小,控制室内的空调、加热和通风等设备。可设置温度上下限,当温度达到上限时,自动关闭空调、开启通风;当温度达到下限时,自动开启加热设备。 (3)人机交互界面:可以设置室内温度,显示当前室内温度和设置温度。 (4)通信程序:可通过WiFi或者蓝牙等方式与其他设备进行通信。同时将温度数据上传到云端,实现远程监控。 总结: 基于stm32单片机的室内温度检测系统,通过采集温度数据,实现自动调控室内温度,提高生活舒适度,降低能源消耗。同时通过人机交互界面和远程监控实现了便捷的操作和管理。 ### 回答3: 室内温度检测系统是近年来越来越受欢迎的智能家居设备之一。基于STM32单片机的室内温度检测系统具有成本低、功耗低、体积小、性能强等优势,可以满足人们对智能化、便捷化的需求。 室内温度检测系统由STM32单片机、温度传感器、显示屏、继电器、LED等元件组成。温度传感器用于感测室内温度,将温度数值转换成电信号输出给STM32单片机单片机传感器采集的数据进行处理,判断室内温度是否超过设定的阈值,如果温度过高,则控制继电器打开空调或风扇等降温设备,如果温度过低,则控制继电器打开暖气或加热器等加温设备。同时,单片机还可以将温度数据显示在屏幕上,方便用户查看。 在设计过程中,首先需要考虑传感器的选择。目前市面上常用的温度传感器有NTC热敏电阻、PT100电阻温度计、DS18B20数字温度传感器等。为了保证系统的成本和精度,可以选择DS18B20数字温度传感器。其次,需要考虑单片机的选择,STM32F1系列的单片机无论在性能和价格方面都很合适,同时也拥有丰富的外设和周边支持。在软件设计方面,可以采用KEIL或IAR等集成开发环境,编写C语言程序实现温度数据采集、处理、控制和显示等功能。 总体来说,基于STM32单片机的室内温度检测系统在构建简单、使用方便、性能优越的同时,还具有较低的成本和功耗等优点,为智能家居的发展做出了积极贡献。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式基地

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值