发作品签到
专业版

#第九届立创电赛#桌面温湿度仪

工程标签

111
0
0
0

简介

本项目设计一款桌面温湿度仪,项目使用了STM32G030K6T6芯片作为主控芯片,通过盛思锐的SHT40温湿度传感器检测温湿度,通过SN74HC595PWR数据缓存,将采集到的温湿度送入数码管显示。

简介:本项目设计一款桌面温湿度仪,项目使用了STM32G030K6T6芯片作为主控芯片,通过盛思锐的SHT40温湿度传感器检测温湿度,通过SN74HC595PWR数据缓存,将采集到的温湿度送入数码管显示。

开源协议

Public Domain

创建时间:2024-07-09 16:10:40更新时间:2024-08-01 09:04:54

描述

题目要求

基于STM32的桌面温湿度检测仪设计

题目分析

本设计使用了STM32G030K6T6芯片为主处理器,盛思锐的SHT40温湿度传感器模块为数据采集前端模块,将采集到的温湿度数据通过SN74HC595PWR移位寄存器送入3位数码管显示,上面的三位数码管显示温度值,下面的三个数码管显示湿度值。

总体设计方案框图:

graph TD
主芯片STM32 <--> 温湿度采集

原理图设计说明

原理图的设计主要包括主处理器芯片、数码管显示电路、温湿度采集电路和电源电路等内容,主要模块介绍如下:
原理图如下所示:
桌面温湿度检测仪原理图PDF.png
主控芯片介绍:
桌面温湿度仪项目使用STM32G030K6T6芯片作为主控芯片,该芯片使用Arm Cortex-M0+内核;最大主频64Mhz;具有32KB的Flash以及8K的SRAM,供电电压在2.0V~3.6V之间,可用来采集和控制温湿度数据。
数码管模块:
本项目使用了2个三位的数码管,数据输入部分采用以为寄存器SN74HC595,其引脚设置为推挽输出、快速模式。SN74HC595驱动时序时,首先输入高电平或低电平到SER引脚中,随后产生一个SCLK的上升沿,将数据发送出去,这里是8位数据移位寄存器,所以循环8次,最后一个RCLK的上升沿将数据锁存住,保持不变,直到下一次发送。
温湿度模块采集:
桌面温湿度仪上使用一个SHT40温湿度传感器模块用于检测温湿度,SHT40采用IIC进行通信。模块上R8、R9是IIC通信的上拉电阻,起到“线与”的作用,支持挂载多个设备。
电源电路:
桌面温湿度仪使用两节5号电池用于整个系统供电,这里加入一个分压电阻用于检测电池电压。使用两个10K对电压值进行分压,然后通过单片机ADC进行电压读取,对于3V电池,其实可以直接输入到单片机的IO口进行读取,但是大多数情况都是使用分压电阻来进行,这里我也不做改动。

PCB设计说明

本项目的设计的温湿度仪,整体上尺寸比较小,非常适合摆放在桌面上,所使用的元器件尺寸也比较小,整体上只有两节5号电池的大小,这为焊接增加了一定的难度,尤其是对于初学者,具有一定的挑战性,比如SN74HC595PWR和STM32G030K6T6的引脚都比较小,焊接时一定要仔细,小心翼翼。 在进行布局时,首先要摆放好两节电池壳的位置,并且把他们摆放在背面,在正面摆放元器件。元器件的摆放首先放置好较大的数码管位置,然后在摆放三个移位寄存器和STM32芯片的位置,剩下的电阻、电容和LED灯灯元器件相对简单一点,还需要注意的是按键,下载器SWD要摆放在边缘位置,便于后面的调试。 在布线方面,要注意走线一定要注意整齐,尤其是多条线并排走的时候一定要对齐位置,否则会非常乱,也不便于后面的维护。这里地线设置为30mil,电源线设置为15mil,信号线设置为10mil,最后尽量双面铺铜。

温湿度仪PCB图.png

软件说明

**代码块:**
/* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_ADC1_Init();
  /* USER CODE BEGIN 2 */
	HAL_Delay(100);
  SN74HC595_Send_Data(SN_DIG,0x00);
  SN74HC595_Send_Data(SN_LED1,0x00);
  SN74HC595_Send_Data(SN_LED2,0x00);
	
	HAL_ADCEx_Calibration_Start(&hadc1);    //ADC校准
	
	HAL_ADC_Start(&hadc1);     //启动ADC转换
	HAL_ADC_PollForConversion(&hadc1, 50);   //等待转换完成,50为最大等待时间,单位为ms
	if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))
	{
		ADC_Value = HAL_ADC_GetValue(&hadc1);   //获取AD值
		Data = (ADC_Value*3.3f)/4095.0f;
	}
  /* USER CODE END 2 */
	Vol_Value = (uint16_t)(Data * 100)*2;
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
		ShowNum(1,1,Vol_Value / 100);
		ShowNum(1,2,Vol_Value /10 %10);
		ShowNum(1,3,Vol_Value % 10);
    /* USER CODE BEGIN 3 */
  }

实物展示说明

提示:作品的实物图片,图片可以加上说明。

温湿度仪.jpg

注意事项

1、一定要选择好元器件,尤其是电阻电容的数值。 2、STM32处理器和595移位寄存器的焊接一定要小心。 3、软件的调试要结合硬件工具,最好能有万用表和示波器。

演示视频

参考附件。

其它附件上传

程序参考附件。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
温湿度仪介绍.mp4
0
2
作品演示.mp4
0
3
制作心得.mp4
0
4
Tem_Humprogram.7z
0
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航