您的位置:首页 > 编程语言 > Python开发

树莓派3与MTH01温湿度传感器 、yeelink(python代码实现)

2016-08-25 20:36 519 查看
树莓派3读取MTH01温湿度传感器数据 并上传至yeelink

#!/usr/bin/env python  

# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO

import requests  

import json

import types

import time

import string

import struct

import commands

def upload_MTH01_data_to_yeelink():

    GPIO.setmode(GPIO.BOARD)

    GPIO.setup(12,GPIO.IN)

    GPIO.setup(36,GPIO.OUT)

    GPIO.output(36,GPIO.HIGH)

    time.sleep(0.02)

    GPIO.setup(18,GPIO.IN)

    data=0

    datatemp=0

    GPIO.output(36,GPIO.LOW)

    i=0

    for i in range (32):

        while GPIO.input(12)==0:

            continue

        datatemp=GPIO.input(18)

        data=data<<1

        if datatemp==1:

            data=1+data

        while GPIO.input(12)==1:

            continue

    GPIO.output(36,GPIO.HIGH)

    GPIO.cleanup()

    data=int(data)

    print data

    tem_16=hex(data)

    print tem_16

    tem=tem_16[2:5]

    hum=tem_16[5:7]

    check=tem_16[7:9]

    temp_data=int(tem,16)

    

    humi_data=int(hum,16)

    

    tem_data=float(temp_data-400)

    

    temp=float(tem_data/10)

    

    humi=humi_data

    print temp,'C'

    print humi,'%'

    apiheaders = {'U-ApiKey': 'fba6a171a9904e59eb7af72f2b269bc3', 'content-type': 'application/json'}  

    temp = commands.getoutput( '/opt/vc/bin/vcgencmd measure_temp' ).replace( 'temp=', '' ).replace( '\'C', '' )  

  

    # temp设备URI  

    apiurl_temp = 'http://api.yeelink.net/v1.0/device/350053/sensor/392495/datapoints'  

        #YEELINK 用户密码, 指定上传编码为JSON格式i  

        #apiheaders = {'U-ApiKey': 'fba6a171a9904e59eb7af72f2b269bc3', 'content-type': 'application/json'}  

    payload_temp = {'value': temp}  

    r = requests.post(apiurl_temp, headers=apiheaders, data=json.dumps(payload_temp))  

        # humi设备URI  

    apiurl_humi = 'http://api.yeelink.net/v1.0/device/350053/sensor/392497/datapoints'  

        #YEELINK 用户密码, 指定上传编码为JSON格式  

        #apiheaders = {'U-ApiKey': 'fba6a171a9904e59eb7af72f2b269bc3', 'content-type': 'application/json'}  

        # 字典类型数据,在post过程中被json.dumps转换为JSON格式字符串 {"value": 48.123}  

    payload_humi = {'value': humi}  

        #发送请求  

    r = requests.post(apiurl_humi, headers=apiheaders, data=json.dumps(payload_humi))  

  

def main():

    while True:

        upload_MTH01_data_to_yeelink()

        #休眠10秒

        time.sleep(30)

 

if __name__ == '__main__':  

    main()  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息