Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度

硬件平台: Raspberry Pi B+

软件平台: Raspberry

系统与前期安装请参见:树莓派(Rospberry Pi B+)到货亲测  :http://blog.csdn.net/xiabodan/article/details/38984617#0-qzone-1-66514-d020d2d2a4e8d1a374a433f596ad1440

更多内容关注http://blog.csdn.net/xiabodan

1  安装 requests 库

首先我们要先解决requests库,当我们向YEELINK POST 消息的时候会用到  : r = requests.post(apiurl, headers=apiheaders, data=json.dumps(payload))

安装easy_install:

wget http://peak.telecommunity.com/dist/ez_setup.py

python ez_setup.py

easy_install  requests

安装好之后 在运行python,如果没报错  那就说明安装成功了

    python
import requests

2 申请YEELINK帐号并添加设备

一家中国的创业公司Yeelink,物联网平台,也正在利用无线网络、开源硬件和软件,当然还有智能手机和App来做到这一点。

申请帐号很简单 在官网上偶详细的说明文档:http://www.yeelink.net/

重要的是我们需要添加两个设备,一个是CPU温度另一个是GPU温度,在此我们要获取两个重要的东西,也就是写程序消息POST的目的地(自己申请的)

1        'ApiKey'   在“我的账户设置”中查看

2        URL: http://api.yeelink.net/v1.0/device/13926/sensor/23121/datapoints(自己申请)

3  编写python源程序

有了YEELINK平台之后,我们做的工作就是需要在树莓派B+上,定时的将温度数据传到YEELINK上,新建pi_temp.py的python文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
import time
import commands def main():
# fileRecord = open("result.txt", "w")
# fileRecord.write("connect to yeelink\n");
# fileRecord.close()
while True:
# 打开文件 apiheaders = {'U-ApiKey': 'a96bbccdd8f5e6e24fd3b2358d6cbc45', 'content-type': 'application/json'}
gpu = commands.getoutput( '/opt/vc/bin/vcgencmd measure_temp' ).replace( 'temp=', '' ).replace( '\'C', '' )
gpu = float(gpu)
#print('gpu value:%.2f' % gpu)
# GPU设备URI
apiurl_gpu = 'http://api.yeelink.net/v1.0/device/13926/sensor/23125/datapoints'
#YEELINK 用户密码, 指定上传编码为JSON格式i
#apiheaders = {'U-ApiKey': 'a96bbccdd8f5e6e24fd3b2358d6cbc45', 'content-type': 'application/json'}
payload_gpu = {'value': gpu}
r = requests.post(apiurl_gpu, headers=apiheaders, data=json.dumps(payload_gpu)) file = open("/sys/class/thermal/thermal_zone0/temp")
# 读取结果,并转换为浮点数
cpu = float(file.read()) / 1000
# 关闭文件
file.close()
#print('cpu value:%.2f' % cpu)
# CPU设备URI
apiurl_cpu = 'http://api.yeelink.net/v1.0/device/13926/sensor/23121/datapoints'
#YEELINK 用户密码, 指定上传编码为JSON格式
#apiheaders = {'U-ApiKey': 'a96bbccdd8f5e6e24fd3b2358d6cbc45', 'content-type': 'application/json'}
# 字典类型数据,在post过程中被json.dumps转换为JSON格式字符串 {"value": 48.123}
payload_cpu = {'value': cpu}
#发送请求
r = requests.post(apiurl_cpu, headers=apiheaders, data=json.dumps(payload_cpu)) # 向控制台打印结果
# 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(1*60) if __name__ == '__main__':
main()

编写完成之后,只中断中直接运行

python pi_temp.py

调试没错之后,此步骤完成

4  添加脚本文件auto_start.sh

新建auto_start.sh文件,内容添加如下

#!/bin/bash
cd /workplace/
python pi_temp.py &

5 开机启动 修改/etc/rc.local文件

 vim /etc/rc.local

添加如下代码:

 # 向yeelink上传树莓派CPU温度  注意.sh文件路径为自己的添加路径,我的是/workplace
/workplace/auto-start.sh start

重启  reboot

查看刚才时候生成新进程

 ps aux | grep pi_temp.py

可以看到我们的进程为 2840

通过kill 2840 可以关闭进程

6 刷新YEELINK设备网页

可以看到已经有数据上传到服务器了

参考:

树莓派(Rospberry Pi B+)到货亲测http://blog.csdn.net/xiabodan/article/details/38984617#0-qzone-1-66514-d020d2d2a4e8d1a374a433f596ad1440

树莓派学习笔记——定时向yeelink上传树莓派CPU温度 :  http://blog.csdn.net/xukai871105/article/details/38349519

python requests的安装与简单运用 :http://www.zhidaow.com/post/python-requests-install-and-brief-introduction

树莓派+温度传感器实现室内温度监控 :http://shumeipai.nxez.com/2013/10/03/raspberry-pi-temperature-sensor-monitors.html

获取树莓派的CPU和GPU温度(Python) : http://shumeipai.nxez.com/2014/02/20/get-raspberry-pi-cpu-and-gpu-temperature-python.html

