基於STM32的端到端物聯網全棧開發一

應用邏輯

MQTT

TLS

TCP/IP

 

 

 

公有云應用服務器會提供一個 API,1、把數據轉到客戶自己的應用服務器上。

嵌入式 網站 數據庫

 

阿里雲平臺匯聚節點端的數據再轉發給應用服務器,爲了方便各種設備接入,提供不同網絡的設備接入方案。例如 2G 3G 4G NB-IoT LoRa 等,來解決異構網絡接入管理的痛點。平臺還提供多種協議的設備端SDK,目前支持設備以CoAP HTTP MQTT 協議接入。本些列課程會講解兩種方式的MQTT接入阿里雲平臺。

一個適用於存儲和計算資源受限的設備(不帶TLS),資源受限的設備使用原生的MQTT客戶端接入 ,這裏採用的是 Pahoo mqtt 客戶端協議棧,由於節點設備存儲資源有限,該連接方式不帶TLS,數據格式來說,爲了傳輸效率儘量簡潔高效,節點和用戶服務器端事先約好了數據負載的格式。由IOT平臺管理和轉發的主題也是事先約好的。

另一種適用於資源相對豐富的節點設備,如果節點端的應用邏輯複雜度到了一定程度,通常會使用RTOS,並基於 Linkkit SDK 這個由阿里雲提供給設備廠商的SDK連接到阿里雲iot平臺,linkkit的信息以及如何使用會在之後介紹。另外,在豐富的設備中安全連接是一個重要的考量。因此在這個場景會支持TLS,還有是在阿里雲IOT平臺上,我們採用設備管理的高級版(物管理中的物模型),一旦物模型固定了,雙方要處理的消息主題,消息負載的格式就確定下來。

 

 

Web端的應用開發

分爲後端開發和前端開發兩個部分。開發語言和運行環境也大不相同,後端開發核心是基於阿里雲iot平臺提供的http/2 SDK訂閱能力。通過運行在springboot上的 http/2 sdk,服務端程序可以實時接收到設備上報的數據。並通過mybatis數據持久化框架將數據存儲到mysql數據庫中,供系統管理與查詢。同時基於springboot開發的api服務將數據查詢與管理的能力與http協議的接口開放出來,供前端程序請求調用。

前端開發是基於阿里巴巴開源的 流行框架 UMI和 AntD,其中AntD提供高質量的UI組件,可以使得開發者通過組件搭配快速開發出頁面。UMI負責處理前端應用程序的編譯打包,以及頁面路由。前端組件是基於流行的React架構,交互友好並且相應迅速。

 

 

JDK8 是 java的開發工具包,是後端開發必不可少的環境工具

IntelliJ IDEA 是代碼集成開發工具,自帶包管理方便應用。

nodejs 是高性能的JavaScript的運行環境

mysql是最流行的數據庫軟件,在項目中用於存放項目上報的各類數據

Navicat for MySQL是·圖形化操作MySQL的開發軟件,VScode用於編輯前端項目代碼。Git是分佈式的代碼管理軟件,本例程中用於設備備份與實例代碼下載。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章