(六)树莓派系列教程:树莓派4B通过运行Python轻量级web框架flask,实现局域网内远程控制LED灯亮灭

树莓派使用flask轻量级web框架移动端实现远程控制LED灯亮灭

1.下载必要的包

  • 更新下载器:
sudo apt-get update  # 更新下载器  
  • 控制LED灯的引脚包:RPi.GPIO
sudo apt-get install python3-RPi.GPIO  # 下载GPIO引脚控制包 
  • 实现移动端在局域网内远程访问的web框架:flask
sudo apt-get install flask  # 下载flask

2.下载好这两个包,基本能满足我们的需求

  • 在树莓派桌面创建一个文件夹
cd /home/pi/Desktop     ;  通过命令行到达桌面
mkdir flask_control_LED ;  创建一个命名为flask_control_LED的文件夹
touch flask_control_LED.py  ; 创建一个Python文件
mkdir templates ; 在flask_control_LED文件夹下面创建一个命名为templates的文件夹
cd templates  ; 进入templates文件夹
touch Web_control.html ; 在templates文件夹下面创建一个html文件

3.编程

  • Python程序:
from flask import Flask,request,render_template,Response   # 导入flask框架所需要的包,模块
import RPi.GPIO as GPIO    #导入RPi.GPIOimport time                # 计时器

GPIO.setmode(GPIO.BCM)   # GPIO波特
GPIO.setup(26,GPIO.OUT)  # GPIO26引脚为输出模式

# 固定写法
app = Flask(__name__)

# 进入的首个网页
@app.route('/',methods=['GET','POST'])
def main():
    return render_template("Web_Control.html")   # 返回网页

# 点击打开
@app.route('/on',methods=['GET'])
def on():
    GPIO.output(26,GPIO.HIGH)   # GPIO.26高电平
    time.sleep(3.5)             # 延时3.5s
    print("555")                # 打印555
    return render_template("Web_Control.html")  #返回一开始的页面

# 点击关闭
@app.route("/off",methods=['GET'])
def off():
    GPIO.output(26,GPIO.LOW)   # GPIO.26低电平
    time.sleep(3.5)
    print("666")
    return render_template("Web_Control.html")  # #返回一开始的页面

@app.route("/sansuo",methods=['POST'])
def sansuo():
    i = 0
    while i < 5:
        GPIO.output(26,GPIO.HIGH)
        time.sleep(0.5)
        GPIO.output(26,GPIO.LOW)
        time.sleep(0.5)
        i = i+1
    return render_template("Web_Control.html")

if __name__=="__main__":
    app.run(host='192.168.1.199',port=8087)   # 该地址为树莓派连接到wifi时分配得到的IP地址,端口任意设(也可以用本机的IP地址:127.0.0.2,port:8081GPIO.clearnup()

  • 网页端 html 程序
<!Document html>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <!-- 新 Bootstrap 核心 CSS 文件 -->
  <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">
  <!-- 可选的Bootstrap主题文件(一般不用引入) -->
  <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
  <style>
      a {
        width:100%
      }
  </style>
  <head>
      <title>LED灯开关</title>
  </head>
  <body>
      <div class="container-fluid">
        <div class="row"> 
          <a href="/on" class="btn btn-success btn-lg" role="butoon"></a>
        </div>
        </br>   
        <div class="row">
          <a href="/off" class="btn btn btn-info btn-lg" role="button"></a>
        </div>
        </br>
        <div class="row">
          <a href="/shining" class="btn btn-danger btn-lg" role="button">闪烁</a>
        </div>
      </div>
      <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
      <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
      <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
      <script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
  </body>

4.用python3运行Flask_Control_LED.py文件

  • 用树莓派内置的Thonny Python IDE运行后会出现下面信息
    (六)树莓派系列教程:树莓派4B通过运行Python轻量级web框架flask,实现局域网内远程控制LED灯亮灭_第1张图片
  • 也可以用命令行运行:
cd /home/pi/Desktop/Flask_Control_LED  # 进入需要运行的工程文件
python3 Flask_Control_LED.py   # 用python3运行py文件

5.然后我们使用连接到同一局域网下(同wifi)的移动设备,手机、平板、手提电脑等等,在浏览器输入树莓派的IP地址。如上面IP地址为:http://192.168.1.199:8087

6.效果

(六)树莓派系列教程:树莓派4B通过运行Python轻量级web框架flask,实现局域网内远程控制LED灯亮灭_第2张图片

7.感谢,一位博主。本教程参考这位博主

你可能感兴趣的:(flask,树莓派,远程连接,局域网,python,html5)