# -*- coding: utf-8 -*-
#!/usr/bin/python
import rpi.gpio as gpio
import time
while true:
print("shuchu")
channel = 21 #引腳號16
channel1 = 19
data = #溫濕度值
j = 0 #計數器
gpio.setmode(gpio.bcm) #以bcm編碼格式
time.sleep(1) #時延一秒
gpio.setup(channel, gpio.out)
gpio.setup(channel1,gpio.out)
gpio.output(channel, gpio.low)
time.sleep(0.02) #給訊號提示感測器開始工作
gpio.output(channel, gpio.high)
gpio.setup(channel, gpio.in)
print("11112222")
while gpio.input(channel) == gpio.low:
continue
while gpio.input(channel) == gpio.high:
continue
while j < 40:
k = 0
while gpio.input(channel) == gpio.low:
continue
while gpio.input(channel) == gpio.high:
k += 1
if k > 100:
break
if k < 8:
else:
j += 1
print "sensor is working."
print data #輸出初始資料高低電平
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 = 0
humidity_point = 0
temperature = 0
temperature_point = 0
check = 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, ", humidity : " , humidity
if temperature>=24:
print("開啟風扇")
gpio.output(channel1,gpio.high)
else:
print("關閉風扇")
gpio.output(channel1,gpio.low)
else: #錯誤輸出錯誤資訊,和校驗資料
print "wrong"
print "temperature : ", temperature, ", humidity : " , humidity, " check : ", check, " tmp : ", tmp
time.sleep(1)
#gpio.cleanup()
7執行結果如下
樹莓派 溫濕度 DH11
最近在學習python,最近也買了塊樹莓派 raspberry 3 b 講不清是為了學習python而買的pi,還是為了鼓搗pi而去學習python。昨天晚上按照教程自己搭建了乙個溫濕度測試平台,主要也是在網上找的,我沒有仔細去看dh11的原理,大概和ds18b20是乙個套路吧。先能把 跑起來,再返...
DTH111 溫度感測器 獲取溫度 驅動 樹莓派
前言 由於我給我弟弟 小學生 買了乙個樹莓派,so,需要乙個例子激發他的興趣 正文開始 dth111.h 2018 02 13 1.0 ifndef dth111 h define dth111 h include include include typedef struct dth111 dth1...
樹莓派連線光敏感測器
光敏電阻是一種對光線特別敏感的模組,可以輸出高低電平或者是模擬值。利用該模組可以實現類似光控燈泡這樣的功能。下面的模組中有四個介面,分別是 vcc 5v gnd 負極 d0 數字輸出,高低電平 a0 模擬輸出,可以通過ad模組得到精確的變化值 注意 下圖中藍色轉盤是用來條件輸出高低電平的閾值的。ca...