目录

OpenHarmony轻量系统开发12OneNET云接入

OpenHarmony轻量系统开发【12】OneNET云接入

摘要 :本文简单介绍如何接入OneNET云平台

适合群体 :适用于润和Hi3861开发板

文中所有代码仓库:

12.1 OneNET云介绍

通常来说,一个物联网产品应当包括设备、云平台、手机APP。我将在鸿蒙系统上移植MQTT协议、OneNET接入协议,实现手机APP、网页两者都可以远程(跨网络,不是局域网的)访问开发板数据,并控制开发板的功能。

理论上来说,任何以MQTT协议为基础的物联网云平台都可以支持接入。

关于phomqtt 和onenet软件包,已提供下载,声明:所有源码均遵守开源协议~~。

支持鸿蒙系统的 harmony_mqtt 代码仓库:

支持鸿蒙系统的 onenet接入软件包仓库:

12.2 效果演示

先看下效果,我这边使用的是OneNET物联云平台,进入应用,可以看到如下网页界面。该网页的温度、湿度数据由 鸿蒙开发板(Hi3861)上传,同时有一个开关按钮,可以控制开发板的LED灯。

https://i-blog.csdnimg.cn/blog_migrate/f9cb1bfe71897388bd089d3ca61d4900.png

另外,也提供一个手机APP,

https://i-blog.csdnimg.cn/blog_migrate/66ad0ace5a20dfe72611b4b07e2ee624.png

以上界面比较简陋,但不妨碍我们使用,另外选择OneNET云平台的主要是原因是接入方式比较简单方便,易于学习,另外一个是OneNET提供了物联网云平台、手机APP,不需要大家自己再去实现,可以更多地将注意力放在鸿蒙系统开发上。

12.3 OneNET软件包

我这边已经将mqtt 和 onenet 以软件包的形式发布,两个软件包分别是

(1)onenet——实现onenet 接入能力

(2)pahomqtt——实现MQTT协议功能

https://i-blog.csdnimg.cn/blog_migrate/7beee0c7d81e8da69d400ec026d3e35a.png

只需要将这两个软件包放到 third_party 文件夹下即可。然后修改

我们来看下onenet 文件夹:

https://i-blog.csdnimg.cn/blog_migrate/cced57c3631049382ff70a51e7d32967.png

其中 onenet.h 是头文件

onenet_mqtt.c 是全部源码,它基于paho mqtt的MQTTClient编程模型。

另外 samples文件夹下是一个示例代码,代码内容如下:

#include <stdio.h>
#include <unistd.h>
#include "MQTTClient.h"
#include "onenet.h"

#define ONENET_INFO_DEVID "597952816"
#define ONENET_INFO_AUTH "202005160951"
#define ONENET_INFO_APIKEY "zgQdlB5y3Bi9pNd2bUYmS8TJHIY="
#define ONENET_INFO_PROID "345377"
#define ONENET_MASTER_APIKEY "gwaK2wJT5wgnSbJYz67CVRGvwkI="

extern int rand(void);


void onenet_cmd_rsp_cb(uint8_t *recv_data, size_t recv_size, uint8_t **resp_data, size_t *resp_size)
{
    printf("recv data is %.*s\n", recv_size, recv_data);

    *resp_data = NULL;
    *resp_size = 0;
}

int mqtt_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_cb(onenet_cmd_rsp_cb);

	while (1)
    {
		int value = 0;
		
        value = rand() % 100;

        if (onenet_mqtt_upload_digit("temperature", value) < 0)
        {
            printf("upload has an error, stop uploading");
            //break;
        }
        else
        {
            printf("buffer : {\"temperature\":%d} \r\n", value);
        }
        sleep(1);
    }
	return 0;
}

手机APP下载:

12.4 OneNET平台使用

首先我们要注册账号,OneNET平台地址:

然后进入控制台,鼠标放在全部产品服务,选择多协议接入

https://i-blog.csdnimg.cn/blog_migrate/2579dc055777b7e822bbf1d0cce4fc42.png

选择MQTT旧版,单击创建产品

这里我们可以按照我们的需求填写相关信息即可

之后可以选择添加设备

可以填写信息和填写地理位置,鉴权信息可以随意填写

https://i-blog.csdnimg.cn/blog_migrate/d685b958f473f65710803ac1207b94ad.png

12.5 OneNET设备信息

代码中,我们需要填写以下认证信息:

#define ONENET_INFO_DEVID “597952816”

#define ONENET_INFO_AUTH “202005160951”

#define ONENET_INFO_APIKEY “zgQdlB5y3Bi9pNd2bUYmS8TJHIY=”

#define ONENET_INFO_PROID “345377”

#define ONENET_MASTER_APIKEY “gwaK2wJT5wgnSbJYz67CVRGvwkI=”

(1)ONENET_INFO_DEVID 和 ONENET_INFO_AUTH

设备ID和鉴权信息,可以通过查看设备详情得到:

https://i-blog.csdnimg.cn/blog_migrate/a733227195e677a2a027563165450eff.png

(2)ONENET_INFO_APIKEY

Api key,可以通过添加api key得到

https://i-blog.csdnimg.cn/blog_migrate/83cedc60488d34c122496582a67fd8e6.png

(3)ONENET_INFO_PROID和ONENET_MASTER_APIKEY

这个可以查看产品ID和master key

https://i-blog.csdnimg.cn/blog_migrate/1dd3914e18ced84872680b065b64a613.png