实验器材:树莓派三代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端口就可以随时随地查看当前的温度情况