树莓派安装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

时间: 2024-10-17 22:54:44

树莓派安装FLASK服务;并在端网页读取 GPIO状态和系统时间的相关文章

Centos7 树莓派安装NFS服务

硬件:树莓派3B环境:CentOS-Userland-7-armv7hl-RaspberryPI-GNOME-1804-sda 服务端安装和配置:1.禁用并永久关闭防火墙>>systemctl disable firewalld>>systemctl stop firewalld 2.关闭selinux>>vim /etc/selinux/config将SELINUX=enforcing改为SELINUX=disabled 3.安装nfs和相关>>yum i

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

模块图片,4位共阳极数码管. 我们使用树莓派wiringPi的库来通过74HC595驱动4位数码管: C 代码如下: 1 #include <wiringPi.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <stdint.h> 5 #include <time.h> 6 #define SCLK 12 7 #define RCLK 13 8 #define DIO 14 9 un

Centos安装vncserver服务

vnc是一款Windows远程桌面软件,其优点是支持跨操作系统的远程图形化控制.下面开始记录第一次安装vnc服务的过程. 1.先检查系统是否有安装VNC服务 [[email protected] ~]# [[email protected] ~]# rpm -qa | grep tigervnc 2.安装vnc服务 [[email protected] ~]# yum -y install tigervnc-server  //yum安装减少了很多不必要的麻烦 3.启动并设置密码 在第一次启动v

CentOS 7.0版本下安装SVN服务端示例

一.安装部署环境 VMBox虚拟机.CentOS 7系统.4G内存.20Gb存储空间 二.基础环境建立 1.安装VMBox虚拟机: 2.启动VMBox虚拟机,安装CentOS系统[安装过程略,注意root密码]. 3.启动CentOS系统,并登录root账号. 三.CentOS配置工程 配置CentOS网络,虚拟机CentOS可以访问外网.该步骤必须先配置DNS,否则联网更新.下载操作将会报错. 查询网络配置文件所在位置及名称:cd /etc/sysconfig/network-scripts/

cacti 自动化安装cacti服务端

#!/bin/bash # 脚本名称:自动化安装cacti服务端 # 脚本作者:昨夜星辰 # 注意事项: # 1. 该脚本适用于entOS 6.2 32位系统: # 2. 如果你已经安装了MySQL和Apache,那么该脚本可能不适用: # 3. 该脚本没有为MySQL服务的root账号设置密码,为了您的MySQL服务安全,建议您执行完该脚本后手动设置一下密码: # 4. 为了方便,该脚本没有修改cacti的默认数据库用户账号和密码,如果您只是为了测试或者学习,那么您可以不用理会,但是,如果您希

一键自动化安装mysql服务端

声明 作者:昨夜星辰 博客:http://yestreenstars.blog.51cto.com/ 本文由本人创作,如需转载,请注明出处,谢谢合作! 目的 一键自动化安装mysql服务端. 环境 OS: CentOS 6.2 32 mysql: 5.6.20 配置 #!/bin/bash # Script Name: One-key Automatic Install MySQL server # Author: yestreenstars # Create Time: 2014-08-18

树莓派3 之 安装Mysql服务

需求 在树莓派上 安装Mysql 服务,并开启远程访问 步骤 安装 mysql server $ sudo apt-get install mysql-server 我以为中间会让我提示输入 数据库root的密码,没想到一帆风顺,直接完成,我要疯了,密码到底是什么了.通过搜索发现,可以使用如下命令,空密码登录 $ sudo mysql -u root 设置root密码 use mysql; update user set plugin='mysql_native_password' where 

CentOS 7.4安装telnet服务端

CentOS 7.4安装telnet服务端 安装xinetd服务 # yum -y install xinetd 安装telnet-server # yum -y install telnet-server telnet 修改telnet-server配置文件 [[email protected] ~]# cat /etc/xinetd.d/telnet # default: yes # description: The telnet server servestelnet sessions;

CentOS 7 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)

原文 CentOS 7 下安装 LEMP 服务(nginx.MariaDB/MySQL 和 php) LEMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作用.正如其名称所暗示的, LEMP 包是由 Linux.nginx.MariaDB/MySQL 和 PHP 组成的.在传统的 LAMP 包中使用的 Apache HTTP 协议服务器性能低下而且难于大规模集群,相比来说 nginx 的高性能及轻量级等特性,正是其的替代方案. MariaDB 是一款社