Esp32 connect to web service

7/1/2021 projects

# Esp32WebSerivce

所有的網址 沒意外的話是在外網永遠存在 webservices 也可以使用 下為網址 (opens new window)

開源程式碼github (opens new window)

# webservice building

這裡主要為建置webservice的環節 以便之後到學校與esp32作為接口對接

# 使用heroku建置新伺服器

使用免費方案即可

# api基礎架構

接著使用flask建置api的基礎架構 flask加heroku的組合我個人挺喜歡的 此方法也可以拿來架設網站在外網 如此網站為我接下來個人部落格的施工預定地 https://test-pants-blog.herokuapp.com

因為在初步建置環節 所以現在只有實作GET method 使用RESTful api作為整體架構 以下為程式碼

import flask 

app=flask.Flask(__name__)

@app.route("/api/esp32-webservice")
def GET():
    return "testing"

if __name__ == "__main__":
    app.run()

# heroku 必要設定

接著加入heroku server的必要文件

# requirements.txt

為伺服器所需安裝的檔案清單 如未寫入此清單不可使用

如下

Flask
gunicorn

# runtime.txt

為伺服器所需使用的語言架構

如下

python-3.8.5

# Procfile

為heroku的參數檔 用來決定此伺服器的用途

如下

web gunicorn 主程式名稱:app變數名稱

# 運行至heroku

接著在本地端使用git工具以及heroku CLI將架構上傳

git工具以及heroku CLI我皆已安裝 在這裡不再演示

直接在git工具裡面使用git bash 可以直接使用linux command很方便 還可以直接用vim寫README.md之類的普通文檔 雖然我都亂寫

初次上傳使用下列指令

git init
#初始化git
heroku login
#登入heroku
heroku git:remote -a esp32-webservice
#初始化git路徑
git add .
git commit -m "upload"
git push heroku master
#上傳至heroku伺服器

如之後須更新使用下列指令

git add .
git commit -m "upload"
git push heroku master
#上傳至heroku伺服器

# api基礎架構最終結果

# 雲端sql server建置

因我的主機無法當作資料庫的server 所以在這裡使用heroku的addons 叫做postgresql 也是sql server的一種 可以用一般的sql語法來進行CRUD 但如果用免費版的只能夠儲存大約1000筆資料 所以這次的資料庫正規化我並不想做到3級 避免資料庫肥大

首先在終端機裡輸入指令 來加入heroku的postgresql addons 並創建資料庫

heroku addons:create heroku-postgresql:app名稱

之後在終端機裡輸入指令來查詢資料庫的連線字串

heroku config:get DATABASE_URL -a app名稱

雲端伺服器無法使用圖形介面建置資料庫 所以這裡使用T-SQL直接在資料庫裡CREATE_TABLE 這裡我用google colab來當作資料庫的調適工具

待續,我好懶

# esp32 connect to webservice

待開學後與webservice對接

# phone app

我懶了 交給下禮拜的我