樹莓派python學習篇(一)溫濕度感測器

2021-10-08 14:21:34 字數 3310 閱讀 4322

二、dht11**(python)

16 #感測器輸出口接bcm模式 gpio16

data =

j =0

gpio.

setmode

(gpio.bcm)

time.

sleep(1

)/*mcu向dct發射啟動訊號*/

gpio.

setup

(channel, gpio.out)

gpio.

output

(channel, gpio.low)#資料匯流排空閒狀態為高電平,通訊開始時,將電平拉低

time.

sleep

(0.02

)#此過程至少需要18ms才能確保dht檢測到mcu訊號

gpio.

output

(channel, gpio.high)#上拉電壓20us~

40us回應dht

gpio.

setup

(channel, gpio.in)

/*dht響應mcu*/

while gpio.

input

(channel)

== gpio.low:#dht檢測到啟動訊號,發出持續80us的低電平響應訊號

continue

while gpio.

input

(channel)

== gpio.high:#dht程式準備向資料匯流排拉高保持80us,以便dht準備傳送資料

continue

/*dht傳送資料*/

while j <

40:#單線序列傳送資料,共40位資料

k =0while gpio.

input

(channel)

== gpio.low:#每個資料位都以50us低電平開始,後續高電平訊號長度決定0或1

continue

while gpio.

input

(channel)

== gpio.high:#判斷高電平訊號長度

k +=1

if k >

100:#始終高電平,代表dht未正確響應

break

if k <8:

data.(0

)#高電平訊號持續為26

~28us,寫0

else

: data.(1

)#高電平持續訊號為70us左右,寫1

j +=1#讀取一位資料成功

print (

"sensor is working."

)print (data)#列印讀出的40位資料

humidity_bit = data[0:

8]#濕度位

humidity_point_bit = data[8:

16]#濕度檢測位

temperature_bit = data[16:

24]#溫度位

temperature_point_bit = data[24:

32]#溫度檢測位

check_bit = data[32:

40]#檢測位

humidity =

0humidity_point =

0temperature =

0temperature_point =

0check =

0/*資料換算及檢測資料是否正確*/

for i in range(8

):humidity +

= humidity_bit[i]*2

**(7

-i)#換算濕度

humidity_point +

= humidity_point_bit[i]*2

**(7

-i) temperature +

= temperature_bit[i]*2

**(7

-i)#換算溫度

temperature_point +

= temperature_point_bit[i]*2

**(7

-i) check +

= check_bit[i]*2

**(7

-i)

tmp = humidity + humidity_point + temperature + temperature_point

if check == tmp:#代表檢測成功,輸出溫度和濕度

print (

"temperature :"

, temperature,

"*c, humidity :"

, humidity,

"%")

else

: print (

"wrong"

)#檢測失敗,輸出錯誤資料

樹莓派學習 一 啟動樹莓派

格式化選擇碟符時務必謹慎,千萬不要選錯!在sd卡的boot根目錄下新建乙個txt檔案,修改名稱為ssh 沒有字尾 插入網線 插入sd卡 給樹莓派供電。共享網際網路。開啟網路和internet共享設定 更改介面卡選項 右鍵wlan屬性 共享 允許其他網路使用者通過此計算機的internet連線 家庭網...

樹莓派GPIO控制 python篇

樹莓派的軟體擴充套件庫雖然很多,但也導致了擴充套件庫 碎片化 的問題,例如操作樹莓派的gpio埠,gpio的編號便存在三種不同的方式。插座編號方式 編號側重p1插座側,從上到下,從左到右。正如圖3的header一欄。bcm2835編號方式 編號側重cpu暫存器,根據bcm2835的gpio暫存器編號...

樹莓派串列埠通訊 python篇

修改 boot 目錄下的cmdline.txt 修改內容為 dwc otg.lpm enable 0 console tty1 root dev mmcblk0p2 rootfstype ext4 elevator deadline fsck.repair yes rootwait安裝python ...