• 正文
    • ThingsCloud云平臺(tái)與微信小程序設(shè)計(jì)
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于ThingsCloud事物云平臺(tái)完成物聯(lián)網(wǎng)開發(fā)實(shí)現(xiàn):硬件上云、微信小程序設(shè)計(jì)、手機(jī)APP設(shè)計(jì)

10小時(shí)前
443
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

ThingsCloud云平臺(tái)與微信小程序設(shè)計(jì)

本文主要是介紹ThingsCloud云平臺(tái)的搭建及微信小程序與app的使用。

當(dāng)前文章是作為一個(gè)通用案例,介紹如何快速使用 ThingsCloud云平臺(tái) 以及 利用 ThingsCloud云平臺(tái)平臺(tái)的框架快速設(shè)計(jì)手機(jī)APP和微信小程序。 可以快速讓硬件接入,實(shí)現(xiàn)硬件上云,完成物聯(lián)網(wǎng)項(xiàng)目的開發(fā)。

之前寫了很多文章,關(guān)于阿里云騰訊、OneNet、華為云IOT教程等等。 這些云平臺(tái)之間都可以任意替換,他們都支持標(biāo)準(zhǔn)的MQTT協(xié)議,硬件設(shè)備都可以接入任何的云平臺(tái)。只需要改MQTT參數(shù)以及上傳的JSON格式即可。

如果你之前使用的其他云:阿里云、騰訊云、OneNet、華為云IOT?想接入ThingsCloud云平臺(tái)?只需要照著之前云平臺(tái)里創(chuàng)建的屬性在ThingsCloud云平臺(tái)?重新創(chuàng)建一遍即可, 本身大同小異,沒(méi)有多大的區(qū)別。

這篇文章以智能飲水機(jī)為例,講解如何給智能飲水機(jī)項(xiàng)目設(shè)計(jì)一個(gè) 微信小程序,讓硬件上云。

硬件的功能:

1.1 ThingsCloud平臺(tái)介紹

官網(wǎng):https://www.thingscloud.xyz/

ThingsCloud 是一個(gè)專注于?物聯(lián)網(wǎng)(IoT)設(shè)備連接、管理和應(yīng)用開發(fā)?的一站式平臺(tái),旨在幫助企業(yè)快速構(gòu)建和部署物聯(lián)網(wǎng)解決方案。


(1)核心功能

1.設(shè)備接入與管理

      • ? 支持多種協(xié)議(MQTT、HTTP、CoAP等),兼容不同品牌和類型的物聯(lián)網(wǎng)設(shè)備。? 提供設(shè)備生命周期管理(注冊(cè)、配置、監(jiān)控、OTA升級(jí)等)。? 跨廠商設(shè)備統(tǒng)一接入,降低異構(gòu)系統(tǒng)整合難度。

2.?數(shù)據(jù)采集與處理

      • ? 實(shí)時(shí)采集設(shè)備數(shù)據(jù)(如傳感器數(shù)據(jù)、狀態(tài)信息)。? 內(nèi)置規(guī)則引擎,支持?jǐn)?shù)據(jù)過(guò)濾、轉(zhuǎn)換、報(bào)警觸發(fā)等。? 可對(duì)接第三方云服務(wù)或本地數(shù)據(jù)庫(kù)(如MySQL、InfluxDB)。

3.?可視化與監(jiān)控

      • ? 拖拽式儀表盤,自定義數(shù)據(jù)看板(如圖表、地圖、控件)。? 實(shí)時(shí)監(jiān)控設(shè)備狀態(tài),異常告警通過(guò)郵件/短信/Webhook通知。

4.?低代碼開發(fā)

      • ? 提供APISDK,支持快速開發(fā)物聯(lián)網(wǎng)應(yīng)用。? 可集成企業(yè)現(xiàn)有系統(tǒng)(如ERP、CRM)或構(gòu)建新業(yè)務(wù)邏輯。

5.?安全與權(quán)限

    • ? 設(shè)備認(rèn)證(證書、密鑰)、數(shù)據(jù)加密(TLS/SSL)。? 多租戶支持,細(xì)粒度權(quán)限控制(用戶、角色、項(xiàng)目)。

(2)典型應(yīng)用場(chǎng)景

??工業(yè)物聯(lián)網(wǎng)(IIoT):設(shè)備遠(yuǎn)程監(jiān)控、預(yù)測(cè)性維護(hù)。

