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



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

硬件平台: Raspberry Pi B+

软件平台:

1  安装 requests 库

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

安装easy_install:

  <span style="line-height: 1.6em; font-family: Arial;">wget </span><a target=_blank href="http://peak.telecommunity.com/dist/ez_setup.py">http://peak.telecommunity.com/dist/ez_setup.py</a><span style="line-height: 1.6em; font-family: Arial;"> </span>
<span style="line-height: 1.6em; font-family: Arial;">    <span style="line-height: 1.6em; font-family: Arial;">python ez_setup.py</span></span>
<span style="line-height: 1.6em; font-family: Arial;"><span style="line-height: 1.6em; font-family: Arial;">    <span style="font-family:Courier New;">easy_install requests</span></span></span>

安装好之后 在运行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

#!/bin/bash

cd /home/pi/python-works/yeelink-temp

python yeelink-temp.py &

参考:

树莓派学习笔记——定时向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

时间: 2024-08-05 11:10:03

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

树莓派学习笔记——定时向yeelink上传树莓派CPU温度

0 前言 本文通过python文件IO操作获得树莓派CPU温度信息,通过python request库周期性向yeelink平台上传温度,修改rc.local脚本使得该python脚本在开机时便在后台运行,向平台每5分钟上报一次温度信息. 网上查阅了很多关于linux开机启动的博文,尝试了几遍居然发现方法都无法实现开机启动效果.我想可能是操作系统或开发环境的微小差异产生的,如果发现博文中的内容存在问题,请及时留言,我查证之后定当修改. [相关博文] [树莓派学习笔记--获取树莓派CPU温度] [

香蕉派 banana pi BPI-M2_WiringPI 测试成功 代码已经上传GITHUB

香蕉派 banana pi BPI-M2_WiringPI 测试成功,代码已经上传到GITHUB BPI wiringpi 由树莓派最新的WiringPi代码修改过来,完全与树莓派的使用方法一样. GPIO库与测试代码完全公开在GITHUB上:https://github.com/BPI-SINOVOIP/BPI-WiringPi/tree/BPI_M2 演示视频: http://v.youku.com/v_show/id_XMTMxMjA1NTY3Mg==.html?from=y1.7-1.2

使用 Raspberry Pi 上的传感器在 Node.js 中创建一个 IoT Bluemix 应用程序

先决条件 一个IBM Bluemix 帐号,一个 Raspberry Pi 2 或 3,一个 PIR 运动传感器 适用于本文的 Github 存储库 如果您是一位精明的 Bluemix 开发人员,您可能只想看看如何在 node.js 中与 IoT 建立连接,或者只想了解如何从此 github 存储库中拉取我的代码. git clone https://github.com/nicolefinnie/iot-nodejs-tutorial 以下是实现与 IBM IoT 平台连接在一起的 4 个 R

RASPBERRY PI wifi配置

Raspberry Pi 手把手教你在树莓派上安装USB无线网卡支持WIFI 树莓派虽然已经有了有线网卡,但是并未配置无线网卡,移动性不够强,好在机器配备了2个USB口,当然要分一个出来给WIFI无线网卡使用了,这样小派使用起来就更便利了!我手头有个NetCore磊科NW336无线网卡,非常便宜的那种,好像芯片是Realtek的,插入USB口试试,发现网卡上的指示灯会闪烁,感觉有戏,马上登陆系统折腾:(一)查看USB设备类型,寻找USB无线网卡是否已经被系统识别.运行lsusb[email pr

Raspberry Pi开始流行 小心暗藏风险

Raspberry Pi(树莓派)是一种跟信用卡差不多大小的迷你电脑.它原本是专为学生设计的一种低成本计算机程序设计辅助工具,由于它丰富的多元性人们把它应用到各式各样的项目. 作为DIY 之王的pi,提供了 SD 卡插槽.USB 端口.以太网络端口.RCA 插槽.HDMI 端口.音讯输出以及 micro USB.因此,您可以扩充它的储存容量.用它来播放多媒体.或者用它来上网,也可以将它打造成一台移动电脑.文件服务器.游戏设备.玩具或创意电子设备,或是当成教学工具.它不仅用途广泛,而且售价仅25

2014年基于Raspberry Pi的5大项目

2014年基于Raspberry Pi的5大项目 Raspberry Pi(即树莓派)是一款基于Linux系统(Debian.ArchLinux)的单板机计算机,它只有一张信用卡大小,可用于电子表格制作.文字处理.游戏.高清视频播放等.它由英国的Raspberry Pi基金会开发,其目的是以低价硬件和自由软件刺激学校的基本的计算机科学教育.它搭载了ARM架构处理器,其运算性能和智能手机相仿.在接口方面,Raspberry Pi提供了USB接口.快速以太网接口.SD卡扩展接口以及HDMI高清视频输

Raspberry Pi 3 with Openwrt

https://wiki.openwrt.org/toh/raspberry_pi_foundation/raspberry_pi#boot_log_raspberry_pi_3 Table of Contents Supported Versions Hardware Specifications Raspberry Pi SoCs Raspberry Pi Models Using I2C and SPI Power Notes Serial Boot Logs Boot Log (Rasp

定时压缩备份文件(夹)并FTP上传至备份服务器批处理

定时压缩备份文件(夹)并FTP上传至备份服务器(BAT)rem 定时备份文件并FTP上传至备份服务器rem 要备份的文件夹(多个文件夹用空格分开)set bak_webFile=E:\sman\webfile E:\sman\datafilerem 临时文件夹set bak_tmpFile=C:\~SmanTemp\rem 日志文件夹set bak_logPath=C:\~bak_log\rem 生成的rar 文件名set bak_bakFile=YYYYMMDD(页面备份) rem 当前日期(

ZendFramework2学习笔记 文件上传、文件上传进度

修改php.ini以适应文件的要求: //php.ini file_uploads = On post_max_size = 600M upload_max_filesize = 600M session.upload_progress.enabled = On session.upload_progress.freq = "1%" session.upload_progress.min_freq = "1" 以上我们限制了文件大小限制在不超过600MB. 关于文件