用yeelink记录树莓派的工作温度
2016-07-21 15:41
211 查看
原文地址:http://s.mile77.com/?p=2034
树莓派可以挖矿,当然也可以顺便做其它事情,装个温度传感器就可以定时记录温度了,只是在附近电子市场转了一圈没买到合适的温度传感器,网上买还没邮费那么贵,而且就是玩玩,也没什么必要。既然树莓派的内部有个传感器可以记录内核温度,就用这个来玩吧。
(1)首先要准备两样东西:
1.可以上网的树莓派一个。
2.物联网的帐号一个,例如 yeelink.net 的帐号。
(2)然后就可以开始了。
由于树莓派没有硬盘,是用SD卡当硬盘用的,所以为了避免擦写过于频繁,我们在内存里开辟一个小区域专用来存放要运行的文件和中间文件。
先在/mnt 下新建一个文件夹
[python] view
plain copy
sudo mkdir /mnt/tmp
然后把这个文件夹挂进内存里
[python] view
plain copy
sudo mount -t tmpfs -o size=5m tmpfs /mnt/tmp
这句命令的意思就是把/mnt/tmp挂进内存里,上限是5m,不用就不占空间,更多的资料请搜一下linux 相关的 tmpfs 。挂进内存之后可以用 df 命查看。
测试成功之后我们要树莓派开机自动把文件夹挂进内存。在编辑/etc/fstab
[python] view
plain copy
sudo nano /etc/fstab
在最后增加一行
[python] view
plain copy
tmpfs /mnt/tmp tmpfs size=5m 0 0
然后回车再 Ctrl+X保存退出,这样开机的时候就会自动把文件夹挂进内存。
在pi的目录下(也就是/home/pi)新建 temp.py,这个是用python语言来取得树莓派的内核温度,并保存为一个内容为JSON格式的文本文件。之所以保存为JSON格式,是因为yeelink.net网站的要求,我们要把数值提交给物联网,要按照API接口行事。
[python] view
plain copy
pi@raspberrypi ~ $nano temp.py
键入以下内容:
[python] view
plain copy
#打开这个文件,内容就是派的内核温度,除以1000就是摄氏度。
tfile = open("/sys/class/thermal/thermal_zone0/temp")
text = tfile.read()
tfile.close()
#除以1000就是摄氏度的数值。
temperature = float(text)/1000
#作些处理,整容成JSON格式,并让数值保留小数点后一位。
res = '{"value":%.1f}' %temperature
#保存到/mnt/tmp/temp.txt
output = open('/mnt/tmp/temp.txt', 'w')
output.write(res)
output.close
照例Ctrl+X 保存退出。
然后再新建一个sh脚本:
[python] view
plain copy
nano yeelink.sh
输入内容:
[python] view
plain copy
#注意这句执行的是/mnt/tmp/下的文件,而不是home/pi/
sudo python /mnt/tmp/temp.py
curl --request POST --data-binary @"/mnt/tmp/temp.txt" --header "U-ApiKey:XXXXXXXXXXXXXX" --verbose
API_地址
记得要把上面的ApiKey和API地址换成你在yeelink.net帐号对应的资料。
API KEY:进入yeelink.net的用户中心,点“帐户”-“我的帐户设置”就可以看到了。
API地址:进入yeelink.net的用户中心,点“我的设备”-“管理设备”,选择对应数值传感器的数据曲线 url就对了。没有传感器就新建一个,这就不多说了。
关于详细的API接口操作,可以点击“用户中心”里“API文档”查阅。
照样保存退出。但是作为.sh文件,必须修改一下属性让它可以被执行。
[python] view
plain copy
sudo chmod +x yeelink.sh
每执行一次,就读一次内核温度后上传到yeelink。
OK了,最后就是设置系统启动的时候把 temp.py 和 yeelink.sh 从 home/pi/ 拷贝到 /mnt/tmp/,同时每10分钟执行一次yeelink.sh
[python] view
plain copy
sudo nano /etc/rc.local
在exit 0这行之上写上
[python] view
plain copy
sudo cp /home/pi/temp.py /mnt/tmp/
sudo cp /home/pi/yeelink.sh /mnt/tmp/
保存退出。
最后启用cron来每十分钟执行一次,cron是linux内置进程,专门掐时敲钟的干活。
[python] view
plain copy
sudo crontab -e
在最后新增一行:
[python] view
plain copy
*/10 * * * * /mnt/tmp/yeelink.sh
回车保存退出。
这行代码的意思是每十分钟执行一次/mnt/tmp/yeelink.sh
具体关于cron的运行,启动停止重启之类的操作请自行搜索。
一般来说,把两个文件拷到/mnt/tmp/就可以正常运行了,重启系统也会自动运行。
有兴趣可以来这里围观我家树莓派的体温:
http://www.yeelink.net/devices/3908
后话:本来用Python结合CURL,应该是可以直接提交数值的,用不着保存一个文件再把文件提交给yeelink的,但是我没用过python,又刚刚学linux。先这样吧。
顶
0
树莓派可以挖矿,当然也可以顺便做其它事情,装个温度传感器就可以定时记录温度了,只是在附近电子市场转了一圈没买到合适的温度传感器,网上买还没邮费那么贵,而且就是玩玩,也没什么必要。既然树莓派的内部有个传感器可以记录内核温度,就用这个来玩吧。
(1)首先要准备两样东西:
1.可以上网的树莓派一个。
2.物联网的帐号一个,例如 yeelink.net 的帐号。
(2)然后就可以开始了。
由于树莓派没有硬盘,是用SD卡当硬盘用的,所以为了避免擦写过于频繁,我们在内存里开辟一个小区域专用来存放要运行的文件和中间文件。
先在/mnt 下新建一个文件夹
[python] view
plain copy
sudo mkdir /mnt/tmp
然后把这个文件夹挂进内存里
[python] view
plain copy
sudo mount -t tmpfs -o size=5m tmpfs /mnt/tmp
这句命令的意思就是把/mnt/tmp挂进内存里,上限是5m,不用就不占空间,更多的资料请搜一下linux 相关的 tmpfs 。挂进内存之后可以用 df 命查看。
测试成功之后我们要树莓派开机自动把文件夹挂进内存。在编辑/etc/fstab
[python] view
plain copy
sudo nano /etc/fstab
在最后增加一行
[python] view
plain copy
tmpfs /mnt/tmp tmpfs size=5m 0 0
然后回车再 Ctrl+X保存退出,这样开机的时候就会自动把文件夹挂进内存。
在pi的目录下(也就是/home/pi)新建 temp.py,这个是用python语言来取得树莓派的内核温度,并保存为一个内容为JSON格式的文本文件。之所以保存为JSON格式,是因为yeelink.net网站的要求,我们要把数值提交给物联网,要按照API接口行事。
[python] view
plain copy
pi@raspberrypi ~ $nano temp.py
键入以下内容:
[python] view
plain copy
#打开这个文件,内容就是派的内核温度,除以1000就是摄氏度。
tfile = open("/sys/class/thermal/thermal_zone0/temp")
text = tfile.read()
tfile.close()
#除以1000就是摄氏度的数值。
temperature = float(text)/1000
#作些处理,整容成JSON格式,并让数值保留小数点后一位。
res = '{"value":%.1f}' %temperature
#保存到/mnt/tmp/temp.txt
output = open('/mnt/tmp/temp.txt', 'w')
output.write(res)
output.close
照例Ctrl+X 保存退出。
然后再新建一个sh脚本:
[python] view
plain copy
nano yeelink.sh
输入内容:
[python] view
plain copy
#注意这句执行的是/mnt/tmp/下的文件,而不是home/pi/
sudo python /mnt/tmp/temp.py
curl --request POST --data-binary @"/mnt/tmp/temp.txt" --header "U-ApiKey:XXXXXXXXXXXXXX" --verbose
API_地址
记得要把上面的ApiKey和API地址换成你在yeelink.net帐号对应的资料。
API KEY:进入yeelink.net的用户中心,点“帐户”-“我的帐户设置”就可以看到了。
API地址:进入yeelink.net的用户中心,点“我的设备”-“管理设备”,选择对应数值传感器的数据曲线 url就对了。没有传感器就新建一个,这就不多说了。
关于详细的API接口操作,可以点击“用户中心”里“API文档”查阅。
照样保存退出。但是作为.sh文件,必须修改一下属性让它可以被执行。
[python] view
plain copy
sudo chmod +x yeelink.sh
每执行一次,就读一次内核温度后上传到yeelink。
OK了,最后就是设置系统启动的时候把 temp.py 和 yeelink.sh 从 home/pi/ 拷贝到 /mnt/tmp/,同时每10分钟执行一次yeelink.sh
[python] view
plain copy
sudo nano /etc/rc.local
在exit 0这行之上写上
[python] view
plain copy
sudo cp /home/pi/temp.py /mnt/tmp/
sudo cp /home/pi/yeelink.sh /mnt/tmp/
保存退出。
最后启用cron来每十分钟执行一次,cron是linux内置进程,专门掐时敲钟的干活。
[python] view
plain copy
sudo crontab -e
在最后新增一行:
[python] view
plain copy
*/10 * * * * /mnt/tmp/yeelink.sh
回车保存退出。
这行代码的意思是每十分钟执行一次/mnt/tmp/yeelink.sh
具体关于cron的运行,启动停止重启之类的操作请自行搜索。
一般来说,把两个文件拷到/mnt/tmp/就可以正常运行了,重启系统也会自动运行。
有兴趣可以来这里围观我家树莓派的体温:
http://www.yeelink.net/devices/3908
后话:本来用Python结合CURL,应该是可以直接提交数值的,用不着保存一个文件再把文件提交给yeelink的,但是我没用过python,又刚刚学linux。先这样吧。
顶
0
相关文章推荐
- UIBarbuttonItem的rigthItem的创建
- unity出现错误记录
- 读《JavaScript DOM编程艺术》笔记一
- D - Spreadsheets
- Python:10054错误
- sort函数
- JAVA写的网页爬虫爬取必应词典的词汇音标
- 成为Android高手一般分为五个阶段
- Java内存溢出详解
- Xcode安装使用第三方库的管理工具CocoaPods
- Mongodb(3)插入文档,更新文档,删除文档
- 监听Activity的生命周期
- 【CodeForces】[659A]New Year and Days
- 插入排序
- memcached 常用命令及使用说明
- matlab的函数conv()的C语言实现
- 安卓打开系统的设置页面
- 安卓学习笔记---解决在在Edittext输入的时候,输入框被软键盘遮挡部分内容的问题(一)
- Ruby gem: Mac 系统下的安装与更新
- javascript 引用类型 - Array类型