版本协议

Public Domain

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

创建时间:11个月前

165 0

描述

<div> <p><strong>描述</strong></p> <p><strong>1</strong><strong>、项目功能介绍</strong></p> <p> </p> <p>本次训练营的桌面温湿度仪项目使用<strong>STM32G030K6T6</strong>芯片作为主控芯片,这款芯片使用的是Arm Cortex-M0+内核;最大主频64Mhz。</p> <p>具有32KB的Flash以及8K的SRAM,供电电压在2.0V~3.6V之间。</p> <p>使用这款芯片可以通过STM32CubeMX软件进行基础代码生成与配置,图形化的方式可以快速上手使用芯片,对我这种新手小白非常友好。</p> <p>此次的温湿度检测仪可以实现高精度的温湿度检测,采用低功耗的模式运行,节能省电。</p> <p> </p> <p><strong>2</strong><strong>、硬件部分:</strong></p> <p> </p> <p><strong>2-1</strong><strong>整体原理图设计:</strong></p> <p><strong><img src="//image.lceda.cn/oshwhub/4c8fe825c403456bbe53069713f8f605.png" alt="" width="554" height="393"></strong></p> <p>                                                                  项目整体原理图</p> <p> </p> <p><strong>2-2</strong><strong>主控电路:</strong></p> <p><img src="//image.lceda.cn/oshwhub/24ff0b86f1354996aeca1c2d109da351.png" alt="" width="554" height="227"></p> <p>主控MCU部分电路</p> <p>主控MCU的供电通过L1的磁珠和C2的电容,达到滤波的目的,使MCU获得干净的电源,主控的外围引脚连接按照产品手册中的引脚定义进行使用,这里需要注意的是有专门功能的引脚要专门使用其功能,列如传感器的接入要使用I方C的功能,就要用带有I方C的功能引脚。这样可以方便后期的引脚使用。</p> <p> </p> <p><strong>2-3</strong><strong>晶振电路:</strong></p> <p> <img src="//image.lceda.cn/oshwhub/f0b76f3615e84585bbca275a759b145e.png" alt="" width="304" height="319"></p> <p>晶振电路</p> <p>使用32.768KHz的时钟晶振来给RTC提供计时,可以使温湿度检测仪有计时功能,方便后期的功能拓展。</p> <p> </p> <p><strong>2-4</strong><strong>温湿度传感器电路:</strong></p> <p><strong><img src="//image.lceda.cn/oshwhub/84e3811b80c34a6b951d0a5272a6ea29.png" alt="" width="368" height="320"></strong></p> <p>温湿度传感器模块电路</p> <p>本次项目的核心部件,使用SHT40温湿度传感器模块,SHT40是盛思锐生产的第四代,高精度,超低功耗的16位相对湿度和温度传感器,主要特性参数:相对湿度精度可以达到:±1.5%RH,温度精度可以达到:±0.1℃,平均的工作电流:0.4μA,空闲电流:80nA,工作范围:0-100%RH,-40-125℃,可以满足日常的温湿度测量需求。</p> <p><img src="//image.lceda.cn/oshwhub/7ac6befb7398458b9bbe724d520a1df2.jpg" alt="" width="517" height="453"></p> <p>SHT40温湿度模块</p> <p>因为SHT40非常小,焊接难度很高,所以这里直接使用的本次大赛专供的SHT40模块,方便使用,这里需要特别注意的一点就是,SHT40温湿度模块的引脚和插座是要对应插上的,如果插反了的话,轻则影响温湿度模块的测量,重则烧毁模块!</p> <p><strong>2-5</strong><strong>三态输出</strong><strong> 8 </strong><strong>位移位寄存器电路:</strong></p> <p><strong><img src="//image.lceda.cn/oshwhub/d09c419a5e47468db21c60d292926487.png" alt="" width="554" height="148"></strong></p> <p>寄存器电路</p> <p>为了点亮多个数码管这边选用了SN74HC595PWR寄存器来连接数码管进行显示,通过MCU的单个引脚就能实现对LED数码管的多个LED进行控制。这里需要注意的是,在后期焊接的时候如果数码管显示不全,或者显示有问题,那么大概率就是寄存器的引脚连锡或者没焊接好的问题,需要重新焊接并检查引脚焊接情况。</p> <p> </p> <p><strong>2-6</strong><strong>唤醒按键电路:</strong></p> <p><strong><img src="//image.lceda.cn/oshwhub/04eedbebd4ec42429329df52c3b2191f.png" alt="" width="369" height="102"></strong></p> <p>唤醒按键电路</p> <p>为了实现温湿度检测仪的低功耗,节能省电的长时间运行,使用专门的唤醒按键对其进行唤醒,这样可以在需要温湿度显示的时候唤醒,让其显示温湿度,在不需要的时候可以进入低功耗的待机状态。这里需要注意的是按键在布局的时候要放置在靠近板框边缘,这样方便按键的使用。</p> <p> </p> <p><strong>2-7</strong><strong>测试</strong><strong>LED</strong><strong>电路:</strong></p> <p><strong><img src="//image.lceda.cn/oshwhub/d6ba2def4dea4d239e0a495ae3f37434.png" alt="" width="368" height="186"></strong></p> <p>测试LED电路</p> <p>为了方便后期软件的调试,使用两颗LED来进行软件部分的代码调试使用测试。</p> <p> </p> <p><strong>2-8</strong><strong>数码管电路:</strong></p> <p><strong><img src="//image.lceda.cn/oshwhub/18ba9351098a48ee9c693792dd2ce452.png" alt="" width="554" height="132"></strong></p> <p>数码管电路</p> <p>数码管这边使用了两个0.28寸共阴极3位数码管,来分别显示温度和湿度,数码管LED的颜色有很多,可以根据自己的喜好选择。</p> <p> </p> <p><strong>2-9</strong><strong>电池电量测量电路:</strong></p> <p><strong><img src="//image.lceda.cn/oshwhub/4effc5ad479c4506a338e5898b821ba1.png" alt="" width="306" height="188"></strong></p> <p>电池测量电路</p> <p>通过对电池电压的采集,来测量电池的电压,可以为后期显示电量提供拓展功能,不过在电量测量的时候需要给MCU提供一个基准电压来供其比较测量电量,这边没有标准的基准来供其比较,所以电量的测量比较不准。如果需要准确的电量测量可以考虑更换自带基准电压ADC测量的MCU。</p> <p> </p> <p><strong>2-10</strong><strong>电池电路:</strong></p> <p><strong><img src="//image.lceda.cn/oshwhub/ff934c5eb33042b681d71ee9a60e0067.png" alt="" width="371" height="187"></strong></p> <p>电池电路</p> <p>电池供电部分使用两节7号电池为整体系统供电,为了防止电池反接烧坏IO口,这边使用WST3401来实现防反接保护,保护芯片的IO口。</p> <p><strong>2-11</strong><strong>调试接口:</strong></p> <p><strong><img src="//image.lceda.cn/oshwhub/43dd785d5bac41b0938d38e1c2a8ff5d.png" alt="" width="554" height="223"></strong></p> <p>调试下载接口</p> <p>这边通过外接SWD下载调试接口实现对整体项目的软件调试部分。这里需要注意的是,为了方便后期外壳的安装,这个1X4p的排针可以不用焊接,用烧录器夹持下载烧录代码。</p> <p><strong>4</strong><strong>、软件部分</strong></p> <p>代码直接使用的陈工的历程,只对其中的按键按键唤醒进行了修改。</p> <p> 代码具体修改部分:</p> <p><img src="//image.lceda.cn/oshwhub/395bfd0602044357a3b19eb00c566c1a.png" alt="" width="554" height="442"></p> <p>为了使温度和湿度的数值同时显示在数码管上,我们需要调整中断服务例程中的逻辑,以便每次中断都更新温度和湿度的显示,而不是交替显示。</p> <p>在这个版本中,我做了以下更改:</p> <ol> <li>移除了updata_flag用于切换温度和湿度显示的条件判断,而是每次中断服务例程触发时都更新温度和湿度的显示。</li> <li>保留了updata_flag和sleep_flag用于控制休眠模式的逻辑,但在显示更新部分不再使用updata_flag。</li> </ol> <p>这样修改后,温度和湿度的数值将每次中断时都显示在数码管上,而不会出现交替显示的情况。</p> <p>同时可以修改数码管显示的持续时间,根据自己的喜好选择多久让数码管进入休眠模式。我这边设置的时间是数码管点亮5秒后进入休眠模式。</p> <p>烧录使用stlink进行烧录,接四根线进行烧录即可</p> <p>至此,完成了项目所有工作</p> </div>

文档

BOM

暂无

附件

附件名 下载
4542201b0996cfb6e281ddb3da1e12c.jpg
1a83ddbaadfcb347d5638099a0d2259.jpg
6065d6bf51f1114613205214071e283.jpg

评论(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