實現一個AIoT架構,一個可能的方式參考下列作法
在Raspberry Pi 這邊, 將一個ML/DL Model 所預測出來的結果, 也許是0或1, 或是分類的softmax機率值等, 依據結果,以事件方式丟到雲端,再由雲端的程式負責進和外界的通訊,通訊的方式可以E-mail, LINE, MQTT, WebSocket等機制。
這樣的好處是資料與通訊管理的細節都在雲端處理, 而Raspberry Pi 只會根據AI預測的結果,於條件滿足的時候再會用到網路。好處: 終端能減少網路的使用, 而且也不必霊端方面的應用邏輯。並且能專司其職,懂AI的人專注在AI身上,懂雲端/Web 技術的人就專注這些Web技術。
#Python code snippet
利用python上驗證各種通訊程序, 包含 MQTT, LinePutsh,...
#Node.js code snippet
// parse application/json
var jsonParser = bodyParser.json()
/MQTT
app.post('/agent/mqtt',jsonParser, function (req, res) {
//console.log(req.body)
console.log(req.body.topic);
console.log(req.body.message);
//測試Linebot是否能通
app.post('/webhook', bot.parser());
//Line Push
app.post('/agent/line', function (req, res) {
console.log('Line');
////Line code/////////////
// pushLinemsg(req.body.message['0'])
pushLinemsg(JSON.stringify(req.body.message))
////Repsone to http client/////
respond_http(res);
});
#為使用Linebot 我們使用ngrok 來解決private IP及要提供https服務
./ngrok http 3010
2a87b84c.ngrok.io/webhook 貼到Line的設定中,並verify https 200 OK, 如果可以通代表ngrok 已打通的channel
沒有留言 :
張貼留言