树莓派安装FLASK服务;并在端网页读取 GPIO状态和系统时间
做过一些物联网的作品;因为不想一直做APP来控制,因为不能每个人都去下载你自己做的APP,浏览器大家都是有的;那么每个人通过浏览器WEB来访问我们服务器,岂不是很简单和方便,采用flask+python。
Flask是一个使用 Python 编写的轻量级 Web 应用框架,操作简单,上手容易。
安装FLask:
sudo apt-get install python-pip
sudo pip install flask
然后一个简单的服务器就安装好了,都存在我们的树莓派下,估计大家要写几个程序,那么:
mkdir flask && cd flask
mkdir read_gpio && cd read_gpio
sudo nano hello-gpio.py
from flask import Flask, render_template
import datetime#导入系统时间
import RPi.GPIO as GPIO #导入GPIO
app = Flask(__name__) GPIO.setmode(GPIO.BCM)#设置GPIO模式为BCM @app.route("/")
def readPin():
now = datetime.datetime.now()#抓取时间
timeString = now.strftime("%Y-%m-%d %H:%M:%S")#抓取系统时间函数到timeString
try:
GPIO.setup(20, GPIO.IN)#读取BCM_gpio_20
if GPIO.input(20) == True:
response = "BCM_gpio_20 is high!"
else:
response = "BCM_gpio_20 is low!"
except:
response = "There was an error reading pin" templateData = {
'time': timeString
'title' : 'Status of Pin' + pin,
'response' : response
} return render_template('read_pin.html', **templateData)#把templates送到read_pin.html if __name__ == "__main__":
app.run(host='0.0.0.0', port=80, debug=True)
sudo nano read_pin.html
<!DOCTYPE html>
<head>
<title>{{ title }}</title>
</head> <body>
<h1>Pin Status</h1>
<h2>{{ response }}</h2>
<h2>{{ time }}</h2>
</body>
</html>
注意:html文件要在.py同行目录下新建子目录文件夹templates,不然找不到template会报错;
格式如下:
read_gpio(文件夹)--
---hello-gpio.py
---templates(文件夹)
---read_pin.html
然后一个读取GPIO状态的就建好了,我们读的是BCM_gpio_20,可以修改;
然后在浏览器访问你树莓派的IP地址 ifconfig
在你的不管手机还是Pc只要和你的树莓派在同一局域网下都可以访问你的网页;读取树莓派系统时间和GPIO状态。game_over,看一下状态。
最后再说一点吧:可能大家也想不能实时观看我们的网页,只是一个网页状态;可以不停点刷新网页去get数据,不太人性化,那么就设置网页刷新时间就好了;根据浏览器来选择,博主用的火狐。在树莓派上名字是iceweasel
安装方式是sudo apt-get install iceweasel;
安装好后;然后选择插件 Reladevery 安装; 重启浏览器;在你想要的网页右击 relad_every 自定时间,最短一秒,看到读取效果还可以。科科
下篇介绍网页控制GPIO
树莓派安装FLASK服务;并在端网页读取 GPIO状态和系统时间的更多相关文章
- 树莓派安装DNSMASQ服务
功能: DNSMASQ是一款高性能的.小型的DNS服务器软件. * 缓存域名.IP地址,本地缓存解析的地址. * DHCP服务 1.安装 sudo apt-get update sudo apt-ge ...
- 树莓派安装samba服务
1.安装 sudo apt-get update sudo apt-get install samba sudo apt-get install samba-common-bin 2.配置 sudo ...
- 树莓派进阶之路 (016) - 通过595驱动4位LED显示系统时间
模块图片,4位共阳极数码管. 我们使用树莓派wiringPi的库来通过74HC595驱动4位数码管: C 代码如下: #include <wiringPi.h> #include < ...
- Ubuntu-18.04 下修改root用户密码,安装SSH服务,允许root用户远程登录,安装vsftp服务器
修改root用户密码 打开终端,输入 sudo passwd root 指令: 安装SSH服务 ssh默认端口号是22,可以在/etc/ssh/sshd_config文件中修改 查看服务器否开启:ne ...
- Centos安装vncserver服务
vnc是一款Windows远程桌面软件,其优点是支持跨操作系统的远程图形化控制.下面开始记录第一次安装vnc服务的过程. 1.先检查系统是否有安装VNC服务 [root@localhost ~]# [ ...
- RedHat下安装Telnet服务端及客户端远程连接配置
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力. 配置之前请确保网络连通,如防火墙影响连接,请先关 ...
- 编译安装rabbitmq服务端
有一种方式是:下载rabbitmq-server-generic-unix压缩包,是不用编译的.是已经编译好的源码了 下面介绍编译源码安装 总括: 需要以下步骤: 1.安装erlange.因为 ...
- suse安装svn服务端和客户端的使用
suse安装svn服务端 一. 安装服务端 配置网络安装源(suse11sp1为例) 新建11.1.repo11.1为软件源名称,可自定义文件并添加如下内容后保存 linux-e0xg:/etc/zy ...
- centos 7安装vnc服务端&vnc客户端连接
前言 工作需求,需要用到vnc,介绍一下相关内容. 安装vnc服务端 在执行其他相关的之前,需要先安装一下vnc的服务端,命令如下: yum install tigervnc-server 配置vnc ...
随机推荐
- (删)Java线程同步实现一:synchronzied和wait()/notify()
上面文章(2.Java多线程总结系列:Java的线程控制实现)讲到了如何对线程进行控制,其中有一个是线程同步问题.下面我们先来看一个例子: 1.一个典型的Java线程安全例子 package com. ...
- 重写NSArray与NSDictionary的descriptionWithLocale方法
重写NSArray的descriptionWithLocale方法: NSArray+log.h #import <Foundation/Foundation.h> @interface ...
- python 自动化接口测试(6)
迎接新的一波更新吧,这次是基于图灵机器人的一个api接口的测试. 这是api的接口:http://www.tuling123.com/openapi/api 我们试着通过浏览器直接访问看下 这是反馈的 ...
- Spring基础学习(二)—详解Bean(上)
在Spring配置文件中,用户不但可以将String.int等字面值注入Bean中,还可以将集合.Map等类型注入Bean中,此外还可以注入配置文件中其他定义的Bean. 一.字面值 ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)结合MockMvc进行服务端的单元测试
日常啰嗦 承接前一篇文章<Spring+SpringMVC+MyBatis+easyUI整合优化篇(四)单元测试实例>,已经讲解了dao层和service层的单元测试,还有控制器这层也不能 ...
- 空a标签 a标签空的情况下 IE6 IE7下点击无效
最近做了好多网站专题页面,因为专题页面图片较多,个别banner上有1个到多个按钮,一种是用“图解img标签的usemap”的方法做链接,(图解img标签的usemap使用方法)[传送门] 另一种用则 ...
- 转账示例(三):service层面实现(线程管理Connection)(本例采用QueryRunner来执行sql语句,数据源为C3P0)
缺点:Service层面还是不应该出现关于事务的操作1.自行创建C3P0Uti,account数据库,导入Jar包 2.Dao层面 接口: package com.learning.dao; impo ...
- 笔记整理:计算CPU使用率 ----linux 环境编程 从应用到内核
linux 提供time命令统计进程在用户态和内核态消耗的CPU时间: [root@localhost ~]# time sleep real 0m2.001s user 0m0.001s sys 0 ...
- 在c++中,标准输入string时cin 与getline两个函数之间的区别
cin: cin函数是标准库的输入函数,在读取string时遵循以下规则: 1)读取并忽略开头所有的空白符(包括空格.换行符.制表符). 2)读取字符直到遇到空白符,读取终止. 例如: 当输入的是“ ...
- Windows7系统的封装
系统装到虚拟机优化完成以后,可以装上自己想要装的软件,也可以不装做个纯净版的.今天用ES封装,首先打开一般我们只点这四项就够了,如下图 写上自己想写的,也可以不写系统默认,直接点“下一步”关闭设备管理 ...