yeelink怎么和树莓派 温度 yeelink链接

【智能家居】树莓派+DS18B20温度传感器+Yeelink实现家庭室内温度监控(python) - 为程序员服务
【智能家居】树莓派+DS18B20温度传感器+Yeelink实现家庭室内温度监控(python)
实现家庭室内温度远程监控只是“智能家居”的初步,目的是下班前如果发现家里温度过高,可提前用手机发送指令提前5-10分钟打开空调降温。
一、硬件准备
1、树莓派(Raspberry Pi)一个
2、DS18B20温度传感器一个(淘宝大概5元左右)
3、4.7kOhm电阻一个 或 DS18B20模块一个(笔者用,淘宝1.5元一个,其实就是店家帮忙把电阻焊好了,接线稍好看些)。
4、杜邦线三根(双头母)
二、接线方式(如图所示)
三、确认硬件接线是否正确并生效,并读取温度
1、首先升级内核(可忽略,但如果版本较老,可能影响设备读取)
apt-get update
apt-get upgrade
2、确认设备是否生效
sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices/
显示结果:
pi@raspberrypi:~$ cd /sys/bus/w1/devices/
pi@raspberrypi:/sys/bus/w1/devices$ ls
28- w1_bus_master1
28-就是笔者外接的温度传感器设备,但并不是每个客户端都显示一样的,这个是传感器的序列号。
3、查看当前温度
cat w1_slave
显示结果:
70 01 4b 46 7f ff 10 10 e1 : crc=e1 YES
70 01 4b 46 7f ff 10 10 e1 t=23000
第二行的t=23000就是当前的温度值,要换算成摄氏度,除以1000,即当前温度为=23摄氏度。
四、用python读取温度值
文件存放:/home/pi/temperature.py
内容如下:
#/home/pi/temperature.py
#打开温度传感器文件
tfile = open("/sys/bus/w1/devices/28-/w1_slave")
#读取文件所有内容
text = tfile.read()
tfile.close()
#用换行符分割字符串成数组,并取第二行
secondline = text.split("\n")[1]
#用空格分割字符串成数组,并取最后一个,即t=23000
temperaturedata = secondline.split(" ")[9]
#取t=后面的数值,并转换为浮点型
temperature = float(temperaturedata[2:])
#转换单位为摄氏度
temperature = temperature / 1000
print temperature
在命令行运行,即可得出结果数值:
python /home/pi/temperature.py
五、上报到yeelink
yeelink是国内比较知名的免费物联网数据平台,国外有COSM()。
申请yeelink账号及添加设备和传感器,以及API的学习,本文跳过,请大家自行去学习一下。
根据yeelink API的规则,我们需要提供一个文本文件,内容为一段JSON,如下:
“timestamp”:”T16:13:14″,
“value”:294.34
若未指定timestamp, 服务器会自动加上当前时间,所以本文的操作不添加该字段
1、修改python,将温度值用JSON格式保存到一个文本文件,全部如下:
#/home/pi/temperature.py
tfile = open("/sys/bus/w1/devices/28-/w1_slave")
text = tfile.read()
tfile.close()
secondline = text.split("\n")[1]
temperaturedata = secondline.split(" ")[9]
temperature = float(temperaturedata[2:])
temperature = temperature / 1000
res = '{"value":%f}' %temperature
output = open('/home/pi/datafile.txt', 'w')
output.write(res)
output.close
python将温度值写入:/home/pi/datafile.txt
2、新增yeelink.sh脚本
文件位置:/home/pi/yeelink.sh
内容如下:
sudo python /home/pi/temperature.py
curl --request POST --data-binary @"/home/pi/datafile.txt" --header "U-ApiKey:XXXXXXXXXXXXXXXX" http://api.yeelink.net/v1.0/device/1969/sensor/2533/datapoints
将U-ApiKey:XXXXXXXXXXXXXXXX替换为自已账户的API Key。
后面的URL也需要替换为自己申请的传感器URL。
3、添加到计划任务
#为脚本增加可执行权限
sudo chmod +x yeelink.sh
#将脚本加入cronjob(计划任务)
sudo crontab -e
#在cornjob文件中添加下面一行,并保存(表示10分钟执行一下脚本,时间可自行修改)
*/10 * * * * /home/pi/yeelink.sh
我的温度传感器数据展示页面:
参考文档:
http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/temperature/
/2012/09/raspberry-pi-ds18b20-temperature-sensor-rrdtool/
http://webshed.org/wiki/RaspberryPI_DS1820
专注WEB前端开发
原文地址:, 感谢原作者分享。
您可能感兴趣的代码树莓派上使用yeelink监控CPU、GPU温度 - 简书
树莓派上使用yeelink监控CPU、GPU温度
yeelink是一个物联网服务网站,可以将传感器的数据上传到yeelink上,将数据更好的展示出来,而且,可以使用yeelink开发更多有趣的东西,比如使用手机开关门窗等等。这篇文章教大家如何将树莓派的CPU、GPU温度传感器数据上传到yeelink上,并且进行监控,这样就可以以直观的图表查看树莓派的温度。一、准备工作所需材料:树莓派一台,B或者B+信号的都可以树莓派需要联网1、注册yeelink账号在 注册一个账号并且登陆,按照开发指南添加设备、添加传感器
yeelink开发指南
yeelink开发指南
2、获取key以及传感器URL在管理页面可以获得您的API Key,把他记下来在用户中心页面,可以看到添加的传感器URL,共有两个,分别是树莓派CPU、GPU传感器URL。获得这些数据后就可以连接树莓派进行下一步的开发了。
二、使用yeelink API开始上传数据在准备工作完成后,可以登陆树莓派进行下一步工作。1、安装vimsudo apt-get install vim2、更新系统sudo apt-get update3、新建文件 yeelink.py 添加以下内容
#!/usr/bin/env python
-- coding: utf-8 --
import requestsimport jsonimport timeimport commandsdef main()://需要填自己申请到的yeelink api Key 以及你的数据的url apiheaders = {'U-ApiKey': 'af14fd8', 'content-type': 'application/json'} apiurl_gpu = '' apiurl_cpu = ''//查看GPU温度 gpu = commands.getoutput( '/opt/vc/bin/vcgencmd measure_temp' ).replace( 'temp=', '' ).replace( '\'C', '' ) gpu = float(gpu) payload_gpu = {'value': gpu} r = requests.post(apiurl_gpu, headers=apiheaders, data=json.dumps(payload_gpu))//查看CPU温度 file = open("/sys/class/thermal/thermal_zone0/temp") cpu = float(file.read()) / 1000 file.close() payload_cpu = {'value': cpu} r = requests.post(apiurl_cpu, headers=apiheaders, data=json.dumps(payload_cpu)) time.sleep(1)if name == 'main': main()
4、运行 yeelink.py 文件,开始上报数据py yeelink.py等待程序执行完成,这时登陆yeelink网站,就可以看到树莓派的CPU、GPU温度数据了。三、自动树莓派上传温度数据第二步完成后,只有运行yeelink.py这个文件才能上报树莓派的温度监控数据,如果我们想让它自动完成,那么可以新建一个定时任务,来每隔一定时间自动上报温度数据。方法如下:1、新建crontab计划任务crontab -e2、输入计划任务详细的格式可以参考
这篇文章,我们这里设定一个每隔5分钟上传数据的任务,在文件的最下方添加/5
python ~/yeelink.py就像这样
这样就实现了树莓派每隔5分钟自动上传CPU、GPU温度数据的功能,就可以看到树莓派的CPU、GPU温度信息了。
树莓派CPU温度监控信息
树莓派CPU温度监控信息
树莓派GPU温度监控信息
树莓派GPU温度监控信息
监控页面在这里:
原创文章,转载请注明: 转载自
本文地址: 链接:
工科学生大四在读,专业嵌入式开发,喜欢计算机,喜欢单片机,喜欢各种各样美好的东西,相信科技正在...关于树莓派温度传感器上传数据到yeelink上的问题_树莓派吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:39,280贴子:
关于树莓派温度传感器上传数据到yeelink上的问题收藏
根据这个教程做的,将温度存在txt里,然后写了个sh脚本来读取温度,并且用curl指令加上yeelink的API KEY来上传数据,加入cronjob来循环执行,通过打开txt看发现数据是变化的,所以循环是运行的,但yeelink上并没有数据传上去,在树莓派里直接指令运行 curl --request POST --data-binary @&/home/pi/datafile.txt& --header &U-ApiKey:XXXXXXXXXXXXXXXX& ,返回错误could not resolve host:http,对于yeelink这个平台不是很熟悉,有木有大神看看我哪里错了,真的照着教程一步步做的
树莓派-京东潮流数码,大牌相机12期免息,平板二合一低至999!限时特惠,立即抢购!京东购物商城,潮流汇聚,时尚数码,超值优惠,品牌直营,极速配送!
我们常常在意别人怎么看我们,怎么说我们,然后在别人的言辞中忘掉了坚守自己内心的那份笃定。其实那些言语改变不了事实,却可能搅乱我们的心。人生三大遗憾:不会选择;不坚持选择;不断地选择。诺不轻信,故人不负我;诺不轻许,故我不负人。
求教温度传感器怎么接gpio口的
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或求助 根据网上的教程做了个树莓派加yeelink控制个小灯_树莓派吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:39,280贴子:
求助 根据网上的教程做了个树莓派加yeelink控制个小灯收藏
根据教程重启 自动运行脚本 一切正常但过一段时间就没反应了插上显示器也搜不到信号需要重启才行 恢复 有人遇到过这样的问题吗
树莓派-京东潮流数码,大牌相机12期免息,平板二合一低至999!限时特惠,立即抢购!京东购物商城,潮流汇聚,时尚数码,超值优惠,品牌直营,极速配送!
死机了,或者网络断了可能!重新接显示器,要重启的!
这明显是供电不足问题,重买变压器吧
LZ 能教教我怎么做么
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 树莓派yeelink控制led 的文章

 

随机推荐