描述
<h3>* 1、项目功能介绍</h3>
<hr>
<p>一款基于ESP32的物联网温湿度传感器,可通过Type-C口直接获取数据,也可在二次开发后通过基于WI-FI的传输(MQTT等方式)或是蓝牙获取数据,可用于有WIFI或蓝牙网关覆盖区域的温湿度采集与显示。</p>
<h3>*2、项目属性</h3>
<hr>
<p>项目为首次公开,为原创项目,未曾在其他比赛获奖,未曾在学校参与过答辩。</p>
<h3>* 3、开源协议</h3>
<hr>
<p>CC BY-NC-SA 4.0</p>
<p><strong>请在竞赛阶段填写 ↓</strong></p>
<h3>*4、硬件部分</h3>
<hr>
<h5>原理和机制</h5>
<p>使用ESP32-C3模组与盛思锐SHT40-AD1B(电赛版模组)作为核心功能组件,同时保留了对常规封装SHT40-AD1B与STS3x-DIS系列传感器的支持,实现通过I2C与传感器通讯,并获取到温湿度信息后显示出来。可在二次开发后实现WIFI/BLE通讯,实现无线温湿度传感器的功能。</p>
<h5>注意事项</h5>
<p>1.温湿度传感器模块封装非常小(STS3x-DIS系列大约是2_3mm,SHT40-AD1B大约1.5_1.5mm),可以考虑在立创商城购买电赛版模块<a href="%5Bhttps://item.szlcsc.com/24072575.html%5D(https://item.szlcsc.com/24072575.html)" target="_blank">点击跳转</a>;</p>
<p>2.立创商城的电赛版模块是1mm间距排针,而非常规2.54mm,请注意。(商品详情未注明这一点);</p>
<p>3.温湿度传感器在焊接时需注意保护;</p>
<p>4.请不要参考实物图进行项目焊接,拍摄实物图时为了调试效果,很多元件没有焊接,可能影响数据准确性;</p>
<p>5.该款温湿度传感器灵敏度极高,应与PCB 上的热源解耦,降低PCB热源对传感器的影响。</p>
<h5>调试方法与测试方法</h5>
<p>验证时采用的是盛思锐SHT40-AD1B(电赛版)模组,设置为高精度模式(HIGH_PRECISION)。参照规格书与<a href="%5Bhttps://sensirion.com/cn/products/product-catalog/SHT40A-AD1B%5D(https://sensirion.com/cn/products/product-catalog/SHT40A-AD1B)" target="_blank">官网</a>,精度表现如下:</p>
<table>
<tr>
<th>检测项目</th>
<th>精度</th>
</tr>
<tr>
<td>温度(25℃)</td>
<td>0.3℃</td>
</tr>
<tr>
<td>湿度(25℃)</td>
<td>3%RH</td>
</tr>
</table>
<p>其具有高精度的特性,无需考虑温度补偿算法,可以直接读取数据使用。在验证时采用I2C按照SHT40-AD1B的规格书中的通讯方式直接读取了温湿度数据,实测可以正常工作,且准确度符合预期。</p>
<h3>*5、软件部分</h3>
<p>使用Micropython编写</p>
<h5>引入所需模块</h5>
<pre><code>from machine import Pin, I2C, ADC
import ssd1306
import framebuf
import time
import machine
import esp32
</code></pre>
<h5>初始化I2C</h5>
<pre><code>i2c = I2C(0, scl=Pin(5), sda=Pin(4))
</code></pre>
<h5>测量温度信息</h5>
<p>使用SHT40-AD1B的测量流程如下:
1.ESP32向SHT40发出测量命令</p>
<pre><code>i2c.writeto(SHT40的I2C地址(默认为0x44) , 设定的测量准确度)
</code></pre>
<p>2.等待10ms,SHT40需要时间测量数据</p>
<pre><code>time.sleep(0.01)
</code></pre>
<p>3.读取SHT40的数据</p>
<pre><code>data = i2c.readfrom(SHT40的I2C地址(默认为0x44), 6)
</code></pre>
<p>4.处理数据,组合数据中的高低字节</p>
<pre><code>temp_ticks = data[0] @@ 8 | data[1] #将@@替换为两个小于号
</code></pre>
<ol>
<li>使用规格书中的公式计算温湿度</li>
</ol>
<pre><code>temperature = -45 + (175 * temp_ticks / 65535.0
</code></pre>
<ol>
<li>显示温度信息到屏幕</li>
</ol>
<pre><code>display_dynamic_info(temperature, humidity) # 屏幕内容变量
</code></pre>
<p>目前仅作此示例,用于验证该温湿度传感器的PCB设计与连接方式。软件使用Micropython编写,可二次开发,实现MQTT,TCP等基于网络的方式传输温湿度数据,或是使用蓝牙与串口连接并传输数据。</p>
<hr>
<h3>*6、BOM清单</h3>
<hr>
<p><img src="//image.lceda.cn/pullimage/YJmiBICymejy9oJan9kEQpWY6JwI1GBMzThLGwAj.png" alt="屏幕截图 2024-10-12 161358.png"></p>
<h3>*7、大赛LOGO验证</h3>
<hr>
<p><img src="//image.lceda.cn/pullimage/5D41q2zwWXalCFAjRu3XGb4RvBm8mSXxREwZod8q.jpeg" alt="屏幕截图 2024-10-12 161604.jpg"></p>
<h3>* 8、演示您的项目并录制成视频上传</h3>
<hr>
<p>已上传在附件的视频模块</p>
评论(0)