描述
<h1 style="line-height:2">1、介绍</h1>
<p style="line-height:2"><span style="color:#000000">参加第九届立创电赛设计,在官网基础(2*3位数码管显示温湿度)上增加ESP01S联网获取时间,加两个数码管(一共四个)显示时间。<strong>提示:</strong>优于四个数码管+移位芯片引脚数量很大,所以这次使用的STM32芯片的引脚已经全部使用完了,一个空余的引脚都没有了。</span></p>
<p style="line-height:2"> </p>
<p style="line-height:2"><span style="color:#2dc26b">桌面小摆件<span style="color:#000000">:使用瑞士盛思锐SHT40作为温湿度传感器,</span></span>精准采集室内外<strong>温湿度</strong>,<strong>相对湿度精度:±1.5 %RH,温度精度: ±0.1 °C ,温度测量范围:-40~125℃</strong>;实时显示时间,<strong>一键联网同步北京时间</strong>;两节5号电池(3V左右)供电;</p>
<p style="line-height:2"> </p>
<p style="line-height:2"><span style="color:#e67e23">小体积<span style="color:#000000">:46mm×52mm,可使用嘉立创<strong>免费</strong>打板。</span></span></p>
<p style="line-height:2"> </p>
<p style="line-height:2"><span style="color:#2dc26b"><span style="color:#000000"><span style="color:#3598db">学习知识<span style="color:#000000">: 使用<strong> IIC</strong>通信获取传感器数据;一键ESP8266-01S连接<strong>WiFi</strong>获取云数据;<strong>串口</strong>通信数据处理;使用移位芯片控制显示<strong>数码管</strong>;STM32<strong>RTC</strong>时钟;</span></span></span></span></p>
<p style="line-height:2"> </p>
<p style="line-height:2"><span style="color:#34495e">低成本设计<span style="color:#000000">:免费打板+低成本芯片+数码管显示,成本可控制在30元左右,ESP8266-01S可重复使用。</span></span></p>
<p style="line-height:2"> </p>
<h1 style="line-height:2">2、硬件</h1>
<h2 style="line-height:2">2.1 电源部分</h2>
<p style="line-height:2">简单两节5号电池供电+防反接电路,不需要任何电压转换就能工作,</p>
<p style="line-height:2"><img src="//image.lceda.cn/oshwhub/ba66c490183e431898915164ae5f49a2.png" width="278" height="193"></p>
<p style="line-height:2"> </p>
<h2 style="line-height:2">2.2 数码管显示</h2>
<div style="line-height:2"><strong>共阴极</strong>数码管;移位芯片型号:<strong>74HC595</strong>;</div>
<div style="line-height:2"><span style="color:#e67e23">引脚分配</span>:三个移位芯片控制两个三位数码管。</div>
<div style="line-height:2"><img src="//image.lceda.cn/oshwhub/8e56fe69d79e4db5af416ca800eac3f8.png"></div>
<div style="line-height:2"> </div>
<h2 style="line-height:2">2.3 STM32电路</h2>
<h3 style="line-height:2">2.3.1 晶振电路</h3>
<p style="line-height:2">使用32768晶振为RTC提供更精确的时间计算。</p>
<p style="line-height:2"><strong>注意:PCB布局时,晶振靠近STM32芯片,晶振电容靠近晶振!!!</strong></p>
<p style="line-height:2"><img src="//image.lceda.cn/oshwhub/59dc843ab8bd4444b0da3924805686f8.png"></p>
<h3 style="line-height:2">2.3.2 唤醒按键</h3>
<div style="line-height:2">添加一个按键(没有加硬件防抖,使用的软件消抖),端口为PB5,具体作用如下:</div>
<div style="line-height:2"> </div>
<div style="line-height:2">短按:更新获取温湿度</div>
<div style="line-height:2">双击:改变数码管闪烁样式(默认是横杠闪烁,可切换为8字流动或其他样式,在seg.c文件里的数组sgh_value[]中添加切换,记得要在中断程序中设置shan_i的上限),如下图所示</div>
<div style="line-height:2">长按:启动ESP01S联网获取实时时间,更新RTC</div>
<div style="line-height:2"> </div>
<div style="line-height:2">数码管闪烁样式数组图:</div>
<div style="line-height:2"><img src="//image.lceda.cn/oshwhub/3892abf230e24127ab00ea0f8fa0ee5c.png" width="750" height="75"></div>
<div style="line-height:2"> </div>
<h3 style="line-height:2">2.3.3 LED电路</h3>
<div style="line-height:2">简单LED点亮电路,用于指示状态,使用端口为PA0,低电平点亮。作用:ESP01S联网获取时间期间-亮,正常工作下/联网结束后-灭</div>
<div style="line-height:2"><img src="//image.lceda.cn/oshwhub/69229848b1be43f4ba72408aa8b80512.png" width="237" height="87"></div>
<div style="line-height:2"> </div>
<h3 style="line-height:2">2.3.4 SWD下载电路</h3>
<p style="line-height:2">使用的市面上常见的STLink下载调试</p>
<p style="line-height:2"><img src="//image.lceda.cn/oshwhub/775b8035dab8437db5ce6910c8bf02b5.png" width="154" height="212"></p>
<p style="line-height:2"> </p>
<h3 style="line-height:2">2.4 ESP8266-01S</h3>
<div style="line-height:2">型号:ESP8266-01S</div>
<div style="line-height:2">串口:uart1</div>
<div style="line-height:2">波特率:115200</div>
<div style="line-height:2">说明:正常情况下不工作,节省功耗。每次启动重新设置参数和联网获取时间。</div>
<div style="line-height:2">引脚分配:硬件没啥难度,TXD对RXD,RXD对TXD,再加一个RST重启引脚(上拉)用于软件重启芯片。</div>
<div style="line-height:2">注意事项:PCB中,ESP8266下面尽量不要走线,避免影响信号。这个PCB中走了几根电源线,但是实测没有影响运行,一键联网莫得问题。</div>
<div style="line-height:2"><img src="//image.lceda.cn/oshwhub/1aaa4b1da35b4e72ab0ecacf19fc9ab6.png" width="260" height="179"></div>
<div style="line-height:2"> </div>
<h2 style="line-height:2">2.5 SHT40温湿度电路</h2>
<div style="line-height:2">注意事项:SCL和SDA引脚使用4.7k电阻<strong>上拉</strong>,模块下尽量不要走线。</div>
<div style="line-height:2"> </div>
<div style="line-height:2"><img src="//"></div>
<h1 style="line-height:2">3、软件</h1>
<p style="line-height:2">部分软件代码参考<a href="https://www.yuque.com/wldz/jlceda/ycxrhmcyxkvomgm1" target="_blank">官方项目文档</a>,关于原理、CubeMX的配置和软件编写文档写的很详细。关于新添加的功能,CubeMX文件和keil程序开放在附件,可下载查看。</p>
<h2 style="line-height:2">3.1 数码管</h2>
<p style="line-height:2">把官方的数码管+移位芯片在Copy一遍,就是该设计的数码管显示引脚配置了,CubeMX配置图如下:</p>
<p style="line-height:2"><img src="//image.lceda.cn/oshwhub/ee008972258541b3b13ff9aa25657f52.png" width="572" height="444"></p>
<h2 style="line-height:2">3.2 ESP8266-01S</h2>
<p><img src="//image.lceda.cn/oshwhub/783bd1fe5dda4cc79c7cecb4b84709d6.png" width="575" height="185"></p>
<p>简介:ESP-01S是一款基于ESP8266芯片的WiFi模块,ESP8266-01S,简称ESP-01s,串口通讯。该 WIFI 模块支持 STA/AP/STA+AP 工作模式,该设计使用 station模式,测试时连接手机热点,进而联网获取实时时间。ESP入门教程参考文档: <a href="https://docs.ai-thinker.com/_media/esp8266/docs/esp8266_start_guide_1_.pdf" target="_blank">esp8266_start_guide_1_.pdf (ai-thinker.com)</a></p>
<p> </p>
<p>第一步:拿到WiFi模块后第一件事就是刷固件(就是把编写好的文件烧录进去,这样esp-01s 就可以以烧录的固件编写的工作方式运行了),固件烧录地址和教程网上有很多案例,不难,此处不再演示。固件参考网站:<a href="https://docs.ai-thinker.com/%E5%9B%BA%E4%BB%B6%E6%B1%87%E6%80%BB" target="_blank">AT固件汇总 | 安信可科技 (ai-thinker.com)</a></p>
<p>第二部:使用AT指令(AT指令是一种物联网中常用的工作指令,就像是人类的语言一样,可以让两个设备之间进行一对一的通信)尝试配置工作状态。该设计使用到的主要AT指令如下</p>
<p><img src="//image.lceda.cn/oshwhub/c7a4e92a26b24ef5892c165b0b406626.png" width="483" height="220"></p>
<p>第三步:联网成功后,使用“AT+CIPSEND”向网站发送数据包,以获取时间信息。</p>
<p style="padding-left:40px">IP地址为:“api.k780.com”</p>
<p style="padding-left:40px">端口号为:“80”</p>
<p style="padding-left:40px">发送数据包格式为:"http://api.k780.com:88/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json"</p>
<p>第四步:根据测试成功的AT指令尝试编写对应的单片机软件</p>
<p> </p>
<p style="line-height:2">软件配置:CubeMX配置UART1,波特率115200,数据位7,停止位1。</p>
<p style="line-height:2"><strong>程序中已添加注释,可下载代码自行查看。</strong></p>
<p style="line-height:2"> </p>
<h1 style="line-height:2">4、参考</h1>
<ul>
<li style="line-height:2">esp01s.c 文件参考网站:https://blog.csdn.net/lwb450921/article/details/128594900 </li>
<li style="line-height:2">sscanf函数参考网站:https://www.cnblogs.com/polebug/p/3502565.html</li>
<li style="line-height:2">官方文档:<a href="https://www.yuque.com/wldz/jlceda/ul1wcz7n5dgt6s60" target="_blank">8-综合案例 (yuque.com)</a></li>
</ul>
评论(0)