[功能] 在 Filogic 130A SDK 裡,如何使用 HTTP POST 的連線?

        前陣子與金屬中心執行工廠廠線的數據可視化案子,後來又在 DIY Maker 社團裡看到不少 IoT 數據可視化的影片,能想像在大數據的環境下,將各類數據可視化做成圖表是一件滿吸引眼球的事。於是,打算用聯發科的 Filogic 130A 開發板來實現雲端 IoT 數據的 dashboard,首先雲端的可視化展現將採用 ThingSpeak (https://thingspeak.com/)提供的服務,註冊一個屬於自己的 channel,如下圖所示。

圖一:在 ThingSpeak 網站創建自己的可視化


        接著,研究看看數據用哪種方式上傳到該網站上,在 "Write Data to Channel" 內文提到採用兩種方式,一種是 REST API,另一種是 MQTT API,而本文將使用 REST API 的方式把 Filogic 130A 的數據上傳到雲端。

        回到 Filogic 130A SDK 的部分,它提供了一個 httpclient 的模組程式碼,讓使用者自己實現 HTTP POST 的連結。這個模組只提供 HTTP 的連線,如果需要 SSL 的 HTTPS 連線,必須在編譯的 makefile 中開啟 "MTK_HTTPCLIENT_SSL_ENABLE" 這個定義,在 feature.mk 檔案裡,加上下列一行:
                    MTK_HTTPCLIENT_SSL_ENABLE    = y

然後再進行編譯,此時 SDK 裡頭的 mbedtls 模組也會載入編譯,HTTPS 便能使用 SSL 認證連線了。程式設計方面,首先要呼叫 httpclient_connect( ) 函數建立連線,設定 URL 為  https://api.thingspeak.com/update,連線成功後,再呼叫 httpclient_post( ) 函數,我們必須填入 API key 和欄位的數值,如下:


根據 ThingSpeak 的文件,返回的 response 可以是 text 或 Json 或是 Xml 格式,上面我們採用的是 text 格式,所以返回的訊息是 entry ID,也就是上傳第幾個點的數據。

        在上面測試碼中,我們將板子的分鐘數和秒數當做數據上傳到雲端,將程式碼載入 Filogic 130A 板子後,再從 ThingSpeak 網站上就能看到可視化的結果,如下圖所示。請參考影片說明 https://youtu.be/jbtSzYi-x7M

圖:在雲端上,呈現的數據可視化

留言

此網誌的熱門文章

[筆記] Raspberry Pi 樹莓派的軟體開發

[筆記] ESP32 在 VS Code 開發環境的編譯與除錯

[應用] 在 ESP32 Audio 開發板的 VoIP 範例

[應用] STM32 DFU (Device Firmware Upgrade)

[模組] 無線資料傳輸:nRF905 和 nRF24L01 (以 Arduino 為控制器)

[筆記] Visual Studio 遠端偵錯的設定步驟

建立一個 MQTT 測試環境