做过一些物联网的作品;因为不想一直做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状态和系统时间的更多相关文章

  1. 树莓派安装DNSMASQ服务

    功能: DNSMASQ是一款高性能的.小型的DNS服务器软件. * 缓存域名.IP地址,本地缓存解析的地址. * DHCP服务 1.安装 sudo apt-get update sudo apt-ge ...

  2. 树莓派安装samba服务

    1.安装 sudo apt-get update sudo apt-get install samba sudo apt-get install samba-common-bin 2.配置 sudo ...

  3. 树莓派进阶之路 (016) - 通过595驱动4位LED显示系统时间

    模块图片,4位共阳极数码管. 我们使用树莓派wiringPi的库来通过74HC595驱动4位数码管: C 代码如下: #include <wiringPi.h> #include < ...

  4. Ubuntu-18.04 下修改root用户密码,安装SSH服务,允许root用户远程登录,安装vsftp服务器

    修改root用户密码 打开终端,输入 sudo passwd root 指令: 安装SSH服务 ssh默认端口号是22,可以在/etc/ssh/sshd_config文件中修改 查看服务器否开启:ne ...

  5. Centos安装vncserver服务

    vnc是一款Windows远程桌面软件,其优点是支持跨操作系统的远程图形化控制.下面开始记录第一次安装vnc服务的过程. 1.先检查系统是否有安装VNC服务 [root@localhost ~]# [ ...

  6. RedHat下安装Telnet服务端及客户端远程连接配置

    Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力. 配置之前请确保网络连通,如防火墙影响连接,请先关 ...

  7. 编译安装rabbitmq服务端

    有一种方式是:下载rabbitmq-server-generic-unix压缩包,是不用编译的.是已经编译好的源码了 下面介绍编译源码安装   总括: 需要以下步骤:   1.安装erlange.因为 ...

  8. suse安装svn服务端和客户端的使用

    suse安装svn服务端 一. 安装服务端 配置网络安装源(suse11sp1为例) 新建11.1.repo11.1为软件源名称,可自定义文件并添加如下内容后保存 linux-e0xg:/etc/zy ...

  9. centos 7安装vnc服务端&vnc客户端连接

    前言 工作需求,需要用到vnc,介绍一下相关内容. 安装vnc服务端 在执行其他相关的之前,需要先安装一下vnc的服务端,命令如下: yum install tigervnc-server 配置vnc ...

随机推荐

  1. 老李分享:qtp自动化测试框架赏析-关键字自动化测试框架

    老李分享:qtp自动化测试框架赏析-关键字自动化测试框架   QTP从2005年继winrunner,robot逐渐退出历史舞台之后,占领主流自动化测试工具市场已经10年之久.当初为了提高在自动化测试 ...

  2. 从面试小白走向master

    腾讯2017春招(实习生招聘)在线笔试知识点总结: 1.栈与队列(用队列实现栈) 2.排序算法(最坏情况下时间复杂度) 3.TCP协议(3次

  3. Snapman设计中的思考

    Snapman主页:http://www.snapman.xyz 原文链接地址:http://www.snapman.xyz/newsitem/277785310​   feiren工作室主要研究人类 ...

  4. android 学习笔记(1)

    内容来源:高成珍.钟元生<Android编程经典案例>学习笔记 表格布局——TableLayout 表格布局以行和列的方式来管理界面的布局,但并不能明确声明包含几行几列.可通过TableR ...

  5. shiro基础学习(三)—shiro授权

    一.入门程序 1.授权流程        2.授权的三种方式 (1)编程式: 通过写if/else 授权代码块完成. Subject subject = SecurityUtils.getSubjec ...

  6. Linux上常用的文件传输方式以及比较

    tp ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输. FTP 协议允许数据在不同文件系统的主机之间传 ...

  7. [Python]再学 socket 之非阻塞 Server

    再学 socket 之非阻塞 Server 本文是基于 python2.7 实现,运行于 Mac 系统下 本篇文章是上一篇初探 socket 的续集, 上一篇文章介绍了:如何建立起一个基本的 sock ...

  8. 一次young gc耗时过长优化过程

    1    问题源起 上游系统通过公司rpc框架调用我们系统接口超时(默认超时时间为100ms)数量从50次/分突然上涨到2000次/分,在发生变化时间段里我们的系统也没有做过代码变更,但上游系统的调用 ...

  9. B/S 和 C/S两种架构

    一: 什么是B/S(Browser/Server)架构? 应用系统完全放在应用服务器上, 并通过应用服务器同数据库服务器进行通信,系统界面 是通过浏览器来展现的. T是浏览器模式. 优点: 1)客户端 ...

  10. Jquery对raido的一些操作方法

    raido 单选组radio:   $("input[type=radio][checked]").val(); 获  取一组radio被选中项的值 var item = $('i ...