首先先在yeelink平台上注册,获得自己的APIKEY,
创建设备及设备上传感器,读取传感器的apiurl。
例子1:上传树莓派温度数据到yeelink -> yeelink_temp.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
import time
def main():
fileRecord = open("result.txt", "w")
fileRecord.write("connect to yeelink\n");
fileRecord.close()
while True:
# 打开文件
file = open("/sys/class/thermal/thermal_zone0/temp")
# 读取结果,并转换为浮点数
temp = float(file.read()) / 1000
# 关闭文件
file.close()
# 设备URI,在创建的温度传感器处查看自己的传感器apiurl替换下面的路径
apiurl = 'http://api.yeelink.net/v1.0/device/2342/sensor/2555/datapoints'
# 用户密码, 指定上传编码为JSON格式
apiheaders = {'U-ApiKey': 'f07f2b260a6635*****b4a3a*******5', 'content-type': 'application/json'}
# 字典类型数据,在post过程中被json.dumps转换为JSON格式字符串 {"value": 48.123}
payload = {'value': temp}
#发送请求
r = requests.post(apiurl, headers=apiheaders, data=json.dumps(payload))
# 向控制台打印结果
fileRecord = open("result.txt", "a")
strTime = time.strftime('%Y-%m-%d:%H-%M-%S',time.localtime(time.time()))
fileRecord.writelines(strTime + "\n")
strTemp = "temp : %.1f" %temp + "\n"
fileRecord.writelines(strTemp)
fileRecord.writelines(str(r.status_code) + "\n")
fileRecord.close()
time.sleep(2*60)
if __name__ == '__main__':
main()
例子2:yeelink创建开关控制led -> yeelink_led_ctl.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import time
import driver_gpio_led
# 设备URI, 在创建的温度传感器处查看自己的传感器apiurl替换下面的路径
apiurl = 'http://api.yeelink.net/v1.0/device/2332/sensor/2578/datapoints'
# 用户密码
apiheaders = {'U-ApiKey': 'f07f2b260a6635*****b4a3a*******5'}
led = driver_gpio_led.gpio_led(7)
while True:
#发送请求
r = requests.get(apiurl,headers=apiheaders)
# 打印响应内容
#print(r.text)
# 转换为字典类型 请注意 2.7.4版本使用r.json()
led_state = r.json()
# {'value':x} x=1打开状态,x=0关闭状态
if led_state['value'] == 1:
print("led on")
led.gpio_high()
else:
print("led off")
led.gpio_low()
# 延时5S
time.sleep(5)
led.clean()
还需要driver_gpio_led.py 在前文第2篇中有介绍过,不提。