??智能家居/樓宇:集中管理照明、安防、能耗設(shè)備。

??智慧農(nóng)業(yè):環(huán)境傳感器數(shù)據(jù)采集與自動(dòng)化控制。

??能源管理:實(shí)時(shí)監(jiān)測(cè)電力、水、燃?xì)獾认摹?/p>


(3)優(yōu)勢(shì)特點(diǎn)

開箱即用:減少底層開發(fā),聚焦業(yè)務(wù)場(chǎng)景。

彈性擴(kuò)展:支持海量設(shè)備接入和高并發(fā)數(shù)據(jù)處理。

成本優(yōu)化:按需付費(fèi)模式,降低中小型企業(yè)部署門檻。

開放生態(tài):與主流云服務(wù)(AWS、阿里云)及硬件兼容。

ThingsCloud 平臺(tái)的資源模型通常采用分層架構(gòu)設(shè)計(jì),涵蓋設(shè)備、數(shù)據(jù)、應(yīng)用等核心要素。以下是其資源模型的?圖形化表示?及分層說(shuō)明:


資源模型圖

接入

設(shè)備ID/證書

采集

轉(zhuǎn)發(fā)

觸發(fā)動(dòng)作

物理設(shè)備ThingsCloud 平臺(tái)核心資源層設(shè)備管理數(shù)據(jù)管道規(guī)則引擎設(shè)備1..N時(shí)序數(shù)據(jù)庫(kù)外部系統(tǒng)告警/自動(dòng)化應(yīng)用層可視化儀表盤API/SDK第三方集成

1.2 登錄云平臺(tái)

(1)注冊(cè)賬戶

官網(wǎng):https://www.thingscloud.xyz/

進(jìn)來(lái)用郵箱注冊(cè),并在對(duì)應(yīng)的郵箱中點(diǎn)擊激活賬號(hào)。

地址:https://console.thingscloud.xyz/signup

注冊(cè)之后需到對(duì)應(yīng)的郵箱中激活賬號(hào)。

(2)登錄控制臺(tái)

1.3 產(chǎn)品開發(fā)

產(chǎn)品開發(fā)主要步驟為:創(chuàng)建項(xiàng)目--創(chuàng)建設(shè)備--創(chuàng)建設(shè)備類型--添加關(guān)聯(lián)設(shè)備--添加設(shè)備功能。

下面依次進(jìn)行。

(1)創(chuàng)建項(xiàng)目

免費(fèi)版

    • ?包含較少的設(shè)備數(shù)和消息量,以及部分高級(jí)功能的限制,但完全不影響您對(duì)物聯(lián)網(wǎng)平臺(tái)基本功能的評(píng)估和體驗(yàn),以及硬件原型的開發(fā),或少量設(shè)備的個(gè)人使用。

一個(gè)用戶賬號(hào)下只可以創(chuàng)建一個(gè)免費(fèi)版項(xiàng)目

此處注意留意自己的選區(qū),后面只有選擇對(duì)應(yīng)的區(qū)才能看到所創(chuàng)的項(xiàng)目。

(2)項(xiàng)目創(chuàng)建完成

(3)創(chuàng)建設(shè)備

在 ThingsCloud 中,設(shè)備代表了您的物理設(shè)備在云平臺(tái)對(duì)應(yīng)的一個(gè)實(shí)體,這個(gè)物理設(shè)備可以是一個(gè)光照傳感器智能開關(guān),也可以是一個(gè)智能水表或網(wǎng)關(guān)。 創(chuàng)建設(shè)備非常簡(jiǎn)單,只需要給設(shè)備起一個(gè)名稱即可。當(dāng)然隨后您也可以修改設(shè)備名稱,或者使用 API 批量給設(shè)備更新名稱。

目前免費(fèi)版的只能創(chuàng)建3個(gè)設(shè)備,每日發(fā)消息量1000條,用戶數(shù)為3個(gè)。

所有設(shè)備--創(chuàng)建設(shè)備。

根據(jù)自己產(chǎn)品信息填寫:

(4)設(shè)備創(chuàng)建完成

創(chuàng)建完成。

(5)創(chuàng)建設(shè)備類型

(6)設(shè)備類型創(chuàng)建成功

(7)添加設(shè)備

(8)選擇設(shè)備

添加自己之前創(chuàng)建的設(shè)備

