[原创] SHT31测评+我的评测总结

hujj   2020-1-23 10:35 楼主

有幸获得了SHT31温湿度传感器的评测机会,让我可以了解和使用盛思锐的传感器产品。这个评测板上有着不小的液晶显示屏,很适合做一个桌面上的小摆件,按照最初的评测计划,我还准备利用其蓝牙看能否扩展功能。

我的测试过程分两个部分:一是蓝牙及手机APP测试,另一部分就是扩展I2C通讯和尝试下载烧录程序。下图是收到的SHT31套件:

test1_2.jpg

一、蓝牙及手机APP测试

收到评测套件后,我立即开始下载相关的技术资料和范例,但是在下载手机APP时却遇到困难,多次尝试下载官方的APP均以失败告终。

我尝试用手机上的蓝牙串口调试助手来连接套件,也许是蓝牙版本不同,虽然能识别到蓝牙设备,但却连接不成功,无法接收到套件发送的数据。

BLE_3.jpg

之后总算是从坛友分享中获得了手机APP,顺利地安装好并连接上了套件。

这个APP主要有四个界面,首先是数值显示界面,显示当前的温度、湿度、露点温度和体感温度等数值,每秒刷新一次:

app_9.jpg

第二个界面是图形显示,以相对湿度为纵坐标、温度为横坐标,图中显示一个绿色的四边形,其中四角分别提示为风湿、中暑、呼吸问题和脱水,而且四个角的坐标会有变化,但我至今还未弄明白其作用和含义:

app_a.jpg

第三个界面则是温、湿度的曲线图,可以分别显示10分钟、1小时、6小时、1天或1 周的温度或湿度数值。

app_c.jpg

app_b.jpg

第四个界面则是设置,每次连接蓝牙须在此点击蓝牙设备的地址,在此还可以对套件进行设置。

app_8.jpg

下面是显示套件设备参数的界面:

app_d.jpg

从测试的过程觉得这个手机APP的实用效果不大,首先是蓝牙需要手动连接,缺乏自动连接的选项,每次进入APP后还要寻找设备,然后再点击连接,才能接收到设备发出的数据,倘若中途手机离开套件造成蓝牙连接中断,还需要重新手动连接。其次每次连接只能获得即时数据,套件没有保存过往数据的功能。也就是说倘若想要取得连续24小时的数据,则手机必须在套件附近保持蓝牙连接畅通才行。如果套件能够每隔一定时间(比如说1分钟)记录一次数据,待套件与手机自动连通后自动将数据发送到手机APP中,这样可能实用效果会更好些。

 

二、扩展I2C通讯

 

在套件的背面有一些探针触点,包括nRF51822下载烧录的SWDCLK和SWDIO、串口通讯的RX和TX,以及与传感器通讯的I2C总线。

open_5.jpg

为了能够顺利的测试,我特地打样了测试用的扩展板,通过扩展板上的簧片来连接套件的探针触点。由于测量计算失误,第二次打样回来的扩展板才基本可用,下面是打样回来的扩展板。

exterboad2_01.jpg

为了能更充分发挥套件的功能,我在扩展板上还添加了锂电池及充放电管理模块,利用旧手机的锂电池,通过降压芯片来为套件供电,解决更换电池的麻烦。

batte_3.jpg

扩展板上还留有电平转换CH340芯片的位置,焊上此芯片及外围电路后,可以通过Micro USB接口进行串口通讯。

在扩展板上对应套件触点的位置焊上弹簧片,以便可靠地与套件连接:

exterboad2_13.jpg

套件通过卡簧片安装在扩展板上,扩展板的排针可用杜邦线连接到单片机进行测试。

batte_5.jpg

利用了一个笔筒来做套件的支架,用双面胶将套件粘在笔筒上。

测试实验用的是一块STM32L412开发板,通过杜邦线与扩展板连接,显示屏用的是LCD5110,暂时也用双面胶粘贴在笔筒上。原来还打算到附近广告制作店去找块合适的边角材料来做一个面板,不料人家已经过年放假了,所以只好暂时作罢。下面是临时粘接的小摆件:

I2C_test_20.jpg

套件连接问题解决之后,开始是考虑尝试下载烧录程序的,但KEIL的升级包一直没能下载到,再加上没有找到合适的J-LINK下载调试器,而我又没有接触过这类芯片,为了防止套件变砖,所以暂时没有进行这项测试,而是准备通过I2C总线直接截取数据,这样做更安全可靠些。

由于是截取正常通讯的I2C数据,不属于主从的任何一种通讯方式,只有自己写代码来截取数据,这个截取与从方式读I2C类似,只是不发送地址及应答信息,纯粹读取数据。

从逻辑分析仪获取的时序图得知ACK的信号约占3微秒,两个字节之间的空隙约5微秒,开始写的代码就直接忽略这些信息,可谁知读取的数据却不正确,最后添加了辨别ACK的代码才成功的读取到了I2C通讯的数据。

通过查看数据手册和观察时序图,SHT31在接收到读数据的地址信号后,连续发送6个字节的温、湿度数据,分别是16位的数据和8位的CRC校验,如下图:

I2C_test_8.jpg

获得这个16位的温、湿度数据后,按照数据手册提供的计算公式转换成实际的温、湿度数据。为了简化代码,在我的测试中没有考虑零下温度的计算和处理。最后测试的结果是成功地截取到了I2C通讯的数据,对套件没有丝毫影响。

IMG_20200121_095107.jpg

至此,本次评测活动告一段落,年后再考虑购置J-LINK来尝试下载烧录程序,或者用蓝牙模块来看能否建立起单片机与套件的连接,这样单片机与套件之间就可以不用杜邦线来连接,两者之间也可以拉开一定的距离。

 

本帖最后由 hujj 于 2020-1-23 13:45 编辑

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复