版本协议

Public Domain

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

创建时间:4个月前

72 0

描述

<h2>题目要求</h2> <p><span style="color:#999AAA">基于STM32的桌面温湿度检测仪设计</span></p> <h2>题目分析</h2> <p><span style="color:#999AAA">本设计使用了STM32G030K6T6芯片为主处理器,盛思锐的SHT40温湿度传感器模块为数据采集前端模块,将采集到的温湿度数据通过SN74HC595PWR移位寄存器送入3位数码管显示,上面的三位数码管显示温度值,下面的三个数码管显示湿度值。</span></p> <h2></h2> <p><span style="color:#999AAA">总体设计方案框图:</span></p> <pre><code class="language-mermaid">graph TD 主芯片STM32 &lt;--> 温湿度采集</code></pre> <h2>原理图设计说明</h2> <p><span style="color:#999AAA">原理图的设计主要包括主处理器芯片、数码管显示电路、温湿度采集电路和电源电路等内容,主要模块介绍如下: 原理图如下所示: <img src="//image.lceda.cn/oshwhub/4485b09a86ce4e0b8fb17c89572179cc.png" alt="桌面温湿度检测仪原理图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口进行读取,但是大多数情况都是使用分压电阻来进行,这里我也不做改动。</span></p> <h2>PCB设计说明</h2> <p><span style="color:#999AAA"> 本项目的设计的温湿度仪,整体上尺寸比较小,非常适合摆放在桌面上,所使用的元器件尺寸也比较小,整体上只有两节5号电池的大小,这为焊接增加了一定的难度,尤其是对于初学者,具有一定的挑战性,比如SN74HC595PWR和STM32G030K6T6的引脚都比较小,焊接时一定要仔细,小心翼翼。 在进行布局时,首先要摆放好两节电池壳的位置,并且把他们摆放在背面,在正面摆放元器件。元器件的摆放首先放置好较大的数码管位置,然后在摆放三个移位寄存器和STM32芯片的位置,剩下的电阻、电容和LED灯灯元器件相对简单一点,还需要注意的是按键,下载器SWD要摆放在边缘位置,便于后面的调试。 在布线方面,要注意走线一定要注意整齐,尤其是多条线并排走的时候一定要对齐位置,否则会非常乱,也不便于后面的维护。这里地线设置为30mil,电源线设置为15mil,信号线设置为10mil,最后尽量双面铺铜。</span></p> <p><img src="//image.lceda.cn/oshwhub/3660033198a44d5782c8ef36f88901aa.png" alt="温湿度仪PCB图.png"></p> <h2>软件说明</h2> <p><span style="color:#999AAA"> <strong>代码块:</strong></span></p> <pre><code>/* 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(&amp;hadc1); //ADC校准 HAL_ADC_Start(&amp;hadc1); //启动ADC转换 HAL_ADC_PollForConversion(&amp;hadc1, 50); //等待转换完成,50为最大等待时间,单位为ms if(HAL_IS_BIT_SET(HAL_ADC_GetState(&amp;hadc1), HAL_ADC_STATE_REG_EOC)) { ADC_Value = HAL_ADC_GetValue(&amp;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 */ } </code></pre> <h2>实物展示说明</h2> <p><span style="color:#999AAA">提示:作品的实物图片,图片可以加上说明。</span></p> <p><img src="//image.lceda.cn/oshwhub/2f744bf1a79e4aa3bcf6ee64f5f76a53.jpg" alt="温湿度仪.jpg"></p> <h2>注意事项</h2> <p><span style="color:#999AAA"> 1、一定要选择好元器件,尤其是电阻电容的数值。 2、STM32处理器和595移位寄存器的焊接一定要小心。 3、软件的调试要结合硬件工具,最好能有万用表和示波器。</span></p> <h2>演示视频</h2> <p><span style="color:#999AAA">参考附件。</span></p> <h2>其它附件上传</h2> <p><span style="color:#999AAA">程序参考附件。 </span></p>
  • 温湿度仪介绍.mp4

  • 作品演示.mp4

  • 制作心得.mp4

文档

BOM

暂无

附件

附件名 下载
温湿度仪介绍.mp4
作品演示.mp4
制作心得.mp4
Tem_Humprogram.7z

成员

评论(0)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow