Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2012923
  • 博文数量: 356
  • 博客积分: 8284
  • 博客等级: 中将
  • 技术积分: 4580
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-15 20:25
个人简介

天行健,君子以自强不息

文章分类

全部博文(356)

文章存档

2018年(1)

2016年(4)

2015年(13)

2014年(14)

2013年(2)

2012年(25)

2011年(43)

2010年(65)

2009年(189)

分类: Python/Ruby

2014-12-14 18:14:25

1、编写脚本
cd /home/pi/test
nano post_hc_sr04.py
代码如下:

点击(此处)折叠或打开

  1. # -*- coding:utf-8 -*-

  2. import RPi.GPIO as GPIO
  3. import time
  4. import requests
  5. import json

  6. def checkdist():

  7.         #发出触发信号
  8.         GPIO.output(2,GPIO.HIGH)
  9.         #保持10us以上(我选择15us)
  10.         time.sleep(0.000015)
  11.         GPIO.output(2,GPIO.LOW)
  12.         while not GPIO.input(3):
  13.                 pass
  14.         #发现高电平时开时计时
  15.         t1 = time.time()
  16.         while GPIO.input(3):
  17.                 pass
  18.    
  19.         #高电平结束停止计时
  20.         t2 = time.time()
  21.         #返回距离,单位为米
  22.         return (t2-t1)*340/2
  23. GPIO.setmode(GPIO.BCM)
  24. #第3号针,GPIO2
  25. GPIO.setup(2,GPIO.OUT,initial=GPIO.LOW)
  26. #第5号针,GPIO3
  27. GPIO.setup(3,GPIO.IN)

  28. time.sleep(2)
  29. try:
  30.         while True:
  31.                 # 设备URI
  32.                 apiurl = 'http://api.yeelink.net/v1.1/device/16485/sensor/28542/datapoints'
  33.                 # 用户密码, 指定上传编码为JSON格式
  34.                 apiheaders = {'U-ApiKey': '9908e3876669432610e9a3ac2fbxxxxx', 'content-type': 'application/json'}
  35.                 #获取测量距离
  36.                 distance=checkdist()
  37.                 print 'distance is %0.2f m' %distance
  38.                 payload = {'value': distance}
  39.                 #发送请求,10s的频率
  40.                 r = requests.post(apiurl, headers=apiheaders, data=json.dumps(payload))
  41.                 time.sleep(10)
  42. except KeyboardInterrupt:
  43.         GPIO.cleanup()

2、修改bootup.sh

点击(此处)折叠或打开

  1. #!/bin/bash
  2. cd /home/pi/test
  3. #运行定时发送温度到yeelink脚本
  4. python post_temp_bytime &
  5. #运行定时发送距离到yeelink脚本
  6. python post_hc_sr04.py
第6行为加入的代码
由于bootup.sh再之前已经加到rc.local中,所以这里只需要重启就可以了。
3、reboot
4、重启后,看到yeelink接收到的距离数据和cpu温度数据

5、将超声波传感器对准门的位置,当有人进来后就会检测的距离的变化,如果本人不在家发现距离不对,说明进贼了!

阅读(2124) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~