设备特性
奥松AM2320温湿度传感器为在I2C协议的基础上,厂家自定义的I2C_Modbus协议传感器。
如想正确读取该设备的温、湿度数值,请仔细阅读奥松AM2320的产品说明,严格按照产品的规则描述编写程序,否则无法正常读取温湿度数值。
AM2320无内置上拉电阻,需自行接入上拉电阻才可正常读取温度。此处采用的上拉电阻阻值为12KΩ,通讯正常。请自行测试并选用合适阻值的上拉电阻。
- AM2320使用规则:
- 1.唤醒传感器;
- 2.发送读指令或写指令;
- 3.读返回数据或确认信号;
- 4.传感器进入休眠状态,再次读取数值的间隔最小为2秒;
- 5.重复步骤1至步骤4
- 主机发送读帧格式:START+(I2C地址+W)+功能码(0x03)+起始地址+寄存器个数+STOP
- 主机读取返回数据:START+(I2C地址+R)+连续读取传感器返回的数据+STOP
- 传感器响应帧格式:功能码(0x03)+寄存器个数+数据+CRC
- AM2320 I2C地址:AM2320产品说明中提及的地址为完整的8bit(I2C地址+R\W)数据,因此需将产品说明中的地址做拆分处理,如将0xB8转为2进制后为10111000 [I2C地址(1011100)+W(0)],拆分后得出I2C地址为0x5C。
例如:主机连续读取传感器的数据:起始地址为0x00的4个传感器的寄存器数据。
- 传感器的数据寄存器的地址和数据为:
- 湿度高位:0x00(寄存器地址),0x01(寄存器数据)
- 湿度低位:0x01(寄存器地址),0XF4(寄存器数据)
- 温度高位:0x02(寄存器地址),0x00(寄存器数据)
- 温度低位:0x03(寄存器地址),0xFA(寄存器数据)
- 主机发送的报文格式:
- 传感器地址(1字节):0xB8(即I2C地址(0x5C)+W(0))
- 功能码(1字节):0x03(读取寄存器)
- 起始地址(1字节):0x00(寄存器起始地址为0x00)
- 寄存器个数(1字节):0x04(读取寄存器个数)
- 传感器响应返回的报文格式:
- 功能码(1字节):0x03(读取寄存器)
- 返回字节数(1字节):0x04(返回4个寄存器共4个字节)
- 寄存器1(1字节):0x01(地址为0x00的湿度高字节)
- 寄存器2(1字节):0XF4(地址为0x01的湿度低字节)
- 寄存器3(1字节):0X00(地址为0x02的温度高字节)
- 寄存器4(1字节):0xFA(地址为0x03的温度低字节)
- 温湿度计算公式:
- T(℃) = (DataTemp.) / 10
- RH% = (DataHum.) / 10