(9)關(guān)聯(lián)設(shè)備添加成功

1.4 添加功能

文檔介紹:https://www.thingscloud.xyz/docs/guide/device-type/function-define.html

功能定義是通過(guò)建立一套模型,來(lái)描述不同設(shè)備的能力,包括設(shè)備的屬性、事件和命令,從而為設(shè)備接入和應(yīng)用開發(fā)建立一套成熟的規(guī)范。功能定義對(duì)設(shè)備類型中的所有設(shè)備都有效。功能定義更像是給設(shè)備定義了一個(gè)類,其中約定了有哪些成員變量,以及變量的數(shù)據(jù)類型,另外還約定了一些特殊的方法。

屬性一般是設(shè)備自身具備的某種狀態(tài),比如溫度值、開關(guān)狀態(tài)、配置參數(shù)。 屬性可以由設(shè)備上報(bào)到云平臺(tái),或從云平臺(tái)下發(fā)到設(shè)備。云平臺(tái)會(huì)自動(dòng)保存屬性的當(dāng)前值和歷史值。

可通過(guò)添加標(biāo)準(zhǔn)功能,也可以通過(guò)添加屬性編輯功能定義。

屬性名稱:給屬性起一個(gè)簡(jiǎn)潔、明確且具有描述性的名稱,支持中文。屬性名稱不出現(xiàn)在屬性消息中。在一些設(shè)備面板界面的屬性當(dāng)前值和時(shí)序圖表中,屬性名稱會(huì)自動(dòng)代替屬性標(biāo)識(shí)符,便于瀏覽。示例:溫度、土壤濕度

屬性標(biāo)識(shí)符:只能包含:英文大小寫字母、數(shù)字、下劃線、橫線。如發(fā)布主題消息用json格式,必須與屬性字段名一致。示例:temperature

屬性類型:用來(lái)定義屬性在物理設(shè)備和云平臺(tái)之間的流動(dòng)方向,使得設(shè)備和云平臺(tái)的通信更加規(guī)范化。通過(guò)對(duì)屬性定義屬性類型,云平臺(tái)會(huì)自動(dòng)檢查屬性消息是否符合定義,并過(guò)濾掉不符合定義的屬性消息。示例:設(shè)備上報(bào),設(shè)備云端共享

數(shù)據(jù)類型:云平臺(tái)會(huì)自動(dòng)驗(yàn)證屬性的數(shù)據(jù)類型是否合法,對(duì)于不符合數(shù)據(jù)類型或不在設(shè)定范圍內(nèi)的情況,會(huì)自動(dòng)忽略處理。示例:數(shù)值,布爾

(1)明確項(xiàng)目所有屬性

該項(xiàng)目用到的所有屬性:

屬性名稱 屬性標(biāo)識(shí)符 屬性類型 數(shù)據(jù)類型 擴(kuò)展選項(xiàng)
出水量 angle 設(shè)備云端共享 數(shù)值 數(shù)值范圍:100-1000 初始值:100 步長(zhǎng):10 單位:ml
剩余水量 water_level 設(shè)備上報(bào) 數(shù)值 數(shù)值范圍:0-100 初始值:0 步長(zhǎng):1 單位:%
水溫 DS18B20 設(shè)備上報(bào) 數(shù)值 數(shù)值范圍:0-100 初始值:0 步長(zhǎng):1 單位:℃
水溫設(shè)置 DS18B20_MAX 設(shè)備云端共享 數(shù)值 數(shù)值范圍:0-100 初始值:0 步長(zhǎng):1 單位:℃
水質(zhì)質(zhì)量 water_data 設(shè)備上報(bào) 數(shù)值 數(shù)值范圍:0-100 初始值:0 步長(zhǎng):1 單位:%
出水控制 water_ctrl 設(shè)備云端共享 Switch (開關(guān)量) 0 - 關(guān) 1 - 開
自動(dòng)模式 mode 設(shè)備云端共享 Switch (開關(guān)量) 0 - 手動(dòng)模式 1 - 自動(dòng)模式
加熱控制 heat 設(shè)備云端共享 Switch (開關(guān)量) 0 - 關(guān) 1 - 開
水源過(guò)濾 water_filter 設(shè)備云端共享 Switch (開關(guān)量) 0 - 關(guān) 1 - 開

(2)添加出水量

