天天看點

對接華為雲IOT平台

• ​​1.對接華為loT平台

• ​​1.1華為loT平台介紹​

       華為雲物聯網平台即華為裝置接入服務(loT Device Access),提供海量裝置連接配接上雲、裝置和雲端雙向消息通信、批量裝置管理、遠端控制和監控、OTA更新、裝置關聯規則等能力,并可将裝置資料靈活流轉到華為雲其他服務,幫助物聯網行業使用者快速完成裝置聯網及行業應用內建。

• ​​1.2華為loT平台産品建立​

       産品模型用于描述裝置具備的能力和特性。開發者通過定義産品模型,在物聯網平台建構一款裝置的抽象模型,使平台了解該款裝置支援的服務、屬性、指令等資訊,如顔色、開關等。

​服務資訊

服務ID 服務類型
Agriculture Senser

屬性資訊

屬性名稱 資料類型
Temperature int
Humidity int
Luminance int
LightStatus string
MotorStatus string

指令資訊

指令名稱 參數名稱 資料類型 長度 枚舉
Agriculture_Control_light Light string 3 ON,OFF
Agriculture_Control_Motor Motor string 3 ON,OFF

• ​​1.3裝置對接華為loT平台​

        打開“代碼展示:

static int task_main_entry(void)
{
    app_msg_t *app_msg;

    uint32_t ret = WifiConnect("Hold", "0987654321");

    device_info_init(CLIENT_ID, USERNAME, PASSWORD);
    oc_mqtt_init();
    oc_set_cmd_rsp_cb(oc_cmd_rsp_cb);

    while (1)
    {
        app_msg = NULL;
        (void)osMessageQueueGet(mid_MsgQueue, (void **)&app_msg, NULL, 0U);
        if (NULL != app_msg)
        {
            switch (app_msg->msg_type)
            {
            case en_msg_cmd:
                deal_cmd_msg(&app_msg->msg.cmd);
                break;
            case en_msg_report:
                deal_report_msg(&app_msg->msg.report);
                break;
            default:
                break;
            }
            free(app_msg);
        }
    }
    return 0;
}      

D6_iot_cloud_oc”工程的iot_cloud_oc_sample.c檔案,檢視實作MQTT協定對接華為loT平台的代碼。

• ​​2.對接OneNET平台​​

​​ 2.1 OneNET平台介紹​

OneNET是中國移動打造的高效、穩定、安全的物聯網開放平台。OneNET支援适配各種網絡環境和協定類型,可實作各種傳感器和智能硬體的快速接入,提供豐富的API和應用模闆以支撐各類行業應用和智能硬體的開發,有效降低物聯網應用開發和部署成本,滿足物聯網領域裝置連接配接、協定适配、資料存儲、資料安全以及大資料分析等平台級服務需求。

• 2.2 OneNET平台産品建立

void MQTT_Report_Task(void)
{

    WifiConnect(Wifi_SSID, Wifi_PASSWORD);
    device_info_init(ONENET_INFO_DEVID, ONENET_INFO_PROID, ONENET_INFO_AUTH, ONENET_INFO_APIKEY, ONENET_MASTER_APIKEY);
    onenet_mqtt_init();
    onenet_set_cmd_rsp_cb(onenet_cmd_rsp_cb);
    while (1)
    {

        onenet_mqtt_upload_digit("Temperature", (int)E53_IA1_Data.Temperature);
        onenet_mqtt_upload_digit("Humidity", (int)E53_IA1_Data.Humidity);
        onenet_mqtt_upload_digit("Luminance", (int)E53_IA1_Data.Lux);

        sleep(1);
    }
}      

繼續閱讀