树莓派检测不到i2c设备,树莓派温度监控

  树莓派检测不到i2c设备,树莓派温度监控

  i2c工具工具安装

  容易得到安装i2c工具

  i2c工具包含如下命令:

  I2C检测i2cdump i2cget i2cset

  通过拉斯皮配置打开树莓派I2C,执行i2cdetect -l查看:

  root @ raspberrypi:/opt # I2C检测-l

  i2c-1 i2c 3f804000.i2c I2C适配器

  查看I2C一号上所挂的设备信息:

  root @ raspberrypi:/opt # I2C检测-y-r 1

  0 1 2 3 4 5 6 7 8 9 a b c d e f

  00: - - - - - - - - - - - - -

  10: - - - - - - - - - - - - - - - -

  20: - - - - - - - - - - - - - - - -

  30: - - - - - - - - - - - - - - - -

  40: 40 - - - - - - - - - - - - - - -

  50: - - - - - - - - - - - - - - - -

  60: - - - - - - - - - - - - - - - -

  70: - - - - - - - -

  地址40为温湿度传感器SHT20。

  查看传感器信息:

  root @ raspberrypi:/opt # I2C转储-f-y 10x 40

  未指定大小(使用字节数据访问)

  0 1 2 3 4 5 6 7 8 9 a b c d e f

  00:XX XX XX 69 XX 67 3a XX 06 XX XX XX XX XX 02 XXXiXg:X?XXXXX?

  10:XX XX XX XX XX XX XX XX XX XX XX XX XX

  其中寄存器0x03为温度值,寄存器0x05为湿度,可以使用i2cget命令单独获取:

  root @ raspberrypi:/opt # I2C get-f-y 10x 400x 03

  0x69

  root @ raspberrypi:/opt # I2C get-f-y 10x 400x 05

  0x67

  写个大蟒脚本调用i2c工具获取温湿度:

  #!/usr/开放的曲奇/pythonimport命令status_temp,temp _ reg=命令。getstatusoutput( I2C get-f-y 10x 400x 03 )status _ humd,humd _ reg=commands。getstatusoutput( I2C get-f-y 10x 400x 05 )print 寄存器temp:,temp_regprint 寄存器humd:,humd_regtemp_int=int(temp_reg,16)humd_int=int(humd_reg,16)temp=(temp_int8

  保存为SHT20.py,执行:

  root@raspberrypi:/opt/i2c# ./SHT20.py

  寄存器温度:0x69

  寄存器humd:0x68

  当前温度=25.5041900635

  相对湿度=44.9796142578

  树莓派通过计算机编程语言操作I2C接口的库很多,常用的有smbus、quick2wire、wiringpi等。

  使用wiringpi Python获取SHT20温湿度脚本如下:

  #!/usr/开放的曲奇/python导入布线PID=布线pi。布线pii 2 c设置(0x 40)temp _ org=布线pi。接线pii 2 c读取寄存器8(FD,0x 03)humd _ org=接线pi。接线pii 2 c read reg 8(FD,0x 05)temp=(temp _ org 8) temp _ org humd=(humd _ org 8) humd _ orgT=-46.85 175.72/65536 * tempRH=-6.0 120

树莓派检测不到i2c设备,树莓派温度监控