ThingsCloud云平臺與微信小程序設計
本文主要是介紹ThingsCloud云平臺的搭建及微信小程序與app的使用。
當前文章是作為一個通用案例,介紹如何快速使用 ThingsCloud云平臺 以及 利用 ThingsCloud云平臺平臺的框架快速設計手機APP和微信小程序。 可以快速讓硬件接入,實現(xiàn)硬件上云,完成物聯(lián)網項目的開發(fā)。
之前寫了很多文章,關于阿里云
、騰訊云
、OneNet
、華為云IOT
教程等等。 這些云平臺之間都可以任意替換,他們都支持標準的MQTT協(xié)議,硬件設備都可以接入任何的云平臺。只需要改MQTT參數(shù)以及上傳的JSON格式即可。
如果你之前使用的其他云:阿里云
、騰訊云
、OneNet
、華為云IOT
?想接入ThingsCloud云平臺
?只需要照著之前云平臺里創(chuàng)建的屬性在ThingsCloud云平臺
?重新創(chuàng)建一遍即可, 本身大同小異,沒有多大的區(qū)別。
這篇文章以智能飲水機為例,講解如何給智能飲水機項目設計一個 微信小程序,讓硬件上云。
硬件的功能:
1.1 ThingsCloud平臺介紹
官網:https://www.thingscloud.xyz/
ThingsCloud 是一個專注于?物聯(lián)網(IoT)設備連接、管理和應用開發(fā)?的一站式平臺,旨在幫助企業(yè)快速構建和部署物聯(lián)網解決方案。
(1)核心功能
1.設備接入與管理
-
-
- ? 支持多種協(xié)議(MQTT、HTTP、CoAP等),兼容不同品牌和類型的物聯(lián)網設備。? 提供設備生命周期管理(注冊、配置、監(jiān)控、OTA升級等)。? 跨廠商設備統(tǒng)一接入,降低異構系統(tǒng)整合難度。
-
2.?數(shù)據(jù)采集與處理
-
-
- ? 實時采集設備數(shù)據(jù)(如傳感器數(shù)據(jù)、狀態(tài)信息)。? 內置規(guī)則引擎,支持數(shù)據(jù)過濾、轉換、報警觸發(fā)等。? 可對接第三方云服務或本地數(shù)據(jù)庫(如MySQL、InfluxDB)。
-
3.?可視化與監(jiān)控
-
-
- ? 拖拽式儀表盤,自定義數(shù)據(jù)看板(如圖表、地圖、控件)。? 實時監(jiān)控設備狀態(tài),異常告警通過郵件/短信/Webhook通知。
-
4.?低代碼開發(fā)
5.?安全與權限
-
- ? 設備認證(證書、密鑰)、數(shù)據(jù)加密(TLS/SSL)。? 多租戶支持,細粒度權限控制(用戶、角色、項目)。
(2)典型應用場景
??工業(yè)物聯(lián)網(IIoT):設備遠程監(jiān)控、預測性維護。
??智能家居/樓宇:集中管理照明、安防、能耗設備。
??智慧農業(yè):環(huán)境傳感器數(shù)據(jù)采集與自動化控制。
??能源管理:實時監(jiān)測電力、水、燃氣等消耗。
(3)優(yōu)勢特點
開箱即用:減少底層開發(fā),聚焦業(yè)務場景。
彈性擴展:支持海量設備接入和高并發(fā)數(shù)據(jù)處理。
成本優(yōu)化:按需付費模式,降低中小型企業(yè)部署門檻。
開放生態(tài):與主流云服務(AWS、阿里云)及硬件兼容。
ThingsCloud 平臺的資源模型通常采用分層架構設計,涵蓋設備、數(shù)據(jù)、應用等核心要素。以下是其資源模型的?圖形化表示?及分層說明:
資源模型圖
接入
設備ID/證書
采集
轉發(fā)
觸發(fā)動作
物理設備ThingsCloud 平臺核心資源層設備管理數(shù)據(jù)管道規(guī)則引擎設備1..N時序數(shù)據(jù)庫外部系統(tǒng)告警/自動化應用層可視化儀表盤API/SDK第三方集成
1.2 登錄云平臺
(1)注冊賬戶
官網:https://www.thingscloud.xyz/
進來用郵箱注冊,并在對應的郵箱中點擊激活賬號。
地址:https://console.thingscloud.xyz/signup
注冊之后需到對應的郵箱中激活賬號。
(2)登錄控制臺
1.3 產品開發(fā)
產品開發(fā)主要步驟為:創(chuàng)建項目--創(chuàng)建設備--創(chuàng)建設備類型--添加關聯(lián)設備--添加設備功能。
下面依次進行。
(1)創(chuàng)建項目
免費版
-
- ?包含較少的設備數(shù)和消息量,以及部分高級功能的限制,但完全不影響您對物聯(lián)網平臺基本功能的評估和體驗,以及硬件原型的開發(fā),或少量設備的個人使用。
一個用戶賬號下只可以創(chuàng)建一個免費版項目。
此處注意留意自己的選區(qū),后面只有選擇對應的區(qū)才能看到所創(chuàng)的項目。
(2)項目創(chuàng)建完成
(3)創(chuàng)建設備
在 ThingsCloud 中,設備代表了您的物理設備在云平臺對應的一個實體,這個物理設備可以是一個光照傳感器或智能開關,也可以是一個智能水表或網關。 創(chuàng)建設備非常簡單,只需要給設備起一個名稱即可。當然隨后您也可以修改設備名稱,或者使用 API 批量給設備更新名稱。
目前免費版的只能創(chuàng)建3個設備,每日發(fā)消息量1000條,用戶數(shù)為3個。
所有設備--創(chuàng)建設備。
根據(jù)自己產品信息填寫:
(4)設備創(chuàng)建完成
創(chuàng)建完成。
(5)創(chuàng)建設備類型
(6)設備類型創(chuàng)建成功
(7)添加設備
(8)選擇設備
添加自己之前創(chuàng)建的設備
(9)關聯(lián)設備添加成功
1.4 添加功能
文檔介紹:https://www.thingscloud.xyz/docs/guide/device-type/function-define.html
功能定義是通過建立一套模型,來描述不同設備的能力,包括設備的屬性、事件和命令,從而為設備接入和應用開發(fā)建立一套成熟的規(guī)范。功能定義對設備類型中的所有設備都有效。功能定義更像是給設備定義了一個類,其中約定了有哪些成員變量,以及變量的數(shù)據(jù)類型,另外還約定了一些特殊的方法。
屬性一般是設備自身具備的某種狀態(tài),比如溫度值、開關狀態(tài)、配置參數(shù)。 屬性可以由設備上報到云平臺,或從云平臺下發(fā)到設備。云平臺會自動保存屬性的當前值和歷史值。
可通過添加標準功能,也可以通過添加屬性編輯功能定義。
屬性名稱:給屬性起一個簡潔、明確且具有描述性的名稱,支持中文。屬性名稱不出現(xiàn)在屬性消息中。在一些設備面板界面的屬性當前值和時序圖表中,屬性名稱會自動代替屬性標識符,便于瀏覽。示例:溫度、土壤濕度
屬性標識符:只能包含:英文大小寫字母、數(shù)字、下劃線、橫線。如發(fā)布主題消息用json格式,必須與屬性字段名一致。示例:temperature
屬性類型:用來定義屬性在物理設備和云平臺之間的流動方向,使得設備和云平臺的通信更加規(guī)范化。通過對屬性定義屬性類型,云平臺會自動檢查屬性消息是否符合定義,并過濾掉不符合定義的屬性消息。示例:設備上報,設備云端共享
數(shù)據(jù)類型:云平臺會自動驗證屬性的數(shù)據(jù)類型是否合法,對于不符合數(shù)據(jù)類型或不在設定范圍內的情況,會自動忽略處理。示例:數(shù)值,布爾
(1)明確項目所有屬性
該項目用到的所有屬性:
屬性名稱 | 屬性標識符 | 屬性類型 | 數(shù)據(jù)類型 | 擴展選項 |
出水量 | angle | 設備云端共享 | 數(shù)值 | 數(shù)值范圍:100-1000 初始值:100 步長:10 單位:ml |
剩余水量 | water_level | 設備上報 | 數(shù)值 | 數(shù)值范圍:0-100 初始值:0 步長:1 單位:% |
水溫 | DS18B20 | 設備上報 | 數(shù)值 | 數(shù)值范圍:0-100 初始值:0 步長:1 單位:℃ |
水溫設置 | DS18B20_MAX | 設備云端共享 | 數(shù)值 | 數(shù)值范圍:0-100 初始值:0 步長:1 單位:℃ |
水質質量 | water_data | 設備上報 | 數(shù)值 | 數(shù)值范圍:0-100 初始值:0 步長:1 單位:% |
出水控制 | water_ctrl | 設備云端共享 | Switch (開關量) | 0 - 關 1 - 開 |
自動模式 | mode | 設備云端共享 | Switch (開關量) | 0 - 手動模式 1 - 自動模式 |
加熱控制 | heat | 設備云端共享 | Switch (開關量) | 0 - 關 1 - 開 |
水源過濾 | water_filter | 設備云端共享 | Switch (開關量) | 0 - 關 1 - 開 |
(2)添加出水量
可用添加標準功能,也可以通過添加屬性增加。
點擊確定之后,可在屬性下方看到添加的標準功能。
(3)添加剩余水量
添加成功
(4)添加水溫
添加成功。
(5)添加水溫設置
添加成功。
(6)添加水質質量
添加成功。
(7)添加出水控制
添加成功。
(8)添加自動模式
添加完成。
(9)添加加熱控制
添加完成。
(10)添加水源過濾
添加完成。
根據(jù)項目實際添加功能完成。
1.5 設備登錄
(1)MQTT協(xié)議
MQTT 全稱是 Message Queuing Telemetry Transport,它是一種基于消息隊列的輕量級應用層通信協(xié)議,實現(xiàn)了消息發(fā)布和訂閱。設備可以作為客戶端的形式通過它來發(fā)布和接收消息,實現(xiàn)數(shù)據(jù)上報和實時控制。
MQTT 是一種簡單的消息傳遞協(xié)議,設計用于具有低帶寬的受限設備。因此,它是物聯(lián)網設備接入的完美解決方案。
當前設備是采用MQTT協(xié)議與ThingsCloud服務器進行通信。
MQTT物聯(lián)網套件產品架構如下圖所示:
(2)查看設備證書與MQTT接入點信息
所有設備--設備--連接
點擊連接
接入地址說明:https://www.thingscloud.xyz/docs/guide/connect-device/mqtt.html
在幫助文檔頁面,介紹了MQTT接入的地址和端口號。 當前設備是單片機,端口采用1883非加密端口。
(3)身份認證總結
MQTT主機:sh-3-mqtt.iot-api.com
固定的端口號:?1883
username: AccessToken ? ??//點擊以上的復制然后粘貼出來
password: ProjectKey ? ??//點擊以上的復制然后粘貼出來
clientId: ? ? ? ? ? ? ? ? ?//空或任意 ? ?不對 clientId 做任何限制,可隨意填寫。
需要注意的是,ThingsCloud 對同一個設備身份信息只支持一個 MQTT 連接,也就是說,如果在兩個或多個物理設備中,使用同樣的 username/password 身份信息連接平臺,即便 clientId 使用不同的字符串,平臺仍然將這些連接視為同一個設備,這會導致后一個設備連接成功后會頂?shù)糁暗脑O備連接。
(4)主題訂閱
主題訂閱是設備訂閱平臺的消息,如果設備想知道平臺下發(fā)的消息,就需要訂閱主題。
幫助文檔: https://www.thingscloud.xyz/docs/guide/connect-device/mqtt.html
需要訂閱什么數(shù)據(jù),設備端按照下面的主題格式填寫訂閱即可。
在設備端訂閱如下主題
attributes/push
(5)發(fā)布主題
發(fā)布主題: 就是設備向平臺上傳數(shù)據(jù)。
幫助文檔地址:https://www.thingscloud.xyz/docs/guide/connect-device/mqtt.html#mqtt-%E4%B8%BB%E9%A2%98%E4%B8%80%E8%A7%88
文檔里介紹了數(shù)據(jù)點上傳的格式:
設備上報屬性值
attributes
根據(jù)當前設備,總結的消息格式如下:
發(fā)布主題: attributes
發(fā)布消息:
{"angle":?110,"water_level":?34,"DS18B20":?60,"DS18B20_MAX":?80,"water_data":?60,"water_ctrl":?0,"mode":?0,"heat":?0,"water_filter":?0}//這里的屬性字段就是自己之前填寫的屬性標識符?
特別要注意開關狀態(tài)的值如果標明用true和false,必須用true和false,而不能用1或0,而反之可以,
再者值必須與之前設置的范圍一致,否則消息會上報失敗。
數(shù)據(jù)點是標準的JSON結構:
?{
??"angle":?110, ? ? ? ? ?
??"water_level":?34, ? ? ? ? ??
??"DS18B20":?60, ? ??
??"DS18B20_MAX":?80, ? ? ? ? ? ? ? ?
??"water_data":?60, ? ? ? ? ?
??"water_ctrl":?0, ? ? ? ? ?
??"mode":?0, ? ? ? ??
??"heat":?0, ? ? ? ? ?
??"water_filter":?0
}
(6)MQTT登錄參數(shù)總結
MQTT協(xié)議登錄時,需要輸入4個參數(shù): MQTT-主機,MQTT-端口,MQTT-用戶名,MQTT-密碼。
MQTT 主機:sh-3-mqtt.iot-api.com
MQTT 端口:1883
MQTT客戶端ID:為空即可
Username:wwdhfp9pqzvwfgc9
Password:****** ??//此處作打碼處理
? ??
訂閱主題: ?attributes/push
發(fā)布主題:attributes
發(fā)布消息:
{"angle":110,"water_level":34,"DS18B20":?60,"DS18B20_MAX":?80,"water_data":?60,"water_ctrl":?0,"mode":?1,"heat":?0,"water_filter":?0}
(7)MQTT工具登錄測試
前面已經介紹了MQTT協(xié)議登錄需要用到的參數(shù),以及訂閱主題、發(fā)布主題的格式,接下來我們通過MQTT工具模擬設備登錄ThingsCloud平臺,完成數(shù)據(jù)交互測試。
簡單來說: 就是用軟件來模擬實際的硬件,登錄ThingsCloud平臺,上傳數(shù)據(jù),走一下這個流程。
接下來根據(jù)軟件的輸入框提示,輸入對應的參數(shù),然后登錄設備,訂閱主題,發(fā)布主題即可完成一個流程的測試。
(8)登錄控制臺查看設備
在設備列表頁面,可以看到設備已經在線了。
在設備的當前屬性頁面可以看到上傳的數(shù)據(jù)。
1.6 創(chuàng)建應用
(1)創(chuàng)建用戶應用
(2)創(chuàng)建通用版
(3)用戶應用創(chuàng)建成功
(4)保存APPID
AppID:76548517
1.7 配置應用UI
設備--設備類型-點擊已創(chuàng)建的設備--應用配置--打開編輯器
(1)打開應用配置
(2)打開編輯器
進入編輯器界面,根據(jù)自己喜好添加
(3)添加組件
(4)選擇屬性
可同時選擇單個或多個屬性
(5)選擇水溫、水質質量、剩余水量設置屬性
添加成功。
右邊設置屬性。
(6)添加出水量、水溫設置組件
選擇屬性
根據(jù)情況設置屬性。
(7)添加開關控制組件
根據(jù)自己喜好,點擊設置屬性修改。
修改成功。
(8)點擊樣式編輯修改樣式
(9)UI界面設計完成
根據(jù)自己的喜好修改樣式編輯后保存。
1.8 創(chuàng)建用戶
(1)創(chuàng)建新用戶
應用---用戶--新建用戶
(2)用戶創(chuàng)建成功
保存一下登錄名及密碼
后面登錄查看app需使用。
(3)用戶名及密碼
用戶名:DS **** ??
密碼:**** ? //賬號密碼為登錄app及小程序的憑證,故隱藏。
(4)關聯(lián)設備
應用---用戶---點擊用戶名稱
添加關聯(lián)設備
(5)用戶關聯(lián)設備添加成功
1.9 微信小程序及手機app調試
(1)搜索微信小程序ThingsX
(2)登錄小程序
賬號、密碼為1.8章節(jié)創(chuàng)建的用戶名與設置的密碼,APPID為1.6章節(jié)創(chuàng)建應用時保存的APPID.
(3)查看對應設備
當前設備為離線狀態(tài),所顯示數(shù)據(jù)為歷史數(shù)據(jù)。
(4)MQTT調試助手調試
(5)查看控制臺
(6)查看微信小程序
現(xiàn)在已經能實時看到MQTT調試助手模擬上傳的數(shù)據(jù)。
至此,微信小程序搭建完成。
(7)使用ThingsX app
文檔介紹地址:https://www.thingscloud.xyz/docs/guide/customer-app/common-app.html#下載-android-app
安卓與蘋果app下載地址:https://www.thingscloud.xyz/app/thingsx
拷貝到手機安裝-登錄
查看app界面
手機app與微信小程序的使用不一樣,不再復述。
后續(xù)也可以根據(jù)自己的實際需要修改云平臺以及UI界面,微信小程序與app會同步修改。