二、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 ...