樹莓派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")







執行程序之後,打印實時溫濕度
在這裏插入圖片描述

發佈了6 篇原創文章 · 獲贊 4 · 訪問量 2296
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章