5.Flask架設Server
關於Flask的原始資料請看
Flask是個極輕量的Webserver架站模板,可以輕易的在樹莓派Raspberry Pi中運行,
若想要使用使用企業級的架站伺服器軟體,市佔率最高的Apache可能會更適合你,但我用Flask來架站的目的是要蒐集同網域下感測器節點的資料,並利用電腦強大的運算效能(相比esp8266或Arduino來說),對傳來的數據繪圖或作演算,並且運算結果可以直接連網可見,即使是智慧型手機、平板,也可以輕鬆連線觀看結果,不須額外設定。
ESP8266為什麼不適合拿來當Webserver? 因為除了同時連線數的限制之外,接收資料的頻率也無法相當頻繁,若把它當作連線者還算稱職喔!
from flask import Flask
from flask import Markup
from flask import Flask
from flask import render_template
app = Flask(__name__)
n=0
x=[]
y=[]
#此處頁面是在 http:/localhost:8080/esp8266_1/資料
@app.route('/esp8266_1/<int:data>') #傳來的資料是整數int類型,存成變數data
def cmd(data): #如果要抓取從網址列送出的值,()內就需要加上變數data
global n,x,y
n=n+1
x.append(n)
y.append(data)
if n>50 :
x.pop(0)
y.pop(0)
print(data)
return 'User %s' % data
#此處頁面是在 http:/localhost:8080/
@app.route('/')
def chart():
return render_template('chart.html', data_x=x, data_y=y)
#上面這一行是傳回 chart.html這個網頁,網頁標籤值data_x設為x ; data_y設為y
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080) #設定網頁port是8080