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