树莓派GPIO控制-flask

来源:互联网 发布:mac口红畅销的颜色 编辑:程序博客网 时间:2024/05/29 11:18

树莓派提供了GPIO接口可进行控制;Flask是一个轻量级Web框架,通过在raspberry Pi上部署flask框架,能够实现在网络前端对Pi进行GPIO控制

连接关系如之前博文进行设定和连接

利用Xshell工具保持PC和Pi之间的连接关系,便于指令输入和控制

利用FlashFXP工具实现PC和Pi之间进行FTP文件传输服务,便于程序等文件的上下传

步骤1:编写Flask程序并进行部署


根据FLASK官方文档所示,app作为FLASK的实例将会是WSGI应用程序,然后route()装饰器会FLASK什么样的URL可以出发我们的函数,然后调用run()函数就可以让应用运行在本地服务器上。

将装饰器route()中封装可以控制Pi硬件GPIO管脚的函数,在前端就能对硬件实现直接控制。

#!usr/bin/env python
# -*- coding: utf-8 -*-


import RPi.GPIO
import time
from flask import Flask


RPi.GPIO.setmode(RPi.GPIO.BCM)
RPi.GPIO.setup(2,RPi.GPIO.OUT)

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

@app.route('/start')
def start():
        RPi.GPIO.setmode(RPi.GPIO.BCM)
        RPi.GPIO.setup(2,RPi.GPIO.OUT)
        while(True):
                RPi.GPIO.output(2,False)
                time.sleep(5)
                RPi.GPIO.output(2,True)
                time.sleep(5)

RPi.GPIO.cleanup()

if __name__ == '__main__':
    app.run(host='0.0.0.0')

操作程序如上所示,对树莓派GPIO管脚BCM编码方式下的2管脚进行控制输出方波,将start函数封装到装饰器route('/start')里进行调用。


步骤2:利用FTP工具将WINDOWS环境下的程序文件上传到Pi


点击右上角的“闪电”图标进行连接,输入树莓派的ip,账户以及密码,简历连接,PC左框中的文件选中后,右击-传送,即可将文件传送至右边相应文件夹中。

步骤3:程序测试及实现

在树莓派上运行程序进行FLASK部署


根据程序设置,在树莓派的5000端口进行通信和监控,输入命令curl 192.168.137.101:5000(192.168.137.101为树莓派ip),服务器端返回“Hello World!”


继续发送命令curl 192.168.137.101:5000/start,实现start()函数对于树莓派硬件的控制,经过示波器测试,GPIO-2已经输出方波。

WINDOWS环境下没有curl命令,通过百度下载相关组件后,cmd中也可以实现curl命令进行控制:



0 0
原创粉丝点击