德州網(wǎng)站制作公司深圳網(wǎng)站設(shè)計專家樂云seo
目錄
引言
1. GCP Pub/Sub 節(jié)點簡介
2. 節(jié)點配置
2.1 基本配置示例
3. 使用場景
3.1 數(shù)據(jù)傳輸
3.2 數(shù)據(jù)分析
3.3 事件通知
3.4 任務(wù)調(diào)度
4. 實際項目中的應(yīng)用
4.1 項目背景
4.2 項目需求
4.3 實現(xiàn)步驟
5. 總結(jié)
引言
ThingsBoard 是一個開源的物聯(lián)網(wǎng)平臺,提供了設(shè)備管理、數(shù)據(jù)收集、處理和可視化等功能。規(guī)則鏈?zhǔn)?ThingsBoard 中的一個強大功能,允許用戶定義復(fù)雜的業(yè)務(wù)邏輯來處理設(shè)備上報的數(shù)據(jù)。在規(guī)則鏈中,
GCP Pub/Sub
節(jié)點用于將消息發(fā)布到 Google Cloud Pub/Sub 主題。本文將詳細(xì)介紹GCP Pub/Sub
節(jié)點的用法、含義以及在實際項目中的應(yīng)用場景。
ThingsBoard從入門到實戰(zhàn)課程,深入透析底層原理,快速搭建自己的IOT平臺_嗶哩嗶哩_bilibiliThingsBoard從入門到實戰(zhàn)課程,深入透析底層原理,快速搭建自己的IOT平臺共計36條視頻,包括:1、ThingsBoard項目介紹、2、ThingsBoard前端Vue版本代碼編譯、3、ThingsBoard本地后端源碼編譯等,UP主更多精彩視頻,請關(guān)注UP賬號。https://www.bilibili.com/video/BV1CH36egEDM/?spm_id_from=333.999.0.0
1. GCP Pub/Sub 節(jié)點簡介
GCP Pub/Sub
節(jié)點的主要作用是在規(guī)則鏈執(zhí)行過程中,將消息發(fā)布到 Google Cloud Pub/Sub 主題。Google Cloud Pub/Sub 是一種完全托管的消息傳遞服務(wù),支持發(fā)布/訂閱模式,可以實現(xiàn)不同系統(tǒng)和服務(wù)之間的解耦和異步通信。通過使用 GCP Pub/Sub
節(jié)點,可以將設(shè)備上報的數(shù)據(jù)或處理結(jié)果發(fā)送到 Pub/Sub 主題,再由其他服務(wù)或系統(tǒng)消費這些消息,實現(xiàn)數(shù)據(jù)的進(jìn)一步處理和分析。
2. 節(jié)點配置
- 項目 ID:指定 Google Cloud 項目的 ID。
- 主題名稱:指定要發(fā)布的 Pub/Sub 主題名稱。
- 憑據(jù)文件:提供包含 Google Cloud 憑據(jù)的 JSON 文件路徑,用于身份驗證。
- 消息:指定要發(fā)送的消息內(nèi)容,可以是靜態(tài)文本或動態(tài)變量。
2.1 基本配置示例
{"projectId": "your-project-id","topicName": "your-topic-name","credentialsFile": "/path/to/credentials.json","message": "This is a test message from ThingsBoard"
}
3. 使用場景
GCP Pub/Sub
節(jié)點在多種場景下都非常有用,特別是在需要將設(shè)備數(shù)據(jù)發(fā)送到 Google Cloud 服務(wù)進(jìn)行進(jìn)一步處理和分析的場景中。以下是一些具體的應(yīng)用場景:
3.1 數(shù)據(jù)傳輸
在需要將設(shè)備上報的數(shù)據(jù)發(fā)送到 Google Cloud Pub/Sub 時,可以通過 GCP Pub/Sub
節(jié)點將數(shù)據(jù)發(fā)送到指定的主題。
{"projectId": "your-project-id","topicName": "device-data-topic","credentialsFile": "/path/to/credentials.json","message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
3.2 數(shù)據(jù)分析
在需要對設(shè)備數(shù)據(jù)進(jìn)行實時分析時,可以通過 GCP Pub/Sub
節(jié)點將數(shù)據(jù)發(fā)送到 Google Cloud Pub/Sub,再由 Google Cloud Dataflow 或其他服務(wù)進(jìn)行處理和分析。
{"projectId": "your-project-id","topicName": "data-analysis-topic","credentialsFile": "/path/to/credentials.json","message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
3.3 事件通知
在需要發(fā)送事件通知時,可以通過 GCP Pub/Sub
節(jié)點將事件消息發(fā)送到 Pub/Sub 主題,再由其他服務(wù)或系統(tǒng)消費這些消息進(jìn)行通知。
{"projectId": "your-project-id","topicName": "event-notification-topic","credentialsFile": "/path/to/credentials.json","message": "Event occurred for device ${msg.deviceId}: ${msg.eventType}"
}
3.4 任務(wù)調(diào)度
在需要調(diào)度任務(wù)時,可以通過 GCP Pub/Sub
節(jié)點將任務(wù)消息發(fā)送到 Pub/Sub 主題,再由任務(wù)調(diào)度系統(tǒng)消費這些消息執(zhí)行任務(wù)。
{"projectId": "your-project-id","topicName": "task-scheduling-topic","credentialsFile": "/path/to/credentials.json","message": "Task scheduled for device ${msg.deviceId}: ${msg.taskDetails}"
}
4. 實際項目中的應(yīng)用
下面是一個實際項目中的例子,展示如何在智能家居系統(tǒng)中使用 GCP Pub/Sub
節(jié)點。
4.1 項目背景
假設(shè)我們正在開發(fā)一個智能家居系統(tǒng),該系統(tǒng)需要支持用戶通過手機應(yīng)用控制家中的燈光、空調(diào)等設(shè)備,并記錄設(shè)備的狀態(tài)和使用情況。此外,還需要將設(shè)備數(shù)據(jù)發(fā)送到 Google Cloud Pub/Sub 進(jìn)行進(jìn)一步處理和分析。
4.2 項目需求
- 記錄設(shè)備的狀態(tài),例如當(dāng)前溫度、濕度等。
- 記錄設(shè)備的使用情況,例如開關(guān)次數(shù)、能耗等。
- 實現(xiàn)實時反饋,確保用戶能夠及時了解操作結(jié)果。
- 將設(shè)備數(shù)據(jù)發(fā)送到 Google Cloud Pub/Sub 進(jìn)行進(jìn)一步處理和分析。
4.3 實現(xiàn)步驟
-
部署設(shè)備:
- 在家中安裝智能燈光、空調(diào)等設(shè)備,并連接到 ThingsBoard 平臺。
-
創(chuàng)建規(guī)則鏈:
- 添加?
GCP Pub/Sub
?節(jié)點,用于將設(shè)備上報的數(shù)據(jù)發(fā)送到 Google Cloud Pub/Sub。 - 添加其他處理節(jié)點,如設(shè)備控制、狀態(tài)查詢和數(shù)據(jù)存儲。
- 添加?
-
配置規(guī)則鏈
- 配置?
GCP Pub/Sub
?節(jié)點,用于發(fā)送設(shè)備數(shù)據(jù)。
- 配置?
{"projectId": "your-project-id","topicName": "device-data-topic","credentialsFile": "/path/to/credentials.json","message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
- 處理數(shù)據(jù):
- 根據(jù)業(yè)務(wù)邏輯,動態(tài)地將設(shè)備數(shù)據(jù)發(fā)送到 Google Cloud Pub/Sub。
// 發(fā)送設(shè)備數(shù)據(jù)到 Google Cloud Pub/Sub
public void sendDeviceDataToPubSub(String projectId, String topicName, String deviceId, String data) {// 配置 GCP Pub/Sub 節(jié)點JsonNode config = JsonNodeFactory.instance.objectNode().put("projectId", projectId).put("topicName", topicName).put("credentialsFile", "/path/to/credentials.json").put("message", "Device " + deviceId + " reported data: " + data);gcpPubSubNode.sendMessage(config);
}
-
前端界面:
- 開發(fā)一個前端界面,顯示設(shè)備的狀態(tài)和使用情況。
- 提供一個界面,讓用戶能夠查看和管理設(shè)備的狀態(tài)和使用情況,以及接收通知。
-
數(shù)據(jù)查詢:
- 使用 SQL 查詢,獲取設(shè)備的狀態(tài)和使用情況。
SELECT * FROM device_status WHERE device_id = 'device1' ORDER BY timestamp DESC LIMIT 10;
SELECT * FROM device_usage WHERE device_id = 'device1' ORDER BY timestamp DESC LIMIT 10;
5. 總結(jié)
GCP Pub/Sub
節(jié)點在 ThingsBoard 規(guī)則鏈中是一個非常有用的工具,可以幫助你將消息發(fā)布到 Google Cloud Pub/Sub 主題,實現(xiàn)數(shù)據(jù)的進(jìn)一步處理和分析。通過合理地使用GCP Pub/Sub
節(jié)點,可以在數(shù)據(jù)傳輸、數(shù)據(jù)分析、事件通知和任務(wù)調(diào)度等場景中,確保系統(tǒng)的高效性和靈活性。
? 🌐?項目地址
Things Vuehttp://thingsvue.tpson.cn:7772/#/login?redirect=/tb-home/index
賬號:admin@thingsboard.org 密碼:admin123456
🎽?安裝使用
獲取項目代碼:
代碼地址https://gitee.com/tpsonwell_admin/thingsvue