转自:https://blog.csdn.net/weixiazailaide/article/details/52740167

前期准备

安装python
https://blog.csdn.net/fm0517/article/details/80942135

安装rpi.gpio

sudo pip install pip.gpio

读取树莓派的状态

创建raspberrypistate应用

cd  /home/pi/helloworld
python manage.py startapp raspberrypistate

配置django

配置settings.py

cd /home/pi/helloworld/helloworld
vi settings.py

settings.py 需要在INSTALLED_APPS 处添加
‘raspberrypistate.apps.RaspberrypistateConfig’,
把TEMPLATES 中DIRS更改为
‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)],
如下所示

# Application definitionINSTALLED_APPS = ['raspberrypistate.apps.RaspberrypistateConfig','django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',
]TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]

配置urls.py

cd /home/pi/helloworld/helloworld
vi urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [url(r'^raspberrypistate/', include('raspberrypistate.urls',namespace="raspberrypistate")),url(r'^admin/', admin.site.urls),
]

Django接收raspberrypistate的更改

cd /home/pi/helloworld
python manage.py migrate
python manage.py makemigrations raspberrypistate

配置raspberrypistate的urls.py

cd /home/pi/helloworld/raspberrypistate
vi urls.py
from django.conf.urls import urlfrom . import viewsurlpatterns = [url(r'^$', views.index, name='index'),
]

写views.py

cd /home/pi/helloworld/raspberrypistate
vi views.py
# -*- coding:utf-8 -*-
from django.http import HttpResponse# Create your views here.
def index(request):return HttpResponse("Hello, world. 树莓派状态显示")

初步配置完成,进行测试

测试django配置

重启uwsgi服务

sudo systemctl restart emperor.uwsgi.service

在树莓派浏览器输入 http://127.0.0.1/raspberrypistate
或者在电脑浏览器输入 http://raspberrypi/raspberrypistate

读取树莓派CPU温度

创建状态读取文件state.py

cd /home/pi/helloworld/raspberrypistate
vi state.py
# -*- coding:utf-8 -*-
import commandsdef getCPUtemperature():res = commands.getoutput('vcgencmd measure_temp').replace( 'temp=', '').replace( '\'C', '' )tem = "CPU温度: "+str(res)+"°C"return tem

更改views.py

cd /home/pi/helloworld/raspberrypistate
vi views.py 
# -*- coding:utf-8 -*-
from django.http import HttpResponse
from . import state# Create your views here.
def index(request):tem=state.getCPUtemperature()return HttpResponse(tem)

重启uwsgi服务

sudo systemctl restart emperor.uwsgi.service

在树莓派浏览器输入 http://127.0.0.1/raspberrypistate
或者在电脑浏览器输入 http://raspberrypi/raspberrypistate

读取树莓派状态

修改state.py文件

cd /home/pi/helloworld/raspberrypistate
vi state.py
## -*- coding:utf-8 -*-
import commandsdef getCPUtemperature():return float(commands.getoutput('vcgencmd measure_temp')\.replace('temp=','').replace('\'C', ''))def getRAMinfo():return commands.getoutput('free').split()[7:10]def getCPUuse():return commands.getoutput("top -bcn 1").split()[24]def getDiskSpace():return commands.getoutput("df -h /").split()[7:11]def getPiVolts():volts=["core","sdram_c","sdram_i","sdram_p"]res={}for volt in volts:res[volt]=float(commands\.getoutput("vcgencmd measure_volts "+volt)\.replace('volt=','')\.replace('V',''))return resdef getCPU():tem = "CPU温度: "+str(getCPUtemperature())+"°C </br>"RAM_info=getRAMinfo()inf = "RAM_total: "+str(round(int(RAM_info[0])/1000,1))+"MB </br>\RAM_used: "+str(round(int(RAM_info[1])/1000,1))+"MB </br>\RAM_free: "+str(round(int(RAM_info[2])/1000,1))+"MB </br>"use = "CPU使用率: "+str(getCPUuse())+"% </br>"disk_space=getDiskSpace()space = "硬盘容量: "+disk_space[0]+"B</br>\已用: "+disk_space[1]+"B </br> \可用: "+disk_space[2]+"B </br> \使用率: "+disk_space[3]+" </br> "pi_volts=getPiVolts();volts=""for volt,value in pi_volts.items():volts+=(volt+"电压: "+str(round(value,2))+"V </br> ")CPUstate=tem+"</br>"+inf+"</br>"+use+"</br>"+space+"</br>"+voltsreturn CPUstate

修改views.py文件

cd /home/pi/helloworld/raspberrypistate
vi views.py 
# -*- coding:utf-8 -*-
from django.http import HttpResponse
from . import state# Create your views here.
def index(request):tem=state.getCPU()return HttpResponse(tem)

重启uwsgi服务

sudo systemctl restart emperor.uwsgi.service

在树莓派浏览器输入 http://127.0.0.1/raspberrypistate
或者在电脑浏览器输入 http://raspberrypi/raspberrypistate