可用添加標(biāo)準(zhǔn)功能,也可以通過(guò)添加屬性增加。

點(diǎn)擊確定之后,可在屬性下方看到添加的標(biāo)準(zhǔn)功能。

(3)添加剩余水量

添加成功

(4)添加水溫

添加成功。

(5)添加水溫設(shè)置

添加成功。

(6)添加水質(zhì)質(zhì)量

添加成功。

(7)添加出水控制

添加成功。

(8)添加自動(dòng)模式

添加完成。

(9)添加加熱控制

添加完成。

(10)添加水源過(guò)濾

添加完成。

根據(jù)項(xiàng)目實(shí)際添加功能完成。

1.5 設(shè)備登錄

(1)MQTT協(xié)議

MQTT 全稱是 Message Queuing Telemetry Transport,它是一種基于消息隊(duì)列的輕量級(jí)應(yīng)用層通信協(xié)議,實(shí)現(xiàn)了消息發(fā)布和訂閱。設(shè)備可以作為客戶端的形式通過(guò)它來(lái)發(fā)布和接收消息,實(shí)現(xiàn)數(shù)據(jù)上報(bào)和實(shí)時(shí)控制。

MQTT 是一種簡(jiǎn)單的消息傳遞協(xié)議,設(shè)計(jì)用于具有低帶寬的受限設(shè)備。因此,它是物聯(lián)網(wǎng)設(shè)備接入的完美解決方案。

當(dāng)前設(shè)備是采用MQTT協(xié)議與ThingsCloud服務(wù)器進(jìn)行通信。

MQTT物聯(lián)網(wǎng)套件產(chǎn)品架構(gòu)如下圖所示:

(2)查看設(shè)備證書與MQTT接入點(diǎn)信息

所有設(shè)備--設(shè)備--連接

點(diǎn)擊連接

接入地址說(shuō)明:https://www.thingscloud.xyz/docs/guide/connect-device/mqtt.html

在幫助文檔頁(yè)面,介紹了MQTT接入的地址和端口號(hào)。 當(dāng)前設(shè)備是單片機(jī),端口采用1883非加密端口。

(3)身份認(rèn)證總結(jié)

MQTT主機(jī):sh-3-mqtt.iot-api.com
固定的端口號(hào):?1883
username: AccessToken ? ??//點(diǎn)擊以上的復(fù)制然后粘貼出來(lái)
password: ProjectKey ? ??//點(diǎn)擊以上的復(fù)制然后粘貼出來(lái)
clientId: ? ? ? ? ? ? ? ? ?//空或任意 ? ?不對(duì) clientId 做任何限制,可隨意填寫。

需要注意的是,ThingsCloud 對(duì)同一個(gè)設(shè)備身份信息只支持一個(gè) MQTT 連接,也就是說(shuō),如果在兩個(gè)或多個(gè)物理設(shè)備中,使用同樣的 username/password 身份信息連接平臺(tái),即便 clientId 使用不同的字符串,平臺(tái)仍然將這些連接視為同一個(gè)設(shè)備,這會(huì)導(dǎo)致后一個(gè)設(shè)備連接成功后會(huì)頂?shù)糁暗脑O(shè)備連接。

(4)主題訂閱

主題訂閱是設(shè)備訂閱平臺(tái)的消息,如果設(shè)備想知道平臺(tái)下發(fā)的消息,就需要訂閱主題。

幫助文檔: https://www.thingscloud.xyz/docs/guide/connect-device/mqtt.html

需要訂閱什么數(shù)據(jù),設(shè)備端按照下面的主題格式填寫訂閱即可。

在設(shè)備端訂閱如下主題

attributes/push

(5)發(fā)布主題

發(fā)布主題: 就是設(shè)備向平臺(tái)上傳數(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ù)點(diǎn)上傳的格式:

設(shè)備上報(bào)屬性值

attributes

根據(jù)當(dāng)前設(shè)備,總結(jié)的消息格式如下:

發(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}//這里的屬性字段就是自己之前填寫的屬性標(biāo)識(shí)符?

特別要注意開關(guān)狀態(tài)的值如果標(biāo)明用true和false,必須用true和false,而不能用1或0,而反之可以,

再者值必須與之前設(shè)置的范圍一致,否則消息會(huì)上報(bào)失敗。

數(shù)據(jù)點(diǎn)是標(biāo)準(zhǔn)的JSON結(jié)構(gòu):

