1. 程式人生 > >樹莓派GPIO控制-flask

樹莓派GPIO控制-flask

樹莓派提供了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命令進行控制: