基于树莓派温度传感器控制

材料准备:
树莓派3b、温度传感器、继电器、风扇
具体的链接以下图:
在这里插入图片描述
代码以下:web

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:  
   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(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)  
|  |  |
|--|--|
|  |  |

电路链接比较简单,在这里不详细的叙述。app