专业版
#第九届立创电赛#温湿度记录仪

创建时间:4个月前

98 0

描述

<h3>1、项目功能介绍</h3> <hr> <p>使用<code>SHT40温湿度传感器</code>和<code>BMP280气压传感器</code>测量实时温湿度及气压值</p> <p>待完成:</p> <ul> <li>[ ] 低功耗</li> <li>[ ] 记录24小时温湿度和气压历史记录,并提供展示和导出功能</li> <li>[ ] 实时时钟</li> </ul> <h3>2、项目属性</h3> <hr> <p>个人项目</p> <h3>3、开源协议</h3> <hr> <p>GPL 3.0 使用了<code>Dr.Zhang</code>的 <a href="//oshwhub.com/dr.zhang/Nokia1110-ESP32" target="_blank"><code>【复刻Nokia】使用ESP32复刻Nokia1110</code></a> 项目中的1.69寸屏幕封装</p> <h3>4、硬件部分</h3> <hr> <h4>主控</h4> <h5>ESP32-C3-MINI-1</h5> <p>此模组焊点在模组下方,焊接有难度。</p> <p>支持<code>低功耗蓝牙(BLE)5.0</code>和<code>2.4GHz WiFi</code>,可进行无线数据传输。</p> <p>支持<code>USB</code>,GPIO18、GPIO19可直接接USB的D-和D+进行数据传输和下载调试,无需额外的USB转串口芯片。</p> <p>支持<code>硬件SPI</code>和<code>硬件I2C</code>,比软件模拟速度更快,占用资源更少,在屏幕上差距明显,所以屏幕非常不建议使用软件模拟SPI。ESP32C3的硬件SPI需使用指定的IO口,而硬件I2C则可以使用任意IO。由于I2C的两根总线需要上拉电阻,而ESP32C3的启动电路要求GPIO2、GPIO8、GPIO9连接上拉电阻,GPIO2可用作ADC,所以推荐使用GPIO8、GPIO9作为I2C的SCL和SDA。</p> <table> <tr> <th>SPI、I2C功能引脚</th> <th>引脚</th> <th>功能</th> <th>说明</th> </tr> <tr> <td>GPIO4</td> <td>SPI SCL</td> <td>必须,连接屏幕的SCL</td> </tr> <tr> <td>GPIO5</td> <td>SPI MISO</td> <td>必须,连接无读取功能的SPI设备(如屏幕)时,需悬空</td> </tr> <tr> <td>GPIO6</td> <td>SPI MOSI</td> <td>必须,连接屏幕的SDA</td> </tr> <tr> <td>GPIO8</td> <td>I2C SCL/I2C SDA</td> <td>推荐</td> </tr> <tr> <td>GPIO9</td> <td>I2C SCL/I2C SDA</td> <td>推荐</td> </tr> </table> <table> <tr> <th>ESP32C3启动引脚</th> <th>启动模式</th> <th>GPIO2</th> <th>GPIO8</th> <th>GPIO9</th> </tr> <tr> <td>SPI Flash(正常启动)</td> <td>高</td> <td>任意</td> <td>悬空或拉高</td> </tr> <tr> <td>Download(下载模式)</td> <td>高</td> <td>高</td> <td>低</td> </tr> </table> <h4>外设</h4> <h5>SHT40 温湿度传感器</h5> <p>使用I2C通信</p> <p>为了尽量减少器件发热对温湿度检测的影响:</p> <ol> <li>传感器尽量远离发热器件(电源芯片、单片机、屏幕)</li> <li>传感器周围不要铺地(铜箔导热更快)</li> <li>单片机、屏幕尽量低功耗工作,减少散发的热量</li> </ol> <h5>BMP280 气压传感器</h5> <p>支持SPI和I2C通信,因传感器对速度要求不高,所以这里使用I2C通信,节约引脚(SPI需增加CS片选引脚)</p> <p>SDO接地,表示地址最后一位为0</p> <p>CSB接VCC,表示使用I2C协议</p> <h5>1.69寸TFT屏幕</h5> <table> <tr> <th>屏幕的大部分功耗都在背光LED上</th> <th>引脚</th> <th>说明</th> </tr> <tr> <td>VCC</td> <td>3.3V电源</td> </tr> <tr> <td>GND</td> <td>电源地</td> </tr> <tr> <td>LEDA</td> <td>背光LED二极管正极,接VCC</td> </tr> <tr> <td>LEDK</td> <td>背光LED二极管负极。如不需控制屏幕背光亮度,可通过限流电阻接地;也可通过三极管控制背光亮度</td> </tr> <tr> <td>SCL</td> <td>SPI时钟</td> </tr> <tr> <td>SDA</td> <td>SPI数据,接SPI MOSI引脚</td> </tr> <tr> <td>D/C</td> <td>传输内容类型(数据/命令)</td> </tr> <tr> <td>CS</td> <td>片选引脚,低电平有效,如无其他SPI设备,可接地</td> </tr> <tr> <td>RES</td> <td>复位引脚,低电平时复位,如无需硬件复位功能,可接单片机的EN引脚(ST7789有软件复位命令)</td> </tr> </table> <h4>电源</h4> <h5>LGS5500EP 锂电池充放电管理芯片</h5> <p>锂电池充放电管理芯片,可直接输出5V,自动切换供电电源(USB、锂电池),常用于充电宝。 缺点:输入5V后单片机不能直接使用,需降压至3.3V供单片机使用,浪费电能。建议替换为输出3.3V的锂电池充放电管理芯片。</p> <h5>XC6210B332MR LDO降压芯片</h5> <p>5V转3.3V LDO降压芯片,AMS1117-3.3的替代,更小的封装,节约空间,更低的静态电流。CE引脚可控制降压芯片是否工作,高电平工作,单片机可通过此引脚关闭自己的电源。</p> <h3>5、软件部分</h3> <hr> <p>使用 VS Code + PlatformIO + Arduino Framework 开发,具体PlatformIO使用方法可在B站搜索教程</p> <p>工程文件见附件</p> <p>工程结构</p> <ul> <li>main.cpp 入口程序,调用App.h</li> <li>App.cpp 主App类,管理屏幕、电池、按键等外设</li> <li>Constants.cpp 常量定义</li> <li>Battery.cpp 电池管理类</li> <li>Button.cpp 按键管理类</li> <li>i2c/I2CDevice.cpp I2C设备基类</li> <li>i2c/Sht40.cpp SHT40温湿度传感器管理类</li> <li>i2c/Bmp280.cpp BMP280气压传感器管理类</li> <li>ui/Screen.cpp SPI屏幕管理类,使用了GFX Library for Arduino库</li> <li>ui/weather.c 背景图片,使用<a href="https://lvgl.io/tools/imageconverter" target="_blank">LVGL Image Converter</a>生成</li> <li>ui/Segment.h 曾打算写模拟数码管的显示程序,已废弃</li> </ul> <p>自制背景图片(240x280)</p> <p><img src="//image.lceda.cn/oshwhub/bace048479264b588f3cfe5e26ccb512.png" alt="weather.png"></p> <h3>6、BOM清单</h3> <hr> <p>BOM中的1.69寸屏幕使用中景园1.69寸TFT屏幕12Pin焊接</p> <h3>7、大赛LOGO验证</h3> <hr> <p><img src="//image.lceda.cn/oshwhub/eccadc4cb8ff413baaf1d07471bca72b.jpg" alt="IMG_20240806_045441.jpg"></p> <p><img src="//image.lceda.cn/oshwhub/2d427a832ef64fa6bdc10605a30b05bf.jpg" alt="IMG_20240806_045422.jpg"></p> <h3>8、演示您的项目并录制成视频上传</h3> <hr> <p>点击按钮关闭/打开屏幕。 充电时左上角绿色圆点闪烁表示充电中,充满后绿色圆点常亮。</p>

文档

BOM

暂无

附件

附件名 下载
temp_recorder.zip
Vid 20240806 051215.mp4

成员

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