锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

基于树莓派、温度传感器dh11简单的风扇控制

时间:2022-11-30 08:00:00 dht11温度过高关闭继电器

在开始写文章之前,简单地说,作为一个小白人文明来学习覆盆子派。一开始,我对覆盆子派一无所知,更不用说使用传感器了。但尽管如此,你仍然必须下学,你必须继续百度,看别人的东西,慢慢积累更多,你会对覆盆子派有一定的了解。
在开始这个实验之前,我建议你掌握以下软件的使用方法。winscp、putty会了这两个软件,你不懂linux没关系。
接下来,让我们开始我们的实验
准备准备实验材料
温度传感器 DH11 一个
树莓派3B 一个
继电器 一个
小风扇 一个
2.你应该对树莓派引脚有所了解
输入树莓派pinout你可以看到树莓派的引脚(如果树莓派本身的引脚不够,你可以在后期添加面包板来扩展树莓派的引脚)如下图所示:
针脚的含义如图所示
3.了解继电器

4.所有物理器件的物理连接

这里使用的继电器5v因此,输入电压不应大于5v。我在这里用树莓派供电(是的,但最好不要这样做)。最好用变压器使用220v转换为5v供电。由于连接相对简单,所以慢慢研究其他连接方法。
5、用winscp将代码烧入树莓派

将写好的代码直接从左拖到右,然后成功地将写好的代码烧进去。
运行您的代码
pyhton wss.py

# -*- 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:      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)    #GPIO.cleanup()     

7运行结果如下

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章