自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

HarmonyOS 基于 LYEVK-3861 接入華為 IoT 平臺

系統(tǒng) OpenHarmony
本文主要講述基于LYEVK-3861 IoT物聯(lián)網(wǎng)開發(fā)板套件,實(shí)現(xiàn)華為云的物聯(lián)網(wǎng)平臺的IoT設(shè)備接,設(shè)備和云端雙向消息通信、設(shè)備管理、遠(yuǎn)程控制和監(jiān)控等功能。

[[424763]]

想了解更多內(nèi)容,請?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

介紹

本文主要講述基于LYEVK-3861 IoT物聯(lián)網(wǎng)開發(fā)板套件,實(shí)現(xiàn)華為云的物聯(lián)網(wǎng)平臺的IoT設(shè)備接,設(shè)備和云端雙向消息通信、設(shè)備管理、遠(yuǎn)程控制和監(jiān)控等功能。

準(zhǔn)備工作

1、開發(fā)環(huán)境、編譯環(huán)境搭建,參考官方文檔,此處不在贅述。參考鏈接如下:

Window開發(fā)環(huán)境

Ubuntu編譯環(huán)境

2、OpenHarmony 2.2源碼 源碼獲取,參考:

源碼獲取說明

3、LYEVK-3861 IoT物聯(lián)網(wǎng)開發(fā)板套件

LYEVK-3861開發(fā)板

4、MQTT依賴庫

MQTT協(xié)議: 采用三方MQTT協(xié)議庫做底層支持,嵌入式版本屬于小巧可用的c實(shí)現(xiàn)庫,只要稍作移植修改,即可在OHOS系統(tǒng)上使用

cJSON: openHarmony 2.2L0 版本 的內(nèi)核本身就支持cJSON,不需要做移植。

介紹

LYEVK 3861開發(fā)板通過MQTT協(xié)議與華為云IoT平臺進(jìn)行互聯(lián)互通。使用到的模塊有主控板、母板、可燃?xì)怏w感應(yīng)板。

設(shè)備啟動(dòng)啟動(dòng)之后,會自動(dòng)連接熱點(diǎn),獲取網(wǎng)絡(luò)時(shí)間,顯示最近一次上報(bào)的溫度數(shù)據(jù),之后每隔一定的時(shí)間上報(bào)溫度數(shù)據(jù)。

初始化接口

設(shè)備信息

  1. void device_info_init(char *client_id, char * username, char *password); 

設(shè)置設(shè)備信息,在調(diào)用oc_mqtt_init()前要先設(shè)置設(shè)備信息。

華為IoT平臺 初始化

  1. int oc_mqtt_init(void); 

華為IoT平臺初始化函數(shù),需要在使用 華為IoT平臺 功能前調(diào)用。

影子數(shù)據(jù)回調(diào)響應(yīng)函數(shù)

  1. void mqtt_shadow_rsp_cb(void(*cmd_rsp_cb)(uint8_t *recv_data, size_t recv_size, uint8_t **resp_data, size_t *resp_size)); 

影子數(shù)據(jù)回調(diào)響應(yīng)函數(shù),設(shè)備在與華為IoT平臺連接后,獲取設(shè)備最近一次上報(bào)的屬性值的回調(diào)響應(yīng)函數(shù)。

數(shù)據(jù)處理接口

設(shè)備消息上報(bào)

  1. int oc_mqtt_profile_msgup(char *deviceid,oc_mqtt_profile_msgup_t *payload); 

是指設(shè)備無法按照產(chǎn)品模型中定義的屬性格式進(jìn)行數(shù)據(jù)上報(bào)時(shí),可調(diào)用此接口將設(shè)備的自定義數(shù)據(jù)上報(bào)給平臺,平臺將設(shè)備上報(bào)的消息轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器或華為云其他云服務(wù)上進(jìn)行存儲和處理。

設(shè)備影子數(shù)據(jù)獲取

  1. int oc_mqtt_profile_getshadow(char *deviceid,oc_mqtt_profile_shadowget_t *payload); 

設(shè)備側(cè)調(diào)用,用于獲取最近一次上報(bào)到平臺的數(shù)據(jù)。

設(shè)備上報(bào)屬性數(shù)據(jù)

  1. int oc_mqtt_profile_propertyreport(char *deviceid,oc_mqtt_profile_service_t *payload); 

用于設(shè)備按產(chǎn)品模型中定義的格式將屬性數(shù)據(jù)上報(bào)給平臺。

屬性上報(bào)和消息上報(bào)的區(qū)別,請查看消息通信說明

