描述
<div>
<h3 style="line-height:1.8">1、项目功能介绍</h3>
<hr>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">本作品为一个简单的桌面摆件,提供时间显示、温度、湿度显示功能,其中时间可通过NTP同步;同时提供俄罗斯方块、贪吃蛇两个游戏供摸鱼使用。</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">时间显示(可通过上下按键改变颜色):</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px"><img src="//image.lceda.cn/oshwhub/158534df31dd4d9fba3b38ceb301343e.gif" alt="" width="412" height="231"></span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">温度、湿度显示:</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px"><img src="//image.lceda.cn/oshwhub/bcfc38e0b49d474dbf44a468ee33f1e0.gif" alt="" width="414" height="232"></span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">时间配置(手动,仅建议在无网络环境下使用。网络连接正常时软件会使用NTP自动校时):</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px"><img src="//image.lceda.cn/oshwhub/8120734c5fc647b9943b3cf81d676d6e.gif" alt="" width="414" height="232"></span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">菜单:</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px"><img src="//image.lceda.cn/oshwhub/afb21d621cf14fae9a79f311c9f14d44.gif" alt="" width="414" height="232"></span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">俄罗斯方块:</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px"><img src="//image.lceda.cn/oshwhub/805f582f5c9640388aa9ab7e0e22c143.gif" alt="" width="414" height="232"></span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">贪吃蛇:</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px"><img src="//image.lceda.cn/oshwhub/6c34b6b1e1c24e7192c8df7899e000e2.gif" alt="" width="412" height="231"></span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">配网:上电后如无网络连接将显示WIFI标志,此时可使用smartconfig配网,软件为乐鑫提供的ESP-TOUCH,下载地址为:https://www.espressif.com.cn/zh-hans/support/download/apps</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">如暂不想配网,可按ESC退出。</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px"><img src="//image.lceda.cn/oshwhub/272574bd05b24060967839e0128ada60.gif" alt="" width="409" height="194"></span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">如需要重新配网:进入菜单选中WIFI,点确认出现“X”标志后再点确认,之后重新上电即可再次进入配网。</span></p>
<p style="line-height:1.8">按键说明:</p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/8062aca8907c456083456653ff56a06a.png" alt="" width="543" height="744"></p>
<h3 style="line-height:1.8">*2、项目属性</h3>
<hr>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">本项目首次公开,为本人原创且未参加比赛或答辩。</span></p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">* 3、开源协议</h3>
<hr>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">GPL3.0</span></p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*4、硬件部分</h3>
<hr>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">本项目PCB分为LED灯板和主控板两个部分。</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">LED灯板电路设计在单面且未使用排针等插件,可使用铝基板打印,电容实测无需焊接。GND、DATAIN、VCC分别焊接导线备用;</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px"><img src="//image.lceda.cn/oshwhub/72d46fffe6524eef9f3a876d61ddc93b.png" alt="" width="732" height="417"></span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">主控板为双面板,使用一块ESP32C3为核心,SHT40为温湿度采集模块。</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">供电部分:LED灯板使用5V供电,由USB提供;MCU等使用3.3V供电,通过一颗GN1117提供。</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">USB部分:使用一颗CH340X提供自动下载。没有使用CH340C的原因是CH340X可提供免外围电路方式自动下载,电路相对简单。如下图:</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px"><img src="//image.lceda.cn/oshwhub/5715bbcfdb4840009309f7f99137c198.png" alt="" width="687" height="444"></span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">主控板提供了两个I2C接口和一个LED灯板接口,分别用于连接SHT40和LED。QMI8658C未使用,不必焊接。32.768的外置晶振及两个电容C1、C2亦可不焊接。两种I2C连接方式视接线情况焊接,建议将SHT40模块放置到按键背面单头六角铜柱区域以减少LED发热影响,与主控板用P1.25线对板插针连接。</span></p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">安装方式:</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">正面:按LED灯板、光栅、纸、亚克力透光板的顺序放入边框且用胶固定。如需焊接LED灯板上的电容,光栅左边需要裁剪一下以便贴合(仅限于替换WS2812B灯珠后出现闪烁现象时才需要焊接电容);</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px"><img src="//image.lceda.cn/oshwhub/3abdb59b15aa45ac96522b46ec70c6b3.png" alt="" width="696" height="156"></span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">反面:将按键按入按键框后,将主控板放入并拧上四颗单头六角铜柱固定(如LED使用铝基板,建议在主控板和LED灯板之间用绝缘胶带做好绝缘)。如出现滑丝可用热熔胶等辅助固定,如下图(3D打印M2螺纹实测太勉强了,很容易滑丝,应该考虑换成M3的但Deadline到了)。</span></p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/455c5c6341c34f32a37194c5a78bc415.png" alt="" width="504" height="550"></p>
<p style="line-height:1.8">最后盖上后盖并拧上4颗M2螺丝即可。</p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*5、软件部分</h3>
<hr>
<p style="line-height:1.8"><span style="color:#95a5a6">代码使用VSCODE和ESP-IDF编写。因最近在读C++ primer plus,故语言使用C++,且尝试使用继承和多态来简化代码。</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6">程序使用多个线程分别处理LED显示刷新(刷新率最高约60Hz/s)、温湿度读取、后台NTP校时、当前模块功能实现等,尽量减少互相之间的影响。</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6">时间显示、菜单、各个游戏等均继承自同一个基类BaseFrame,各自实现不同的功能。</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6">全部源码已打包至附件。</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6">PS: 本次作品是本人第一次使用ESP32,也是第一次学着使用VSCODE+ESP_IDF开发,代码主打一个野路子,能跑就行。外壳设计同样是一边看教程一边动手,边学边做。一路磕磕绊绊,一些初时的构想也未能如期实现。但无论如何,最终还是勉强做出了这个成品,着实收获颇多。</span></p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*6、BOM清单</h3>
<hr>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">BOM清单中未列出材料:</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">5*10cm大小,2mm厚的黑茶色透明亚克力板一块;</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">5*10cm大小普通纸一张(或均光板一张)</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">m2*8+4单头六角铜柱 * 2</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">m2* 7平头螺丝 * 6</span></p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*7、大赛LOGO验证</h3>
<p>下图为主控板按键面</p>
<hr>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/d22e2444385b4c58b12073ebf204b34e.png" alt="" width="832" height="475"></p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">* 8、演示您的项目并录制成视频上传</h3>
<hr>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"> </p>
</div>
评论(3)