树莓派4b I2C SHT20温湿度采集

上手导读

在上一期开箱上手之后,这次就擦拳磨掌准备真刀真枪的开干了,SHT20这款高精度数字型传感器,各项性能参数都优于DHT11,而且是I2C接口输出,适合各种应用场景的温湿度采集。下面总结下树莓派4B采集SHT20的整体流程为:

  1. 硬件准备与连接
  2. 安装树莓派系统后,远程SSH登陆
  3. 使能I2C Kernel Module
  4. 安装I2C-Tools等必要的包
  5. 测试I2C并确认传感器地址
  6. 编写Python温湿度采集程序

1.硬件准备与连接

树莓派4B、 SHT20传感器模块、 杜邦线4根
接线方式:在这里插入图片描述
在这里插入图片描述

2.使能I2C Kernel Module

远程登陆树莓派后,输入sudo raspi-config 后,选择5.Interfacing Options 选择P5 I2C 选择 ,如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后,檢查I2C是否開啓:lsmod
在这里插入图片描述
如果列表中出現i2c_bcm2835 i2c_dev這兩個之後就證明開啓成功。
在这里插入图片描述

3.安装I2C-Tools等必要的包

分別執行下列四條命令,安裝並進行重啓。

sudo apt-get install i2c-tools
sudo apt-get install python-smbus
sudo adduser pi i2c
sudo reboot

4. 测试I2C并确认传感器地址

執行 i2cdetect -y 1來確認I2C鏈接傳感器是否成功(圖中0x40是本人SHT20的地址,每個人的傳感器地址不一定相同,這點要注意)
在这里插入图片描述

5.编写Python温湿度采集程序

import smbus
import time
#Get I2C bus
bus = smbus.SMBus(1)
#SHT20 address,0x40(64)
addr =0x40
#Send Temperature measurement command
#  0xF3(243) NO HOLD master
bus.write_byte(addr,0xF3)
time.sleep(0.5)
#Read data back, 2byte
#Temp MSB, Temp LSB
data0 = bus.read_byte(0x40)
data1 = bus.read_byte(0x40)
#convert the data
temp =data0 *256 +data1
cTemp = -46.85 +((temp*175.72)/65536.0)
ftemp =cTemp*1.8+32
#send humidity measurement command
bus.write_byte(0x40,0xF5)
time.sleep(0.5)
data0 = bus.read_byte(0x40)
data1 = bus.read_byte(0x40)
humidity=data0 *256 +data1
humidity=-6+((humidity*125.0)/65536.0)
print("Humidity is : ",'%.2f'% humidity,"%")
print("Temperature in C is: "'%.2f'%cTemp,"C")







執行程序之後,打印實時溫濕度
在这里插入图片描述

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值