文档章节

树莓派用Python写几个简单程序6_yeelink平台

RagingTyphoon
 RagingTyphoon
发布于 2015/08/15 18:53
字数 451
阅读 324
收藏 0

首先先在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篇中有介绍过,不提。

© 著作权归作者所有

RagingTyphoon
粉丝 3
博文 28
码字总数 2689
作品 0
福州
私信 提问
用树莓派通过Java实现远程控制电灯

用树莓派通过Java实现远程控制电灯 本文章由 亓根火柴 原创,转载请注明出处:http://blog.csdn.net/qigenhuochai/article/details/17661845 传说,女娲娘娘炼就七根火柴,来帮助人类度过第一个...

亓根火柴
2014/01/02
1K
2
PHP再学习5——RESTFul框架 远程控制LED

0.前言 去年(2013年)2月第一次接触yeelink平台,当时该平台已经运行了一些时间也吸引了不少极客。试想自己也将投身IoT(物联网)行业,就花了些时间研究了它。陆陆续续使用和研究了一年,大...

thinkyoung
2014/12/02
0
0
用Python让Raspberry Pi“动”起来

【编者按】本文是来自奥松机器人社区的投稿,作者为小强之工,真名贝振权,无线电、电子、嵌入式爱好者。 前段时间,接触了一款在开源硬件界被称为是“人气之王”的树莓派(Raspberry Pi)袖珍...

RagingTyphoon
2015/08/16
378
0
子豪兄教你在树莓派上安装OpenCV

子豪兄教你在树莓派上安装OpenCV 本文介绍了如何在树莓派上安装分别运行在Python2和Python3的OpenCV。 运行在Python2上的OpenCV安装非常简单,几行命令即可搞定。运行在Python3上的OpenCV安装...

同济子豪兄
2018/10/05
0
0
基于树莓派如何开发机器人(附PPT+视频) | 硬创公开课

导语:树莓派是为学习计算机编程教育而设计的一种微型电脑,其系统是基于Linux的, 虽然只有信用卡大小,但视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。因此自问世以来,受到了...

金红
2017/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

堆”和“栈

C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。...

SibylY
30分钟前
3
0
总结:Https

一、介绍 简单理解,https即在http协议的基础上,增加了SSL协议,保障数据传输的安全性。 它由以前的http—–>tcp,改为http——>SSL—–>tcp;https采用了共享密钥加密+公开密钥加密的方式 ...

浮躁的码农
33分钟前
4
0
数据库表与表之间的一对一、一对多、多对多关系

表1 foreign key 表2 多对一:表 1 的多条记录对应表 2 的一条记录 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 表2的多条记...

Garphy
今天
7
0
MySQL 表崩溃修复

MySQL日志报错 2019-10-19 13:41:51 19916 [ERROR] /usr/local/mysql/bin/mysqld: Table './initread_hss/user_info' is marked as crashed and should be repaired2019-10-19 13:41:51 1......

雁南飞丶
今天
6
0
Error和Exception

1.Error类和Exception类都是继承Throwable类 2.Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问...

大瑞清_liurq
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部