树莓派应用实例1:树莓派状态读取相关推荐

  1. 树莓派python实例_树莓派3 搭建 django 服务器的实例

    树莓派3的基本配置 这里接着上一章的搭建过程,在我新购置的树莓派3上完成一个网页服务器的搭建以及后台数据库的相关配置.关于树莓派的玩点实在是太多,限于篇幅不做展开.由于我们仅仅只是搭建一个服务器,所以 ...

  2. 树莓派python交互界面实例_树莓派综合项目2:智能小车(二)tkinter图形界面控制...

    一.介绍 树莓派综合项目2:智能小车(一)四轮驱动中,实现了代码输入对四个电机的简单控制,本章将使用Python 的图形开发界面的库--Tkinter 模块(Tk 接口),编写本地运行的图形界面,控制 ...

  3. 树莓派wifi探针_树莓派重新开始|搭建博客、网盘、流媒体与离线下载服务

    树莓派重新开始|搭建博客.网盘.流媒体与离线下载服务 在折腾了一段时间的树莓派后,逐渐确定了自己对树莓派的使用有以下需求: 博客服务器 文件同步 流媒体服务器 离线下载 话不多说,重新开始. 准备工作 ...

  4. 树莓派自启动python程序,远程树莓派桌面,重装树莓派系统,串口驱动,永不休眠,树莓派旋转屏幕方向,树莓派定时重启,修改矫正树莓派时间,raspbian Linux 系统命令常用

    一.树莓派4B自启python的脚本方法 1.rc.local文件修改 (1)新建运行脚本 pi@zero:~/raspberry $ sudo nano test.sh #!/bin/sh cd / ...

  5. 树莓派蓝屏_树莓派刷写Windows 10 ARM版后成功运行桌面程序

    微软在2015年时推出Windows 10 IoT物联网版供树莓派系列以及其他单板电脑安装和部署更多的应用程序. 不过树莓派系列设备本身都是使用博通的ARM处理器,所以也只能运行Windows 10商 ...

  6. 树莓派4B,以树莓派官方系统为蓝本,定制自己的树莓派系统

    一.目的 树莓派4B已于2019年6月24号发布了,感谢树莓派实验室(http://shumeipai.nxez.com/)提供的树莓派4B开发板,可以继续我的树莓派教程.从现在起,后续所有课程将全部 ...

  7. ft4232树莓派linux扩展串口,树莓派Linux串口编程实现自发自收

    串口是计算机上一种非常通用设备通信的协议,常用PC机上包含的是RS232规格的串口,具有连接线少,通讯简单,得到广泛的使用. Linux对所有设备的访问是通过设备文件来进行的,串口也是这样,为了访问串 ...

  8. 入坑树莓派(2)——树莓派4B与手机蓝牙通信

    入坑树莓派(2)--树莓派4B与手机蓝牙通信 1.引言 2.步骤 2.1.蓝牙配对 2.2.蓝牙连接准备 2.3.蓝牙连接 3.参考网址 1.引言 在入坑树莓派(1)中已经搞掂了可视化问题.现在继续开 ...

  9. 树莓派(一) 树莓派分辨率调整(含官方默认和kali系统)

    (一)树莓派 树莓派分辨率调整(含官方默认和kali系统) 最近给pi换上官方最新系统,原本显示屏可以自动匹配,升级之后发现显示区域变小了.(屏幕是TB入的7寸雪花屏 800*480分辨率)后来看了一 ...

最新文章

  1. 在.NET程序中使用PIPE(管道技术)
  2. 【python】-- pymsql 外键
  3. java中求时间间隔(精确到分钟)
  4. ELKstack-Elasticsearch各类安装部署方法
  5. 【Python学习笔记】Python深拷贝和浅拷贝
  6. python多线程爬虫数据顺序_Python爬虫必学知识点:多线程爬虫
  7. JDBC是什么?和JDBC程序的基本编写
  8. 手机电池的更换标准/指标 最近小米手机换电池那些事
  9. 请问!退休年龄到了,社保没交够,现在职,公司还可以继续交吗?
  10. easyexcel 在 设置标题_EasyExcel 自定义单元格式的问题。
  11. 使用TraceView+实际案列实战性能分析 找出android app UI卡顿原因
  12. Elasticsearch安装拼音分词器插件
  13. 主成分分析法确定权重
  14. php的命令执行函数,PHP命令执行函数 - osc_joe3czc9的个人空间 - OSCHINA - 中文开源技术交流社区...
  15. @老徐FrankXuLei 受邀为上海师翊网络科技有限公司讲授《微软WCF分布式开发与SOA架构设计课程》
  16. OS学习笔记-17(清华大学慕课)进程的同步和互斥
  17. click事件不生效
  18. python soup中文歌词_Python调用BeautifuSoup进行html的文本内容提取问题 [ 求问吃鸡主播beautifu1 boy...
  19. python3爬虫系列之使用requests爬取LOL英雄图片
  20. 无限易pythongo开发期货量化策略

热门文章

  1. C#和Java的对比
  2. C++中嵌入ie浏览器总结 .
  3. php mysql 配置
  4. 汇编语言 乘法和除法指令
  5. STC89C52单片机 数码管动态显示
  6. 微信6516android,微信6516版本怎么可以分组
  7. ACDSee Photo Studio Ultimate 2020中文版
  8. 安装rocketmq并配置管理界面
  9. 从函数调用过程中的堆栈变化理解缓冲区溢出
  10. mongodb--常用命令