树莓派使用flask轻量级web框架移动端实现远程控制LED灯亮灭
1.下载必要的包
sudo apt-get update # 更新下载器
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.编程
from flask import Flask,request,render_template,Response # 导入flask框架所需要的包,模块
import RPi.GPIO as GPIO #导入RPi.GPIO包
import time # 计时器
GPIO.setmode(GPIO.BCM) # GPIO波特
GPIO.setup(26,GPIO.OUT) # GPIO。26引脚为输出模式
# 固定写法
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:8081)
GPIO.clearnup()
<!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运行后会出现下面信息

- 也可以用命令行运行:
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.效果

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