专业版
#第九届立创电赛#【7243012A】温湿度检测仪

创建时间:4个月前

592 7

描述

<h1><strong>目录</strong></h1> <ul> <li>1 项目概述 <ul> <li>1.1 项目功能介绍</li> <li>1.2 实物展示</li> <li>1.3 优化建议</li> </ul></li> <li>2 项目属性&开源协议 <ul> <li>2.1 项目属性</li> <li>2.2 开源协议</li> </ul></li> <li>3 硬件部分 <ul> <li>3.1 原理图</li> <li>3.1.1 主控部分</li> <li>3.1.2 传感器部分</li> <li>3.1.3 移位寄存器</li> <li>3.1.4 显示部分</li> <li>3.1.5 电源部分</li> <li>3.2 PCB <ul> <li>3.2.1 页面布局</li> <li>3.2.2 Layout注意事项</li> <li>3.2.3 焊接</li> </ul></li> <li>3.3 外壳 </li> </ul></li> <li>4 软件部分</li> <li>5 BOM清单 </li> <li>6 大赛LOGO验证 </li> <li>7 演示视频</li> <li>写在最后的话 注:本来写了目录跳转,结果立创不支持,还得把相关部分删掉 <h2><strong>1 项目概述</strong></h2> <h3><strong>1.1 项目功能介绍</strong></h3> <p>该项目是基于<a href="https://item.szlcsc.com/549609.html?fromZone=s_s__%2522stm32g030k6t6%2522" target="_blank">STM32G030K6T6</a>的桌面温湿度检测仪。 传感器使用<a href="https://list.szlcsc.com/brand/506.html" target="_blank">瑞士盛思锐</a>的<a href="https://item.szlcsc.com/3188621.html?fromZone=s_s__" target="_blank">SHT40-AD1B</a>,该传感器有功耗低,高精度,小尺寸的优点,非常适合板载使用。 显示部分使用<a href="https://item.szlcsc.com/261987.html?fromZone=s_s__%252274hc595%2522" target="_blank">SN74HC595</a>+三位数码管。 电源部分使用4.2V锂电池。</p> <h3><strong>1.2 实物展示</strong></h3> <p><strong>正面</strong> <img src="//image.lceda.cn/oshwhub/f04a24719b7a4ea8a11a017fb868db1f.jpg" alt="正面.jpg"> <strong>背面</strong> <img src="//image.lceda.cn/oshwhub/3f0152bce7df4f3db7a4b575b7234b19.jpg" alt="背面.JPG"></p> <h3><strong>1.3 优化建议</strong></h3></li> <li>将电池电压映射到百分比并显示</li> <li>优化采样</li> <li>更改显示方式 <h2><strong>2 项目属性&开源协议</strong></h2> <h3><strong>2.1 项目属性</strong></h3> <p>该项目首次公开,在官方原理图和源码的基础上进行改进,未在别的比赛中获奖。</p> <h3><strong>2.2 开源协议</strong></h3> <p>开源协议使用GPL 3.0</p> <p>GPL 3.0:<a href="https://www.gnu.org/licenses/gpl-3.0.html" target="_blank">https://www.gnu.org/licenses/gpl-3.0.html</a></p> <h2><strong>3 硬件部分</strong></h2> <h3><strong>3.1 原理图</strong></h3> <h4><strong>3.1.1 主控部分</strong></h4> <p>主控使用STM32G030K6T6。 <img src="//image.lceda.cn/oshwhub/1d6a8701814047a984d97f6fcfddf298.png" alt="原理图_0.png"></p> <h4><strong>3.1.2 传感器部分</strong></h4> <p>传感器使用瑞士盛思锐的SHT40-AD1B,相比于模块,需要增加滤波电容C1和总线上拉电阻R2R3。 <img src="//image.lceda.cn/oshwhub/3ab0508a208a4db28253a6594f1972a4.png" alt="原理图_1.png"></p> <h4><strong>3.1.3 移位寄存器</strong></h4> <p>数码管移位寄存器使用74HC595。 <img src="//image.lceda.cn/oshwhub/e16a89edc4b94f739f309eece812ea8b.png" alt="原理图_2.png"></p> <h4><strong>3.1.4 显示部分</strong></h4> <p>显示部分采用0.56寸三位数码管。 <img src="//image.lceda.cn/oshwhub/99b93f04d35a456fbb69a853c84ae2d6.png" alt="原理图_3.png"> 原使用的是立创商城购买的(如图一),买了六个,最后只有一个剩下,于是只好在某宝购买(如图二),价格是图一的四分之一,焊接温度稍微高一点也完全没问题,不像某些一样,一焊就坏,还死贵死贵的。 </p> </li> </ul> <p><img src="//image.lceda.cn/oshwhub/66283068feb94e12a2228dc93afe7a0c.png" alt="原理图_4.png"></p> <h4><strong>3.1.5 电源部分</strong></h4> <h5><strong>(1)电源框图</strong></h5> <p><img src="//image.lceda.cn/oshwhub/b6835aea6d7147bd9b37eadccf1cd520.png" alt="原理图_5.png"></p> <h5><strong>(2)锂电池充电电路</strong></h5> <p>相信大家对TP4056都不陌生,我就不做介绍了。 <img src="//image.lceda.cn/oshwhub/5c1f607729de403da3715ca1396b9470.png" alt="原理图_6.png"></p> <h5><strong>(3)LDO电路</strong></h5> <p>LDO使用RT9013-33GB。 <img src="//image.lceda.cn/oshwhub/4c21dd46f6fc4ca7a569450a0e6281cb.png" alt="原理图_7.png"> 这里注意,由于锂电池的电压在3.3-4.2V,故普通的LDO不行(如AMS1117-3.3),因为它们的压差太大了,在1V左右,而RT9013-33GB的压差较小,故选用RT9013-33GB。 此处使用ME6211C33也可以,两者电路基本相同,由于我手头RT9013-33GB更多(立创16-15薅的),而ME6211C33没几个了,故选用RT9013-33GB。 DC-DC效率更高,但成本有所提升,故不选用。</p> <h3><strong>3.2 PCB</strong></h3> <h4><strong>3.2.1 页面布局</strong></h4> <p><strong>正面</strong> <img src="//image.lceda.cn/oshwhub/2a45d43247024e738956da53fa0b71d9.png" alt="PCB_0.png"> <strong>背面</strong> <img src="//image.lceda.cn/oshwhub/87912e27fe1148cc9e467f4b72268ad6.png" alt="PCB_1.png"></p> <p><strong>采用1MM板材,整体尽量使用贴片,电阻电容均使用0603。</strong></p> <h4><strong>3.2.2 Layout注意事项</strong></h4> <h5><strong>(1) 铺铜禁止区域</strong></h5> <p><img src="//image.lceda.cn/oshwhub/1d24a66268bf42509b8165074a5a48be.png" alt="PCB_2.png"></p> <h5><strong>(2) 禁止走线区域</strong></h5> <p><img src="//image.lceda.cn/oshwhub/f2d422434a3646558f3873931e128ee1.png" alt="PCB_3.png"></p> <h5><strong>(3) 元件放置</strong></h5> <p><img src="//image.lceda.cn/oshwhub/6a26aa5690ee4933910a6a2a9531d382.png" alt="PCB_4.png"> 传感器的放置建议 <img src="//image.lceda.cn/oshwhub/d9815c72f8b44cd3992c6baeb47eb793.png" alt="PCB_5.png"></p> <h4><strong>3.2.3 焊接</strong></h4> <p>用锡膏和焊油(如图一),然后用加热台(如图二)和热风枪进行贴片焊接,然后使用电烙铁焊接插件,我的加热台损坏了,所以使用恒温磁力加热器,温度也有两三百度,足够了。 <img src="//image.lceda.cn/oshwhub/c1f3b2fc74ca47c99b1fb73c817cfc9c.png" alt="PCB_6.png"> 焊接成品 <img src="//image.lceda.cn/oshwhub/3958df7dcabc462694d9ed25695e1d5f.png" alt="PCB_7.png"></p> <h3><strong>3.3 外壳</strong></h3> <p>外壳部分采用2MM亚克力。 <img src="//image.lceda.cn/oshwhub/81beb1df57784683b10a9587a93a0e3e.png" alt="PCB_面板_2024-07-28.png"> <img src="//image.lceda.cn/oshwhub/9abe2a51f6d948d9a9575c8a8ce59b29.png" alt="外壳_0.png"> 使用单刃锥形钻头(如图一)在亚克力上开出四个沉孔(如图二),由于我使用的是手电钻,故使用单刃。 <img src="//image.lceda.cn/oshwhub/098384bf2ca4479690aed541e8b17722.png" alt="外壳_1.png"> 将M3-5MM沉头螺丝和M3-6MM铜柱进行组装。 <img src="//image.lceda.cn/oshwhub/543f440382ed42cbaf5975d9c792e330.png" alt="外壳_3.png"></p> <h2><strong>4 软件部分</strong></h2> <p>由于本人水平有限,如有错误,请多多指出 </p> <p>为了实现短按开机,再次短按实现功能切换,长按关机的功能,我在<code>gpio.c</code>中添加了以下代码,以实现长短按判定。 0.1s-1s为短按,1s以上为长按</p> <pre><code>void Key_scan(void) { uint8_t val = HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5); static uint16_t count=0; if (!val)//记录时间 { count++; } else { if(count>100) { device_paramter.KeyScan = 2;//长按 } else if(count>10 &amp;&amp; count&lt;100) { device_paramter.KeyScan = 1;//短按 } count=0; } } </code></pre> <p>为了防止短按开机的同时判定了Key_scan短按,我在主循环中添加了延时。 <code>HAL_Delay(150);</code> 相应的,<code>mian.c</code>中也要进行修改。</p> <pre><code>if(device_paramter.KeyStatus == KEY_SHAKE_STATE) { HAL_Delay(150); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5) == GPIO_PIN_RESET) { while(1) { device_paramter.sleepStatus = 0;//清除休眠标志 while(device_paramter.KeyScan == 0) { SHT40_Read_RHData(&amp;temperature,&amp;humidity);//读取温湿度 device_paramter.Temp = temperature * 10;//放大温湿度 device_paramter.Humi = humidity * 10; device_paramter.Dispiay_Type = 1; HAL_TIM_Base_Start_IT(&amp;htim14);//开始定时器,显示数据 Key_scan( ); } if(device_paramter.KeyScan == 2) { device_paramter.KeyStatus = KEY_NO_PRESS;//清除按下标志 device_paramter.KeyScan = 0;//重置长短按判断 device_paramter.sleepStatus = 1;//启动休眠标志 break;//跳出循环 } else if(device_paramter.KeyScan == 1) { /*功能跳转*/ break;//跳出循环 } } } }</code></pre> <p>为了实现同时显示温湿度,我修改了<code>tim.c</code>的相关内容。</p> <pre><code>if(htim->Instance == TIM14) { if(device_paramter.Dispiay_Type == 1) { HAL_TIM_Base_Stop_IT(&amp;htim14); updata_flag++; if(updata_flag &lt;= 1000) { ShowNum(1,1,(device_paramter.Temp/100)); ShowNum(1,2,(device_paramter.Temp / 10 % 10)); ShowNum(1,3,device_paramter.Temp%10); ShowNum(2,1,(device_paramter.Humi/100)); ShowNum(2,2,(device_paramter.Humi / 10 % 10)); ShowNum(2,3,device_paramter.Humi%10); } else { updata_flag = 0; sleep_flag++; } __HAL_TIM_SetCounter(&amp;htim14,0); if(sleep_flag >= 1) { sleep_flag = 0; SN74HC595_Send_Data(SN_DIG,0xFF); SN74HC595_Send_Data(SN_LED1,0x00); SN74HC595_Send_Data(SN_LED2,0x00); } else { HAL_TIM_Base_Start_IT(&amp;htim14); } } }</code></pre> <p>功能跳转中,为了实现检测电池电压,增加了相关代码,但效果不好。</p> <pre><code>/* ADC采集电压*/ HAL_ADCEx_Calibration_Start(&amp;hadc1); 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); //获取ADC值 Data = (ADC_Value*3.324f)/4095.0f; //12位ADC,获取到的值在0到4095之间,参考电压3.3V() } ol_Value = (uint16_t)(Data * 100)*2; //由于用两个电阻分压 device_paramter.Dispiay_Type = 2; HAL_TIM_Base_Start_IT(&amp;htim14); device_paramter.KeyScan = 0; //重置长短按判断 device_paramter.sleepStatus = 0; //清除休眠标志 device_paramter.KeyStatus = KEY_NO_PRESS; //清除按下标志</code></pre> <h2><strong>5 BOM清单</strong></h2> <table> <tr> <th>名称</th> <th>位号</th> <th>封装</th> <th>数量</th> <th>型号</th> <th>品牌</th> <th>编号</th> <th>备注</th> <th>价金额</th> </tr> <tr> <td>STM32G030K6T6</td> <td>U1</td> <td>LQFP-32_L7.0-W7.0-P0.80-LS9.0-BL</td> <td>1</td> <td>STM32G030K6T6</td> <td>ST(意法半导体)</td> <td>C529331</td> <td>tb</td> <td>3.2</td> </tr> <tr> <td>10K</td> <td>R1,R2,R3,R10,R11</td> <td>R0603</td> <td>5</td> <td></td> <td></td> <td></td> <td>0.01/pcs</td> <td>0.05</td> </tr> <tr> <td>100nF</td> <td>C2,C1,C10,C12,C13,C14</td> <td>C0603</td> <td>6</td> <td></td> <td></td> <td></td> <td>0.01/pcs</td> <td>0.06</td> </tr> <tr> <td>32.768kHz</td> <td>X1</td> <td>OSC-SMD_L3.2-W1.5</td> <td>1</td> <td>SMD31327681252090</td> <td>JGHC(晶光华)</td> <td>C390740</td> <td>tb</td> <td>0.5</td> </tr> <tr> <td>12pF</td> <td>C4,C3</td> <td>C0603</td> <td>2</td> <td></td> <td></td> <td></td> <td>0.01/pcs</td> <td>0.02</td> </tr> <tr> <td>SHT40-AD1B-R2</td> <td>U2</td> <td>DFN-4_L1.5-W1.5-P0.8-TL-EP</td> <td>1</td> <td>SHT40-AD1B-R2</td> <td>Sensirion(瑞士盛思锐)</td> <td>C2909890</td> <td>tb</td> <td>8.6</td> </tr> <tr> <td>10uF</td> <td>C5,C6,C11</td> <td>C0603</td> <td>3</td> <td></td> <td></td> <td></td> <td>0.01/pcs</td> <td>0.03</td> </tr> <tr> <td>1K</td> <td>R4,R5,R8,R9</td> <td>R0603</td> <td>4</td> <td></td> <td></td> <td></td> <td>0.01/pcs</td> <td>0.04</td> </tr> <tr> <td>TP4056</td> <td>U3</td> <td>ESOP-8_L4.9-W3.9-P1.27-LS6.0-BL-EP</td> <td>1</td> <td>TP4056</td> <td>UMW(友台半导体)</td> <td>C725790</td> <td>lc-GX4056</td> <td>0.23</td> </tr> <tr> <td>LED_0603-R</td> <td>LED1</td> <td>LED_0603</td> <td>1</td> <td></td> <td></td> <td></td> <td>0.05/pcs</td> <td>0.05</td> </tr> <tr> <td>LED_0603-G</td> <td>LED2,LED3,LED4</td> <td>LED_0603</td> <td>3</td> <td></td> <td></td> <td></td> <td>0.05/pcs</td> <td>0.15</td> </tr> <tr> <td>SN74HC595PWR</td> <td>U4,U5,U6</td> <td>TSSOP-16_L5.0-W4.4-P0.65-LS6.4-BL</td> <td>3</td> <td>SN74HC595PWR</td> <td>TI(德州仪器)</td> <td>C273642</td> <td>lc</td> <td>3.6</td> </tr> <tr> <td>1uF</td> <td>C7,C8,C9</td> <td>C0603</td> <td>3</td> <td></td> <td></td> <td></td> <td>0.01/pcs</td> <td>0.01</td> </tr> <tr> <td>TYPE-603-T3</td> <td>USB1</td> <td>USB-C-SMD_TYPE-603-T3</td> <td>1</td> <td>TYPE-603-T3</td> <td>Yuandi(元迪)</td> <td>C2689837</td> <td>lc</td> <td>0.49</td> </tr> <tr> <td>5.1K</td> <td>R6,R7</td> <td>R0603</td> <td>2</td> <td></td> <td></td> <td></td> <td>0.01/pcs</td> <td>0.01</td> </tr> <tr> <td>RT9013-33GB</td> <td>U7</td> <td>SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BL</td> <td>1</td> <td>RT9013-33GB</td> <td>RICHTEK(立锜)</td> <td>C47773</td> <td>lc</td> <td>0.94</td> </tr> <tr> <td>TS-1086E-AC03526</td> <td>SW1</td> <td>SW-SMD_TS-1086E-AC03526</td> <td>1</td> <td>TS-1086E-AC03526</td> <td>XUNPU(讯普)</td> <td>C720473</td> <td>lc</td> <td>0.29</td> </tr> <tr> <td>SLR0563CR5C1BD-4.8</td> <td>LED5,LED6</td> <td>LED-SEG-TH_SLR0563CR5C1BD-4.8</td> <td>2</td> <td>SLR0563CR5C1BD-4.8</td> <td>SUNLIGHT(光华)</td> <td>C225945</td> <td>tb</td> <td>1.8</td> </tr> <tr> <td>XL-5050UWC</td> <td>LED7</td> <td>LED-ARRAY-SMD_6P-L5.0-W5.0-TL-RD-2</td> <td>1</td> <td>XL-5050UWC</td> <td>XINGLIGHT(成兴光)</td> <td>C2843867</td> <td>lc</td> <td>0.17</td> </tr> <tr> <td>TS5215A 250gf</td> <td>SW2</td> <td>SW-SMD_4P-L5.2-W5.2-P3.70-LS6.4</td> <td>1</td> <td>TS5215A 250gf</td> <td>SHOU HAN(首韩)</td> <td>C388295</td> <td>lc</td> <td>0.01</td> </tr> <tr> <td>ZX-XH2.54-2PWT</td> <td>CN1</td> <td>CONN-SMD_2P-P2.54_MEGASTAR_ZX-XH2.54-2PWT</td> <td>1</td> <td>ZX-XH2.54-2PWT</td> <td>Megastar(兆星)</td> <td>C7429671</td> <td>选焊</td> <td>0</td> </tr> <tr> <td>PZ254V-11-04P</td> <td>H1,H2</td> <td>HDR-TH_4P-P2.54-V-M</td> <td>2</td> <td>PZ254V-11-04P</td> <td>XFCN(兴飞)</td> <td>C2691448</td> <td>选焊</td> <td>0</td> </tr> <tr> <td>250mah锂电池</td> <td>BAT+</td> <td>502030</td> <td>1</td> <td>-</td> <td></td> <td></td> <td>贴于PCB上</td> <td>2</td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td>合计:</td> <td>22.25</td> </tr> </table> <p>注:由于大部分0603电阻电容是料盘或拆机,故统一算作0.01/pcs 请以此BOM表为准。</p> <h2><strong>6 大赛LOGO验证</strong></h2> <p><img src="//image.lceda.cn/oshwhub/4d2964fb5a954c02a41696ea5615cdb8.jpg" alt="背面.JPG"></p> <h2><strong>7 演示视频</strong></h2> <p>立创电赛:《桌面温湿度仪》-功能演示。</p> <h2><strong>写在最后的话</strong></h2> <p>这是第三次参加训练营了,感谢立创不断的给我机会提升自己,前两次由于时间和能力问题(初二时),没有完成,甚至焊接完成烧录程序都没做到,这一次终于是在中考完的暑假“独立”的做完了(这里的独立是相较于小学六年级时参加NOC是老师手把手带着),也算是对初中生活的结束的纪念,我自己的能力也得到了提升,但编程能力仍需要加强,所有说代码不近完善。 这个作品本来也是桌面摆件,所以我在板子背后加上了我对未来的期许,希望我的高中生活能像那样,同时也祝愿嘉立创越做越大,越做越好,希望未来有我加入的机会! <strong><em>2024/7/29</em></strong></p>

文档

BOM

暂无

附件

附件名 下载
程序源码.zip
DXF_面板_2024-07-30.dxf
演示视频.mp4
DXF_面板_64.exe
BOM_#第九届立创电赛#【7243012A】温湿度检测仪.xlsx
All.md

成员

评论(3)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
wzd000 回复
<p>大家点个赞吧,求求了。</p>
wxt00 回复
<p>大家怎么描述做得这么卷[emojis:大哭]</p>
wzd000 回复
<p>没有吧</p>
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