1. 程式人生 > >**用樹莓派實現根據溫度自動開關風扇**

**用樹莓派實現根據溫度自動開關風扇**

樹莓派因為價格價格低,效能好的原因非常受極客推崇,最近入手了一個樹莓派3B,想用它做點東西玩玩,畢竟也是想通過樹莓派學習一些東西的。所以想到了用樹莓派做一個根據溫度自動開關風扇的作品。

材料準備:
溫度感測器 DH11 一個
樹莓派3B 一個
繼電器 一個
小風扇 一個

  **成品如下:**

在這裡插入圖片描述

#!/usr/bin/python  
import RPi.GPIO as GPIO  
import time
while True:
    GPIO.setmode(GPIO.BCM) #以BCM編碼格式
    GPIO.setup(24,GPIO.OUT)#clouth
    channel =
19 #引腳號16 data = [] #溫溼度值 j = 0 #計數器 time.sleep(1) #時延一秒 GPIO.setup(channel, GPIO.OUT) GPIO.output(channel, GPIO.LOW) time.sleep(0.02) #給訊號提示感測器開始工作 GPIO.output(channel, GPIO.HIGH) GPIO.setup(channel, GPIO
.IN) 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 < 6: data.append(0) else: data.append(1) 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(24,0) else: print("關風扇") GPIO.output(24,1) else: #錯誤輸出錯誤資訊,和校驗資料 print ("wrong") print ("temperature : ", temperature, ", humidity : " , humidity, " check : ", check, " tmp : ", tmp) GPIO.cleanup() #重置針腳 time.sleep(0.5)

第一次寫部落格,不好還請見諒。
如果想了解更多資訊請諮詢電話: 18460341801
微信同號,若想新增請請新增備註:CSDN
原始碼地址:https://github.com/mmlhy/-/tree/master