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

 

原文地址:https://www.cnblogs.com/a986771570/p/7000589.html