舟山高端网站建设,如何做网站结构优化,阿里云网站如何做淘宝客,深圳营业执照网上申报入口学物联网#xff0c;来万物简单IoT物联网#xff01;#xff01; 一、产品简介
Sensirion SHT3x-DIS湿度和温度传感器基于CMOSens传感器芯片#xff0c;更加智能、可靠#xff0c;精度更高。SHT3x-DIS具有增强的信号处理能力、两个独特的用户可选I2C地址#xff0c;通信… 学物联网来万物简单IoT物联网 一、产品简介
Sensirion SHT3x-DIS湿度和温度传感器基于CMOSens®传感器芯片更加智能、可靠精度更高。SHT3x-DIS具有增强的信号处理能力、两个独特的用户可选I2C地址通信速度高达1MHz。SHT35-DIS的典型相对湿度 (RH) 精度为±1.5%典型温度精度为±0.2°C。SHT3x-DIS具有2.5mm x 2.5mm x 0.9mm长x宽x高占位面积电源电压范围为2.4V至5.5V。
二、技术参数
供电电压2.4V5.5VI2C接口通信速度高达1MHz具有两个用户可选地址完全校准、线性化和温度补偿的数字输出启动和测量速度极快湿度精度0 ~ 100%精度为±2%RH温度精度-40度125度精度±0.3℃封装DFN-82.5mm * 2.5mm 0.9mm
三、软件接口
SHT3X(i2cObj) - 创建SHT3X驱动对象
函数原型 sht3xObj SHT3X(i2cObj)参数说明
参数类型必选参数说明i2cObjI2C是传入I2C对象
返回值 SHT3X对象成功返回SHT3X对象SHT3X对象创建失败抛出Exception示例代码
from machine import I2C,Pin # 驱动库
import sht3x # SHT3X-DIS温湿度传感器驱动库i2cObj I2C(1, sclPin(22), sdaPin(21), freq400000)
humitureDev sht3x.SHT3X(i2cObj) # 初始化SHT3X-DIS传感器
print(sht3x inited!)• 输出
sht3x inited!getTemperature - 测量温度
函数功能 量测周围温度并返回测量结果函数原型 SHT3X.getTemperature()参数说明 无返回值 成功返回温度测量结果数据类型浮点型单位摄氏度失败抛出Exception示例
from machine import I2C,Pin # 驱动库
import sht3x # SHT3X-DIS温湿度传感器驱动库i2cObj I2C(1, sclPin(22), sdaPin(21), freq400000)
humitureDev sht3x.SHT3X(i2cObj) # 初始化SHT3X-DIS传感器
print(sht3x inited!)
temp humitureDev.getTemperature()
print(temperature is , temp, °C)输出
sht3x inited!
temperature is 25.3°CgetHumidity - 测量相对湿度 函数功能 量测周围相对湿度并返回测量结果函数原型 SHT3X.getHumidity() 参数说明 无返回值 成功返回相对湿度测量结果数据类型整型单位%RH失败抛出Exception示例
from machine import I2C,Pin # 驱动库
import sht3x # SHT3X-DIS温湿度传感器驱动库i2cObj I2C(1, sclPin(22), sdaPin(21), freq400000)
humitureDev sht3x.SHT3X(i2cObj) # 初始化SHT3X-DIS传感器
print(sht3x inited!)
humi humitureDev.getHumidity()
print(humidity is , humi, %H)输出
sht3x inited!
humidity is 60%HgetTempHumidity - 量测温度相对湿度 函数功能 同时量测周围温度和相对湿度并返回测量结果函数原型 SHT3X.getTempHumidity() 参数说明 无返回值 成功返回温度和相对湿度测量结果数据类型数组[温度值, 相对湿度值]温度单位摄氏度相对湿度单位%RH失败抛出Exception示例
from machine import I2C,Pin # 驱动库
import sht3x # SHT3X-DIS温湿度传感器驱动库i2cObj I2C(1, sclPin(22), sdaPin(21), freq400000)
humitureDev sht3x.SHT3X(i2cObj) # 初始化SHT3X-DIS传感器
print(sht3x inited!)
data humitureDev.getTempHumidity()
print(temperature is , data[0], °C)
print(humidity is , data[1], %H)输出
sht3x inited!
temperature is 25.3°C
humidity is 60%H四、接口案例
示例代码
import utime # 延时API所在组件
from machine import I2C,Pin # 驱动库
import sht3x # SHT3X-DIS温湿度传感器驱动库i2cObj I2C(1, sclPin(22), sdaPin(21), freq400000)
humitureDev sht3x.SHT3X(i2cObj) # 初始化SHT3X-DIS传感器
print(sht3x inited!)
# 通过温湿度传感器读取温湿度信息
def get_temp_humi():temperature humitureDev.getTemperature() # 获取温度测量结果humidity humitureDev.getHumidity() # 获取相对湿度测量结果print(The temperature is: %.1f % temperature)print(The humidity is: %d % humidity)return temperature, humidity # 返回读取到的温度值和相对湿度值
if __name__ __main__:while True:data get_temp_humi() # 读取温度信息和相对湿度信息utime.sleep(1) # 每隔1秒钟进行一次温湿度信息测量和打印i2cObj.close() # 关闭I2C设备对象输出
...
sht3x inited!
The temperature is 25.3°C
The humidity is 60%H
...
The temperature is 25.3°C
The humidity is 60%H
...五、通信协议
主控芯片和SHT3X-DIS传感器之间通信所用命令字如下表所示
序号命令字功能说明缩写10x3780读取芯片序列号CMD_READ_SERIALNBR20xF32D读取状态寄存器CMD_READ_STATUS30x3041清除状态寄存器CMD_CLEAR_STATUS40x306D开启加热功能CMD_HEATER_ENABLE50x3066关闭加热功能CMD_HEATER_DISABLE60x30A2软件复位CMD_SOFT_RESET70x2B32加速响应时间CMD_ART80x3093停止周期性测量CMD_BREAK90x2400高频率周期性测量CMD_MEAS_POLLING_H100x240B中频率周期性测量CMD_MEAS_POLLING_M110x2416低频率周期性测量CMD_MEAS_POLLING_L
实际控制此传感器的流程可参考如下伪代码。
初始化传感器并开始进行温湿度测量
清除状态寄存器发送CMD_CLEAR_STATUS等待20ms发送周期性测量指令CMD_MEAS_POLLING_H、CMD_MEAS_POLLING_M或CMD_MEAS_POLLING_L等待20ms读取温湿度测量结果
发起I2C读取数据6个字节的操作将读取到的测量结果转换成实际温室度值读取到的6个字节格式如下表所示
字节序号123456意义温度(高位)温度(低位)温度CRC-8校验值湿度(高位)湿度(低位)
转换过程可以使用如下公式 温度值 ((data[0]8) | data[1]) _ 0.0015259022 相对湿度值 -45.0 ((data[3]8) | data[4]) _ 175.0 / (0xFFFF - 1)
停止测量
发送停止周期性测量指令字CMD_BREAK参考文献
[1] SHT3X-DIS温湿度传感器购买链接