?{
??"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ù)總結(jié)

MQTT協(xié)議登錄時(shí),需要輸入4個(gè)參數(shù): MQTT-主機(jī),MQTT-端口,MQTT-用戶名,MQTT-密碼。

MQTT 主機(jī):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工具登錄測(cè)試

前面已經(jīng)介紹了MQTT協(xié)議登錄需要用到的參數(shù),以及訂閱主題、發(fā)布主題的格式,接下來(lái)我們通過(guò)MQTT工具模擬設(shè)備登錄ThingsCloud平臺(tái),完成數(shù)據(jù)交互測(cè)試。

簡(jiǎn)單來(lái)說(shuō): 就是用軟件來(lái)模擬實(shí)際的硬件,登錄ThingsCloud平臺(tái),上傳數(shù)據(jù),走一下這個(gè)流程。

接下來(lái)根據(jù)軟件的輸入框提示,輸入對(duì)應(yīng)的參數(shù),然后登錄設(shè)備,訂閱主題,發(fā)布主題即可完成一個(gè)流程的測(cè)試。

(8)登錄控制臺(tái)查看設(shè)備

在設(shè)備列表頁(yè)面,可以看到設(shè)備已經(jīng)在線了。

在設(shè)備的當(dāng)前屬性頁(yè)面可以看到上傳的數(shù)據(jù)。

1.6 創(chuàng)建應(yīng)用

(1)創(chuàng)建用戶應(yīng)用

(2)創(chuàng)建通用版

(3)用戶應(yīng)用創(chuàng)建成功

(4)保存APPID

AppID:76548517

1.7 配置應(yīng)用UI

設(shè)備--設(shè)備類型-點(diǎn)擊已創(chuàng)建的設(shè)備--應(yīng)用配置--打開編輯器

(1)打開應(yīng)用配置

(2)打開編輯器

進(jìn)入編輯器界面,根據(jù)自己喜好添加

(3)添加組件

(4)選擇屬性

可同時(shí)選擇單個(gè)或多個(gè)屬性

(5)選擇水溫、水質(zhì)質(zhì)量、剩余水量設(shè)置屬性

添加成功。

右邊設(shè)置屬性。

(6)添加出水量、水溫設(shè)置組件

選擇屬性

根據(jù)情況設(shè)置屬性。

(7)添加開關(guān)控制組件

根據(jù)自己喜好,點(diǎn)擊設(shè)置屬性修改。

修改成功。

(8)點(diǎn)擊樣式編輯修改樣式

(9)UI界面設(shè)計(jì)完成

根據(jù)自己的喜好修改樣式編輯后保存。

1.8 創(chuàng)建用戶

(1)創(chuàng)建新用戶

應(yīng)用---用戶--新建用戶

(2)用戶創(chuàng)建成功

保存一下登錄名及密碼

后面登錄查看app需使用。

(3)用戶名及密碼

用戶名:DS **** ??
密碼:**** ? //賬號(hào)密碼為登錄app及小程序的憑證,故隱藏。

(4)關(guān)聯(lián)設(shè)備

應(yīng)用---用戶---點(diǎn)擊用戶名稱

添加關(guān)聯(lián)設(shè)備

(5)用戶關(guān)聯(lián)設(shè)備添加成功

1.9 微信小程序及手機(jī)app調(diào)試

(1)搜索微信小程序ThingsX

(2)登錄小程序

賬號(hào)、密碼為1.8章節(jié)創(chuàng)建的用戶名與設(shè)置的密碼,APPID為1.6章節(jié)創(chuàng)建應(yīng)用時(shí)保存的APPID.

(3)查看對(duì)應(yīng)設(shè)備

當(dāng)前設(shè)備為離線狀態(tài),所顯示數(shù)據(jù)為歷史數(shù)據(jù)。

(4)MQTT調(diào)試助手調(diào)試

(5)查看控制臺(tái)

(6)查看微信小程序

現(xiàn)在已經(jīng)能實(shí)時(shí)看到MQTT調(diào)試助手模擬上傳的數(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

拷貝到手機(jī)安裝-登錄

查看app界面

手機(jī)app與微信小程序的使用不一樣,不再?gòu)?fù)述。

后續(xù)也可以根據(jù)自己的實(shí)際需要修改云平臺(tái)以及UI界面,微信小程序與app會(huì)同步修改。

相關(guān)推薦