更多信息请访问:与华为共建的Harmonyos技术社区https://harmonyos.51cto.com/#zz一般来说,一个物联网产品应包括设备、云平台和移动应用程序。我会将MQTT协议和OneNET访问协议移植到鸿蒙系统中,让手机APP和网页都可以远程(跨网络,非局域网)访问开发板数据,控制开发板的功能。理论上,任何基于MQTT协议的物联网云平台都可以支持接入。关于phomqtt和onenet软件包,已经提供下载,并声明所有源代码遵守开源协议。支持HarmonyOS的harmony_mqtt代码仓库:https://gitee.com/qidiyun/harmony_mqtt支持HarmonyOS的onenet接入包仓库:https://gitee.com/qidiyun/harmony_onenet3.11.1使用OneNET物联网云平台在这里,进入应用程序,你可以看到如下网页界面。本网页的温湿度数据由鸿蒙开发板(Hi3861)上传,有开关按钮控制开发板的LED灯。此外,还提供手机APP。上面的界面比较简单,但是并不妨碍我们的使用。选择OneNET云平台的主要原因是接入方式比较简单方便,简单易学。另外一个是OneNET提供了物联网云平台,对于手机APP,不需要自己去实现,可以更专注于鸿蒙系统的开发。当我们按下开关按钮时,可以看到开发板打印的信息如下:云平台发送一串json字符串,key为“ledSwitch”,值为1,可以看到LED开发板灯亮。为0时,开发板的LED灯熄灭。3.11.2软件包我以软件包的形式发布了mqtt和onenet。两个软件包分别是:(1)onenet——实现onenet的访问能力(2)pahomqtt——实现MQTT协议的功能。将这两个软件包放在third_party文件夹下。然后修改code-1.0\vendor\hisi\hi3861\hi3861\BUILD.gn文件,将pahomqtt和onenet加入编译。我们看onenet文件夹:onenet.h是头文件onenet_mqtt.c是整个源码,它是基于pahomqtt的MQTTClient编程模型。其他示例文件夹下是一个示例代码,代码内容如下:#include#include#include"MQTTClient.h"#include"onenet.h"#defineONENET_INFO_DEVID"597952816"#defineONENET_INFO_AUTH"202005160951"#defineONENET_INFO_APIKEY"zgQdlB5y3Bi9pNd2bUYmS8TJHIY="#defineONENET_INFO_PROID"345377"#defineONENET_MASTER_APIKEY"gwaK2wJT5wgnSbJYz67CVRGvwkI="externintrand(void);voidonenet_cmd_rsp_cb(uint8_t*recv_data,size_trecv_size,uint8_t**resp_data,size_t*resp_size){printf("recvdatais%.*s\n",recv_size,recv_data);*resp_data=NULL;*resp_size=0;}intmqtt_test(void){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_cmd_cbr(onepnet_cmd_cbr_cbr(onepnet_cmd_cbr_cbr(onepnet_cmd_cbr(onepnet_cmd_cbr)){intvalue=0;value=rand()%100;if(onenet_mqtt_upload_digit("temperature",value)<0){printf("uploadhaserror,stopuploading");//break;}else{printf("buffer:{\"temperature\":%d}\r\n",value);}sleep(1);}return0;}手机APP下载:https://open.iot.10086.cn/doc/art656.html#118由于本版块内容较多,将分成多篇文章陆续发布。目前的计划如下:(1)Pahomqtt客户端移植其实我之前已经有一篇关于pahomqtt移植的文章,不过那篇文章只是简单的移植,不支持多任务。这次mqtt移植将支持多任务处理。(2)onenet协议的移植与实现。主要讲如何在mqtt的基础上实现onenet访问。(3)如何使用onenet云平台(4)如何将设备(鸿蒙开发板)接入onenet,实现数据互传。了解更多请访问:与华为官方共建鸿蒙科技社区https://harmonyos.51cto.com/#zz