sht30是盛世瑞恩生产的温湿度传感器,这个是一个瑞士企业。从sht10到sht31,盛世瑞恩的传感器还是不错了。
小米的温湿度传感器使用的也是sht30.
下面介绍一下使用方法。
sht30最高支持1000k的传输速率。因此通讯时间非常短。
sht30有两种读取数值的方法,我介绍一下使用iic的状态查询和数值查询方法。
1,状态查询。
发送指令:0xF32D.
2,数值查询。发送指令0x2C06
通过iic发送完毕之后,sht30返回的数值是6个字节的数组
1[温度高八位]
2[温度第八位]
3[温度crc校验]
4[湿度高八位]
5[湿度第八位]
6[湿度crc校验]
uint8_t sht_common_generate_crc{ uint8_t crc = CRC_INIT; uint8_t current_byte; uint8_t crc_bit; /* calculates 8-Bit checksum with given polynomial */ for { crc ^= ; for { if crc = ^ CRC_POLYNOMIAL; else crc = ; } } return crc;}//下面的函数是采集的函数uint8_t* SHT30_Read_T_H{ if) //CMD_MEASURE_HPM是数组{0x2c,0x06} { if==result[2]) && ==result[5]))//crc校验 { uint32_t tem,hum; tem = | result[1];//温度拼接 hum = | result[4];//湿度拼接 tem = >> 13) - 45000;//温度计算 hum = >> 13);//湿度计算 //因为是指针函数,我返回了温度和湿度的数组,这个可以根据自己的需求去写 result[0] = tem/10000; result[1] = tem%10000/1000; result[2] = tem%1000/100; result[3] = tem%100/10; result[4] = tem%10; result[5] = hum/10000; result[6] = hum%10000/1000; result[7] = hum%1000/100; result[8] = hum%100/10; result[9] = hum%10; return result; } } return NULL;}
下面是数据手册的计算图片
下面是我读到的东西。
下面用最简单的方式说一下。。。单片机通电。sht接上电源,接上iic接口道单片机上。单片机初始化,单片机初始化iic。iic发送0x2c06到sht30,然后就像我的程序贴图那样处理。
具体程序自己去修改,因为处理器不同,iic部分不写。
附:盛世瑞文网址
莫九玉 2018.1.25