raspberry 连接yeelink,并通过串口输出

最近刚用树莓派捣鼓了一个智能家居系统,顺带记录一下代码,免得今后做同一项目时忘了:

首先,新建一个py文件(getdata.py)用于读取yeelink上的指令:

#!/usr/bin/env python  
# -*- coding: utf-8 -*-  
import requests   
import time  
# 设备URI  
apiurl = ['这是你的设备状态url‘]  
# 用户密码  
apiheaders = {'U-ApiKey': 这个不用说,在你自己用户那找'}  
while True:  
  #发送请求  
  for i in range(X):

#该处循环次数自己设置,即设置平台上有几个开关
      r = requests.get(apiurl[i],headers=apiheaders)
      # 打印响应内容  
      print(r.text)  
      # 转换为字典类型 请注意 2.7.4版本使用r.json()  
      led = json_load(r)
  # {'value':x} x=1打开状态,x=0关闭状态  


  # 延时1S  

  time.sleep(1)

延时一秒后这段代码会  重复执行

这段读取yeelink的指令可以见我另外一篇博客: http://blog.csdn.net/topkipa/article/details/25752707

大家写的时候注意缩进,另外pi上的python库中没有requests库,需要自己安装。

接着,再建一个py文件(order.py)用于执行yeelink上的指令,此处,以uart串口与gpio控制为例(我们这里假设平台上开关只有一个):

import getdata.py

import serial

import RPi.GPIO as GPIO

import time

#打开串口
ser=serial.Serial('/dev/ttyAMA0',9600)  //这里波特率设置为9600,如果用115200的话会报错

GPIO.setup(11,GPIO.OUT)  //调用11口,注意,gpio口只有11,12,13,15,16,18,22口可以用,具体的见pi的端口定义

while True:

if led['value'] == 1: 

ser.write('turn on ')

GPIO.output(11, True) //注意,逗号后面有一个空格

time.sleep(2)

GPIO.output(11, False)

time.sleep(2) //这里是控制gpio口输出高低电平,周期为2秒

else:

ser.write('turn off ')   //这里是给uart串口那传入一字符串,其中具体穿什么可以自己定串口的通信协议

GPIO.output(11, False)

后记:

整个程序里面的requests库,gpio库,serial库都需要自己下载,pi本身不自带。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值