HarmonyOS 设备联网上云
@toc
1.对接华为loT平台
1.1华为loT平台介绍
华为云物联网平台即华为设备接入服务(loT Device Access),提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,并可将设备数据灵活流转到华为云其他服务,帮助物联网行业用户快速完成设备联网及行业应用集成。
华为loT平台地址:
https://www.huaweicloud.com/product/iothub.html
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平台
打开“D6_iot_cloud_oc”工程的iot_cloud_oc_sample.c文件,查看实现MQTT协议对接华为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;
}
案例演示
案例将演示如何在BearPi-HM_Nano开发板上使用MQTT协议连接华为IoT平台,需要将E53_IA1智慧农业扩展板BearPi-HM_Nano开发板安装在一起。
详细操作见:
https://www.bilibili.com/video/BV1tv411b7SA?p=30&share_source=copy_web&vd_source=8f1cf1d7278a65d1271a6ccbd8891dc6 P30
如果没有板子,可在下面链接处购买
E53_IA1智慧农业扩展板购买地址: https://item.taobao.com/item.htm?id-607878490044
2.对接OneNET平台
2.1 OneNET平台介绍
OneNET是中国移动打造的高效、稳定、安全的物联网开放平台。OneNET支持适配各种网络环境和协议类型,可实现各种传感器和智能硬件的快速接入,提供丰富的API和应用模板以支撑各类行业应用和智能硬件的开发,有效降低物联网应用开发和部署成本,满足物联网领域设备连接、协议适配、数据存储、数据安全以及大数据分析等平台级服务需求。
OneNET平台地址:
https://open.iot.10086.cn/develop/global/product/#/console
2.2 OneNET平台产品创建
OneNET平台资源(包括设备,APlKey,触发器,应用等)的集合,一个产品对应唯一的masterkey、产品ID,设备注册码,一个产品下包含多个具备同一特征的设备,多个设备之间的唯一性由SN来区分
教程地址:
https://gitee.com/bearpi/bearpi-hm_nano/blob/master/applications/BearPi/BearPi-HM_Nano/sample/D7_iot_cloud_onenet/README.md
2.3 设备对接OneNET平台
打开“D7_iot_cloud_onenet”工程的iot_cloud_onenet_sample.c文件,查看实现MQTT协议对接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);
}
}