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