描述
<p><h3 style="line-height: 1.8;">一、项目功能介绍</h3>
<hr />
<h4 style="line-height: 1.8;">1、简介</h4>
<p style="line-height: 1.8;">实时检测环境温度、湿度、气压,并显示在TFT彩屏上,可调节显示屏亮度以及设置屏幕方向</p>
<h4 style="line-height: 1.8;">2、界面图示</h4>
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/bc48ccdfa3644d088073479d6409401f.png" alt="界面" width="1024" height="759" /></p>
<h4 style="line-height: 1.8;">2、界面内容</h4>
<p>主界面:1s刷新一次</p>
<p>主界面1:THP依次为温度(SHT40)、湿度(SHT40)、气压(WF183DE)</p>
<p>主界面2:SWN均为温度,来源依次为SHT40、WF183DE、NTC热敏电阻(PCB板温度)</p>
<p>主界面3:温度曲线,共33个点(33s),可选择温度数据来源,默认为WF183DE;右侧为最高和最低y轴代表的温度,和它们的差</p>
<p>设置界面:最快10ms刷新一次,有画面更新时刷新</p>
<p>设置界面1:调整背光亮度,步长为5</p>
<p>设置界面2:调整屏幕显示方向,同时会调整左右键方向</p>
<p>设置界面3:展示界面</p>
<h4 style="line-height: 1.8;">4、按键功能</h4>
<p style="line-height: 1.8;">如上图所示四个按键依次为左键、确认键、右键、唤醒按键(当屏幕翻转时,左右按键对调),点按长按临界时间为2s</p>
<p style="line-height: 1.8;">长按左右键在主界面或设置界面123中切换,长按确认键在主界面1和设置界面1中切换</p>
<p style="line-height: 1.8;">主界面3中,点按左右键切换温度数据来源</p>
<p style="line-height: 1.8;">设置界面1中,点按左右键调节亮度,点按确认键保存设置</p>
<p style="line-height: 1.8;">设置界面2中,点按左右键翻转屏幕,点按确认键保存设置</p>
<p style="line-height: 1.8;">唤醒按键按下后会类似复位MCU(不知道为什么)</p>
<p style="line-height: 1.8;"> </p>
<h3 style="line-height: 1.8;">二、硬件部分</h3>
<hr />
<ul>
<li style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">GD32E230G8U6 主控,QFN封装体积小巧,28引脚利用率高;NRST上拉,引出BOOT0按键便于ISP下载,SWDIO,SWCLK,TX,RX通过C口引出</span></li>
<li style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/33a938e6b7fc480baa619936c64e1c14.png" /></li>
<li style="line-height: 1.8;">Type-C 供电及下载程序与串口调试(夹板16P即可,有24P的就没再买),CH213K理想二极管防反接(对于TPS63001有点浪费)</li>
<li style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/9094d8d2518044f68d37dac4778c8547.png" /></li>
<li style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">TPS63001 升降压芯片,1.8V-5.5V输入,可使用锂电池、两节电池、充电器等供电,仅需三个元件即可正常使用</span></li>
<li style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;"><img src="//image.lceda.cn/oshwhub/0a2b5b9d823f400aa7e95e384eb5a201.png" /></span></li>
<li style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">SHT40-AD1B-R2 温湿度传感器</span></li>
<li style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;"><img src="//image.lceda.cn/oshwhub/070ead0c56af45dea63a05bf27da6b6a.png" /></span></li>
<li style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">WF183DE 数字压力传感器</span></li>
<li style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;"><img src="//image.lceda.cn/oshwhub/dc72f3c4d1c242ad8bc45b115056213f.png" /></span></li>
<li style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">NTC热敏电阻,贴近MCU,测量板上温度,公式T =1/(ln(Rt/10k)/3450+1/(273.15+25))</span></li>
<li style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;"><img src="//image.lceda.cn/oshwhub/4e67f64a5de5449facebcec39934bd4b.png" /></span></li>
<li style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">ST7735S 0.96 TFT 显示屏,仅有一个SPI设备,CS直接下拉,节省引脚</span></li>
<li style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;"><img src="//image.lceda.cn/oshwhub/e3a6e88488d44d90b6c16f32a655a4ae.png" /></span></li>
<li style="line-height: 1.8;">功能按键,带硬件消抖</li>
<li style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/47167ff588bf44119a962191250cd84b.png" /></li>
</ul>
<p style="line-height: 1.8;"> </p>
<h3 style="line-height: 1.8;">三、软件部分</h3>
<hr />
<p style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">使用了硬件SPI控制屏幕,硬件I2C读取传感器数据,PWM控制屏幕背光亮度,ADC获取NTC热敏电阻信息,定时器扫描按键,FMC读写FLASH</span></p>
<p style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">Clion项目工程上传至附件,初始化部分有注释,代码过长只说一点遇到的问题</span></p>
<p style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">1、I2C在连续的读写命令之间一定要加延时,SHT40-AD1B-R2至少需要8ms,WF183DE在发送查询后至少40ms</span></p>
<p style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">2、硬件I2C的收发均按照手册写的,但似乎网上和官方例程与手册的都有一些出入</span></p>
<p style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">3、计算ln的时候,尽管#include ,但一直报错未定义log函数,于是从网上摘了一段函数替代</span></p>
<p style="line-height: 1.8;"> </p>
<p style="line-height: 1.8;">顺便上传了亿些资料,外设的用法都可以在官方例程、用户手册、固件库使用指南中找到</p>
<p style="line-height: 1.8;">Memory region Used Size Region Size %age Used<br /> FLASH: 58464 B 64 KB 89.21%<br /> RAM: 3036 B 8 KB 37.06%</p>
<p style="line-height: 1.8;">FLASH还剩下约7-1KB可利用</p>
<p style="line-height: 1.8;"> </p>
<h3 style="line-height: 1.8;">四、大赛LOGO验证</h3>
<hr />
<p style="line-height: 1.8;"><img src="//image.lceda.cn/oshwhub/0356c52713a943ad9f96311ff0098811.jpg" alt="" width="1607" height="1431" /></p>
<h3 style="line-height: 1.8;">五、项目属性</h3>
<hr />
<p style="line-height: 1.8;">首次公开,原创,未获奖,未参加过答辩</p>
<p style="line-height: 1.8;">开源协议:GPL3.0</p>
<h3>六、更新</h3>
<hr />
<h4>20240731-[v1.0]</h4>
<ul>
<li>第一版</li>
</ul></p>
评论(4)