• 基于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端口就可以随时随地查看当前的温度情况

     

  • 相关阅读:
    Linux:备份
    在 Cordova/Phonegap for Android 中包含中文文件名的页面
    jQuery插件开发
    为Google Reader守夜。。。
    冒泡排序
    无题六月
    XXX读后感
    KL25的AD采集操作
    工作流--JBPM简介及开发环境搭建
    内存错误:CRT detected that the application wrote to memory after end of heap buffer
  • 原文地址:https://www.cnblogs.com/a986771570/p/7000589.html
Copyright © 2020-2023  润新知