树莓派吃灰已久,最近心血来潮就做了这个实时监控温湿度系统(ps:学习中)

    1:材料准备:

    DHT11温湿度传感器 树莓派 杜邦线

    2:连线

    VCC 连接树莓派1脚

    GND 连接树莓派6脚

    DATA 连接树莓派3脚

    3:在树莓派上写程序

    创建一个目录 —- 进入目录 ——创建主程序wendu.py

    sudo mkdir dht11

    cd dht11

    sudo nano wendu.py (ps:编辑器自选)

    将主程序写入

    1. GPIO.setup(channel, GPIO.OUT)GPIO.output(channel, GPIO.LOW)GPIO.output(channel, GPIO.HIGH)GPIO.setup(channel, GPIO.IN)while GPIO.input(channel) == GPIO.LOW:while GPIO.input(channel) == GPIO.HIGH:while GPIO.input(channel) == GPIO.LOW:while GPIO.input(channel) == GPIO.HIGH:print "sensor is working."humidity_point_bit = data[8:16]temperature_bit = data[16:24]temperature_point_bit = data[24:32] 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_pointprint "temperature :", temperature, "*C, humidity :", humidity, "%"print "temperature :", temperature, "*C, humidity :", humidity, "% check :", check, ", tmp :", tmpmytemp = '%f' %temperaturetmp_output = open('/home/pi/dht11/tmp_data.txt', 'w')hud_output = open('/home/pi/dht11/hum_data.txt', 'w')

    按Ctrl +X 保存退出

    4:

    登陆注册好的Onenet中移物联网平台 ,点击开发者中心,创建一个新产品

    树莓派 DHT11通过Onenet平台实现远程实时监控温湿度_Python - 图1

    创建完成后 记住你的APIkey

    树莓派 DHT11通过Onenet平台实现远程实时监控温湿度_Python - 图2

    点击左边的设备列表 添加设备 记住设备ID

    树莓派 DHT11通过Onenet平台实现远程实时监控温湿度_Python - 图3

    点击左边的数据流模板 添加数据流

    树莓派 DHT11通过Onenet平台实现远程实时监控温湿度_Python - 图4树莓派 DHT11通过Onenet平台实现远程实时监控温湿度_Python - 图5

    两个数据流模板添加完成,点击左边的应用管理, 添加设备

    树莓派 DHT11通过Onenet平台实现远程实时监控温湿度_Python - 图6

    编辑应用

    树莓派 DHT11通过Onenet平台实现远程实时监控温湿度_Python - 图7

    添加折线图来监控温湿度变化情况,设置属性,把添加好的数据流模板添加进去 ,温湿度各添加一个折线图

    树莓派 DHT11通过Onenet平台实现远程实时监控温湿度_Python - 图8

    Onenet设置好了

    5:在树莓派dht11目录下写上传温度的数据程序 sudo nano tmp.py

    1. file = open("/home/pi/dht11/tmp_data.txt") temperature= float(file.read()) CurTime = datetime.datetime.now() url='http://api.heclouds.com/devices/你的设备ID/datapoints' values={'datastreams':[{"id":"temp","datapoints":[{"at":CurTime.isoformat(),"value":temperature}]}]}print "the time is: %s" %CurTime.isoformat()print "The upload temperature value is: %.3f" %temperature jdata = json.dumps(values) request = urllib2.Request(url, jdata) request.add_header('api-key', APIKEY) request.get_method = lambda:'POST' request = urllib2.urlopen(request)print "OneNET result:\n %s" %resp

    注意将你的APIkey 和设备ID填入程序里,写好之后保存退出。

    6:同样的写入上传湿度的程序 sudo nano hum.py

    根据温度上传的代码改一下就可以了,这里就不再累述(PS:写累了)

    在dht11下创建两个txt文件,tmp_data.txt,hum_data.txt (PS:这很重要)

    7:设置自动执行(不明白的去查一下资料)

    sudo crontab -e

    点击2 进入编辑界面 在最下面输入下面的代码

    1. */**** python/home/pi/dht11/tmp.py*/**** python/home/pi/dht11/hum.py*/**** python/home/pi/dht11/wendu.py

    这个文件路径是我自己的,不知道自己文件路径的话 pwd 命令 查看一下,写好之后保存退出程序就可以运行了

    (ps:如果最后没有做好 ,可以单独运行每个py文件 查找原因。最好给文件目录及下面的文件直接赋予最高权限,不然容易出不来)

    8:点击Onenet的设备管理,点击设置好的应用就能看看实时温湿度数据了,这是我的结果,我也是趟了好多雷才成功!

    树莓派 DHT11通过Onenet平台实现远程实时监控温湿度_Python - 图9