zoukankan      html  css  js  c++  java
  • 基于raspberry的温湿度传感器

    实验器材:树莓派三代b型,温湿度传感器DHT11型号,5寸显示器,无线键盘,内存等。

    树莓派实物图

    树莓派原理图

    上图中要中到的接口有

    DC power 5v DC power 3.3v  Ground接口  GPIO接口

    下面来看温湿度传感器DHT11实物原理图

    上图中要用到接口有VCC GND DATA接口

    vcc接上电源正极pc power3.3v接口

    gnd接到ground接口

    data接到gpio接口

    使用三根母对母的线进行连接

    如果要使用5v的电源则 需要串联一个电阻,电阻起到限流的作用。

    nc接口悬空(芯片中的nc引脚没有任何用途,只限于封装,但却必须存在)

    在这里使用python脚本获得数据再将这些数据通过电位换算获得实际的温湿度

    Import RPI.GPIO as GPIO 
    Import time
    
    Channel =4 
    Data = []
    J = 0
    
    GPIO.setmode(GPIO.BCM)
    
    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 < 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, “*C, humidity :”, humidity, “%”
    Else:
      Print “wrong”
      Print “temperature :”, temperature, “*C, humidity :”, humidity, “% check :”, check, “, tmp :”, tmp
    
    GPIO.cleanup()

    说明:
    1)GPIO.setmode(GPIO.BOARD),采用插座引脚编号方式。
    由于进行过一次编码转换,所以channel只需要修改为对应的引脚即可

     

    接线完成后 启动python脚本

    获得当前温度28摄氏度 湿度百分之58

    2.将数据通过网页的形式显示出来

    首先要配置apache服务器

    apt-get install apache (下载阿帕奇服务)

    service apache start(开启阿帕奇服务)

    然后将启动 python temp.py >> /var/www/html/index.html

    将数据重定向到服务器里

    最后访问对应的ip地址80端口就可以随时随地查看当前的温度情况

     

  • 相关阅读:
    (转)用JMX监测JVM的运行参数
    MySql
    ORACLE小工具:存储过程清空所有表或使所有触发器失效
    简单易懂,原码,补码,反码
    centos7如何关闭防火墙
    中兴大事件
    苹果降频门:旧款iPhone哪些功能受到影响
    苹果降频门
    华为P10闪存门
    N32903系列的基础知识(1)
  • 原文地址:https://www.cnblogs.com/a986771570/p/7000589.html
Copyright © 2011-2022 走看看