成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

系統 OpenHarmony
本文主要講述基于LYEVK-3861 IoT物聯網開發板套件,實現華為云的物聯網平臺的IoT設備接,設備和云端雙向消息通信、設備管理、遠程控制和監控等功能。

[[424763]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

介紹

本文主要講述基于LYEVK-3861 IoT物聯網開發板套件,實現華為云的物聯網平臺的IoT設備接,設備和云端雙向消息通信、設備管理、遠程控制和監控等功能。

準備工作

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

Window開發環境

Ubuntu編譯環境

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

源碼獲取說明

3、LYEVK-3861 IoT物聯網開發板套件

LYEVK-3861開發板

4、MQTT依賴庫

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

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

介紹

LYEVK 3861開發板通過MQTT協議與華為云IoT平臺進行互聯互通。使用到的模塊有主控板、母板、可燃氣體感應板。

設備啟動啟動之后,會自動連接熱點,獲取網絡時間,顯示最近一次上報的溫度數據,之后每隔一定的時間上報溫度數據。

初始化接口

設備信息

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

設置設備信息,在調用oc_mqtt_init()前要先設置設備信息。

華為IoT平臺 初始化

  1. int oc_mqtt_init(void); 

華為IoT平臺初始化函數,需要在使用 華為IoT平臺 功能前調用。

影子數據回調響應函數

  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)); 

影子數據回調響應函數,設備在與華為IoT平臺連接后,獲取設備最近一次上報的屬性值的回調響應函數。

數據處理接口

設備消息上報

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

是指設備無法按照產品模型中定義的屬性格式進行數據上報時,可調用此接口將設備的自定義數據上報給平臺,平臺將設備上報的消息轉發給應用服務器或華為云其他云服務上進行存儲和處理。

設備影子數據獲取

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

設備側調用,用于獲取最近一次上報到平臺的數據。

設備上報屬性數據

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

用于設備按產品模型中定義的格式將屬性數據上報給平臺。

屬性上報和消息上報的區別,請查看消息通信說明

網關批量上報屬性數據:

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

用于批量設備上報屬性數據給平臺。網關設備可以用此接口同時上報多個子設備的屬性數據。

屬性設置的響應結果

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

屬性查詢響應結果

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

屬性查詢響應結果:

軟件設計

連接平臺

在連接平臺前需要獲取CLIENT_ID、USERNAME、PASSWORD,訪問這里,填寫注冊設備后生成的設備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); //注冊設備影子回調函數 

推送數據

當需要上傳數據時,需要先拼裝數據,然后通過oc_mqtt_profile_propertyreport上報數據。代碼示例如下:

影子數據獲取

華為IoT平臺支持設備影子數據獲取,先拼接請求,通過oc_mqtt_profile_getshadow發送請求。接收響應后會通過回調函數將收到的數據發送到隊列中,讀取隊列消息后做后續處理,代碼示例如下:

  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; 

編譯調試

登錄

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

在華為云首頁單擊產品,找到IoT物聯網,單擊設備接入IoTDA 并單擊立即使用。

創建產品

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

接入協議(端口號):MQTT 1883

選中側邊欄產品頁,單擊右上角“創建產品”[[424773]]

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

創建完成后,選擇“查看詳情”,在產品頁會自動生成剛剛創建的產品,單擊“查看”可查看創建的具體信息。

單擊產品詳情頁的自定義模型,在彈出頁面中新增服務,自定義服務ID:

在服務ID的下拉菜單下點擊“添加屬性”填寫相關信息:

注冊設備

在側邊欄中單擊“設備”,進入設備頁面,單擊右上角“注冊設備”,勾選對應所屬資源空間并選中剛剛創建的產品,注意設備認證類型選擇“秘鑰”,按要求填寫秘鑰。

記錄下設備ID和設備密鑰

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

設備綁定

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

聯網調試

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

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

平臺上的設備顯示為在線狀態,點擊設備右側的“查看”,進入設備詳情頁面,可看到上報的數據。

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

其中設備重新連接請求影子數據時,平臺的下發的信息如下:

設備側實現對響應的回調處理即可。

總結

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

購買開發板

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

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-11-05 09:58:58

鴻蒙HarmonyOS應用

2021-08-27 17:02:56

鴻蒙HarmonyOS應用

2021-09-02 15:25:53

鴻蒙HarmonyOS應用

2021-08-17 14:40:43

鴻蒙HarmonyOS應用

2021-04-29 09:52:25

鴻蒙HarmonyOS應用

2021-12-31 15:07:00

鴻蒙HarmonyOS應用

2009-12-11 15:41:18

華為路由器接入

2020-12-15 11:57:49

Hi3861 HarmonyOS開發板

2021-05-28 13:44:02

華為MatePad Pro鴻蒙系統

2016-07-11 14:58:06

華為開發者

2021-04-26 15:19:02

鴻蒙HarmonyOS應用

2021-04-30 09:43:27

鴻蒙HarmonyOS應用

2015-06-30 16:45:21

視訊云甘肅電子政務高效協同平華為

2016-07-14 14:28:52

華為

2021-10-11 14:14:42

鴻蒙HarmonyOS應用

2016-07-14 11:27:38

華為

2021-09-09 10:06:09

鴻蒙HarmonyOS應用

2020-11-06 17:58:34

路網數字化華為云

2016-07-14 16:55:08

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品国产a级 | 日韩一区二区三区av | 亚洲精品在线91 | 天天曰天天干 | 91精品国产综合久久婷婷香蕉 | 国产二区三区 | 影音先锋中文字幕在线观看 | 欧美一级三级在线观看 | 国产高清精品在线 | 日本aaa视频 | 日韩精品一区二区三区免费观看 | 成人免费大片黄在线播放 | 91.com视频| av一区二区三区在线观看 | 久久久久久久一区 | 国产日韩欧美一区二区 | 国产精品无码久久久久 | 国产在线视频在线观看 | 成人精品一区二区 | 久久午夜精品福利一区二区 | 中文字幕 国产 | 久久久爽爽爽美女图片 | 性色网站 | 日本精品视频 | 激情毛片| 国产精品欧美一区喷水 | 91免费福利在线 | 久草精品视频 | 国产视频导航 | 在线欧美亚洲 | 欧美日韩在线看 | 孰女乱色一区二区三区 | 久久在线视频 | 99re在线播放 | 久久免费看 | 欧美激情在线精品一区二区三区 | 免费国产一区 | 久久久久久黄 | 91激情视频 | 国产成人久久精品一区二区三区 | 成人免费视频网站在线观看 |