網(wǎng)關(guān)批量上報(bào)屬性數(shù)據(jù):

  1. int oc_mqtt_profile_gwpropertyreport(char *deviceid,oc_mqtt_profile_device_t *payload); 

用于批量設(shè)備上報(bào)屬性數(shù)據(jù)給平臺。網(wǎng)關(guān)設(shè)備可以用此接口同時(shí)上報(bào)多個(gè)子設(shè)備的屬性數(shù)據(jù)。

屬性設(shè)置的響應(yīng)結(jié)果

  1. int oc_mqtt_profile_propertysetresp(char *deviceid,oc_mqtt_profile_propertysetresp_t *payload); 

屬性查詢響應(yīng)結(jié)果

  1. int oc_mqtt_profile_propertygetresp(char *deviceid,oc_mqtt_profile_propertygetresp_t *payload); 

屬性查詢響應(yīng)結(jié)果:

軟件設(shè)計(jì)

連接平臺

在連接平臺前需要獲取CLIENT_ID、USERNAME、PASSWORD,訪問這里,填寫注冊設(shè)備后生成的設(shè)備ID(DeviceId)和密鑰(DeviceSecret),生成連接信息(ClientId、Username、Password)。

  1. WifiConnect("CBG""chinasoft"); 
  2.     device_info_init(CLIENT_ID, USERNAME, PASSWORD); 
  3.     oc_mqtt_init(); 
  4.     mqtt_shadow_rsp_cb(ocShadowCallback); //注冊設(shè)備影子回調(diào)函數(shù) 

推送數(shù)據(jù)

當(dāng)需要上傳數(shù)據(jù)時(shí),需要先拼裝數(shù)據(jù),然后通過oc_mqtt_profile_propertyreport上報(bào)數(shù)據(jù)。代碼示例如下:

影子數(shù)據(jù)獲取

華為IoT平臺支持設(shè)備影子數(shù)據(jù)獲取,先拼接請求,通過oc_mqtt_profile_getshadow發(fā)送請求。接收響應(yīng)后會通過回調(diào)函數(shù)將收到的數(shù)據(jù)發(fā)送到隊(duì)列中,讀取隊(duì)列消息后做后續(xù)處理,代碼示例如下:

  1. static void getShadowMsg(void) 
  2.     int ret; 
  3.     oc_mqtt_profile_shadowget_t payload; 
  4.     payload.object_device_id = USERNAME; 
  5.     char request[10] = {0}; 
  6.     sprintf(request, "R%d", rand() % 10000); 
  7.     payload.request_id = request; 
  8.     payload.service_id = "wktmp"
  9.     ret = oc_mqtt_profile_getshadow(CLIENT_ID, &payload); 
  10.  
  11. void ocShadowCallback(uint8_t *recv_data, size_t recv_size, uint8_t **resp_data, size_t *resp_size) 
  12.     app_msg_t *app_msg; 
  13.  
  14.     int ret = 0; 
  15.     app_msg = malloc(sizeof(app_msg_t)); 
  16.     app_msg->msg_type = en_msg_shadow; 
  17.     app_msg->msg.cmd.payload = (char *)recv_data; 
  18.     app_msg->msg.cmd.len = recv_size; 
  19.  
  20.     ret = osMessageQueuePut(mid_MsgQueue, &app_msg, 0U, 0U); 
  21.     if (ret != 0) 
  22.     { 
  23.         free(recv_data); 
  24.     } 
  25.     *resp_data = NULL
  26.     *resp_size = 0; 

編譯調(diào)試

登錄

設(shè)備接入華為云平臺之前,需要在平臺注冊用戶賬號,華為云地址:https://www.huaweicloud.com/

在華為云首頁單擊產(chǎn)品,找到IoT物聯(lián)網(wǎng),單擊設(shè)備接入IoTDA 并單擊立即使用。

創(chuàng)建產(chǎn)品

在設(shè)備接入頁面可看到總覽界面,展示了華為云平臺接入的協(xié)議與域名信息,根據(jù)需要選取MQTT通訊必要的信息備用。

接入?yún)f(xié)議(端口號):MQTT 1883

選中側(cè)邊欄產(chǎn)品頁,單擊右上角“創(chuàng)建產(chǎn)品”[[424773]]

在頁面中選中所屬資源空間,并且按要求填寫產(chǎn)品名稱,選中MQTT協(xié)議,數(shù)據(jù)格式為JSON,并填寫廠商名稱,選擇所屬行業(yè)以及添加設(shè)備類型,并單擊右下角“確定”如圖:

創(chuàng)建完成后,選擇“查看詳情”,在產(chǎn)品頁會自動(dòng)生成剛剛創(chuàng)建的產(chǎn)品,單擊“查看”可查看創(chuàng)建的具體信息。

單擊產(chǎn)品詳情頁的自定義模型,在彈出頁面中新增服務(wù),自定義服務(wù)ID:

在服務(wù)ID的下拉菜單下點(diǎn)擊“添加屬性”填寫相關(guān)信息:

注冊設(shè)備

在側(cè)邊欄中單擊“設(shè)備”,進(jìn)入設(shè)備頁面,單擊右上角“注冊設(shè)備”,勾選對應(yīng)所屬資源空間并選中剛剛創(chuàng)建的產(chǎn)品,注意設(shè)備認(rèn)證類型選擇“秘鑰”,按要求填寫秘鑰。

記錄下設(shè)備ID和設(shè)備密鑰

注冊完成后,在設(shè)備頁面單擊“所有設(shè)備”,即可看到新建的設(shè)備,同時(shí)設(shè)備處于未激活狀態(tài)。

設(shè)備綁定

在連接平臺前需要獲取CLIENT_ID、USERNAME、PASSWORD,訪問這里,填寫注冊設(shè)備時(shí)生成的設(shè)備ID和設(shè)備密鑰生成連接信息(ClientId、Username、Password),并將修改代碼對應(yīng)位置。

聯(lián)網(wǎng)調(diào)試

示例代碼編譯燒錄代碼后,按下開發(fā)板的RESET按鍵,通過串口助手查看日志,首先會打印最近一次上報(bào)的溫度信息,然后打印當(dāng)前溫度信息。

  1. Today is : Wes, pre Temp is:32 
  2. Today is : Wes, Temp is:28 

平臺上的設(shè)備顯示為在線狀態(tài),點(diǎn)擊設(shè)備右側(cè)的“查看”,進(jìn)入設(shè)備詳情頁面,可看到上報(bào)的數(shù)據(jù)。

在華為云平臺的消息跟蹤頁面可以查看平臺與設(shè)備的數(shù)據(jù)交互:

其中設(shè)備重新連接請求影子數(shù)據(jù)時(shí),平臺的下發(fā)的信息如下:

設(shè)備側(cè)實(shí)現(xiàn)對響應(yīng)的回調(diào)處理即可。

總結(jié)

以上就是設(shè)備接入云端,和云端交互的一個(gè)相對簡單的流程。設(shè)備和云端之間的交互還有很多種,比如平臺直接下發(fā)控制命令,或者是通過第三方應(yīng)用通過平臺下發(fā)設(shè)備控制命令等。以上這些都可以通過閱讀官方文檔,自己實(shí)現(xiàn)相關(guān)的功能。

購買開發(fā)板

LYEVK-3861開發(fā)板套件:https://developer.huawei.com/consumer/cn/market/prod-detail?productId=8b2d9f0cd85445e0ace0410736977695&shopId=641dc12fabac47cdab3f03e7a

想了解更多內(nèi)容,請?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2021-11-05 09:58:58

鴻蒙HarmonyOS應(yīng)用

2021-08-27 17:02:56

鴻蒙HarmonyOS應(yīng)用

2021-09-02 15:25:53

鴻蒙HarmonyOS應(yīng)用

2021-08-17 14:40:43

鴻蒙HarmonyOS應(yīng)用

2021-04-29 09:52:25

鴻蒙HarmonyOS應(yīng)用

2021-12-31 15:07:00

鴻蒙HarmonyOS應(yīng)用

2020-12-15 11:57:49

Hi3861 HarmonyOS開發(fā)板

2015-06-30 16:45:21

視訊云甘肅電子政務(wù)高效協(xié)同平華為

2021-10-11 14:14:42

鴻蒙HarmonyOS應(yīng)用

2016-07-14 14:28:52

華為

2016-07-14 11:27:38

華為

2016-07-14 16:55:08

2016-07-11 14:58:06

華為開發(fā)者

2009-12-11 15:41:18

華為路由器接入

2021-05-28 13:44:02

華為MatePad Pro鴻蒙系統(tǒng)

2023-12-21 11:57:45

物聯(lián)網(wǎng)IoT網(wǎng)絡(luò)

2016-07-04 16:24:16

IoTOceanConnec華為

2021-04-30 09:43:27

鴻蒙HarmonyOS應(yīng)用

2021-04-26 15:19:02

鴻蒙HarmonyOS應(yīng)用

2021-09-09 10:06:09

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號