ROS ZYNQ移植 (安装easy_install)  :http://blog.csdn.net/xiabodan/article/details/37565261

           理解Linux系统/etc/init.d目录和/etc/rc.local脚本 :http://blog.csdn.net/acs713/article/details/7322082

           linux下杀死进程(kill)的N种方法 :http://blog.csdn.net/andy572633/article/details/7211546

           树莓派 插电自动登录、自动运行程序 :http://www.lightdew.com/a/chengxujishu/505.html






Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度的更多相关文章

  1. 定时备份 MySQL 并上传到七牛

    多数应用场景下,我们需要对重要数据进行备份.并放置到一个安全的地方,以备不时之需. 常见的 MySQL 数据备份方式有,直接打包复制对应的数据库或表文件(物理备份).mysqldump 全量逻辑备份. ...

  2. 【Raspberry Pi】定时运行python程序读温湿度传感器数据&发邮件

    1.定时执行脚本 http://tech.it168.com/a2011/0707/1214/000001214830_all.shtml /sbin/service crond start //启动 ...

  3. modbus转乐鑫物联网平台上传工具

    乐鑫平台推荐个人用户使用 界面比较简洁

  4. RASPBERRY PI wifi配置

    Raspberry Pi 手把手教你在树莓派上安装USB无线网卡支持WIFI 树莓派虽然已经有了有线网卡,但是并未配置无线网卡,移动性不够强,好在机器配备了2个USB口,当然要分一个出来给WIFI无线 ...

  5. 2014年基于Raspberry Pi的5大项目

    2014年基于Raspberry Pi的5大项目   Raspberry Pi(即树莓派)是一款基于Linux系统(Debian.ArchLinux)的单板机计算机,它只有一张信用卡大小,可用于电子表 ...

  6. EasyNVR流媒体服务器接入EasyDSS云视频平台快照上传实现

    EasyNVR拥有接入EasyDSS云平台的功能 接入EasyDSS云平台会定时向云平台上传快照数据,这个快照数据用于云平台向客户端提供快照展示 遇到的问题 由于快照上传的间隔提供认为修改的功能,则我 ...

  7. 树莓派 (Raspberry Pi) 是什么?普通人怎么玩?(私有云NAS也会有;上传到百度盘的功能nas也有)

    作者:王震宇链接:https://www.zhihu.com/question/20859055/answer/54734499来源:知乎著作权归作者所有,转载请联系作者获得授权. 我两年前买的(约2 ...

  8. 2019 年在 Raspberry Pi 「树莓派」上运行的 10 个操作系统推荐

    原文:2019 年在 Raspberry Pi 「树莓派」上运行的 10 个操作系统推荐 image Raspberry Pi** 是一款基于 ARM 的单板计算机,默认运行一款称为 Raspbian ...

  9. 让Mono 4在Raspberry Pi上飞

    最近公司有项目想要在树莓派上做,代替原来的工控机(我们是把工控主机当作小的主机用,一台小的工控主机最少也要600左右,而树莓派只要200多).于是,公司买了一个Raspberry Pi B+和一个Ra ...

随机推荐

  1. java中通过位运算实现多个状态的判断

    通过 <<  |  & ~ 位运算,实现同时拥有多个状态 通过 << 定义数据的状态 public interface LogConstants { /** * 消耗标 ...

  2. Java多线程之后台线程不执行finally

    后台线程不执行finally package wzh.daemon; import java.util.concurrent.TimeUnit; class ADaemon implements Ru ...

  3. ruby 使用Struct场景

    替代类使用,节省代码,清晰简洁 使用Struct SelectOption = Struct.new(:display, :value) do def to_ary [display, value] ...

  4. 学习MVC框架的步骤

    1.搭建环境 2.了解控制层和视图层的映射 3.控制层和视图层的传值 交互 4.异常处理 5.页面标签 6.文件上传 7.框架源代码

  5. [Java] java中的异常处理

    Java中的异常类都继承自Throwable类.一个Throwable类的对象都可以抛出(throw). Throwable对象可以分为两组.一组是unchecked异常,异常处理机制往往不用于这组异 ...

  6. eclipse对项目整理分类

    1.Eclipse提供了工作集(Working Set)的功能,它可以用来划分这些项目. 在Package Explorer视图的下拉菜单里选择Show->Working Sets,然后还是在它 ...

  7. Quartz.net一个简要示例

    下面描述了一个Quartz.net最常用的应用场景,按特定秒数触发执行特定任务. 1.任务要继承自:IJob,在Execute方法中填入自己需要执行的任务. public virtual void E ...

  8. python 之 模拟GET/POST提交

    以 POST/GET 方式向 http://127.0.0.1:8000/test/index 提交数据. # coding:utf-8 import httplib import urllib cl ...

  9. 页面设计--Tree目录树

    Tree目录树控件属性: 根据数据集合来配置相应的信息 加载模式有自动加载.自定加载 web中显示效果图:

  10. AIX配置时间服务器(NTP)

    xntpd是关于网络时间协议的守护进程,它遵循了因特网时间服务器的通用标准.在启动 xntpd 时, xntpd 会读取 /etc/ntp.conf 配置文件来确定网络中系统时钟服务器,以 ntp 服 ...