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

12.1 OneNET云介绍

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

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

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

支持鸿蒙系统的 harmony_mqtt 代码仓库:
https://gitee.com/qidiyun/harmony_mqtt

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

https://gitee.com/qidiyun/harmony_onenet

12.2 效果演示

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

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

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

12.3 OneNET软件包

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

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

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

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

我们来看下onenet 文件夹:

其中 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下载:https://open.iot.10086.cn/doc/art656.html#118

12.4 OneNET平台使用

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

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

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

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

之后可以选择添加设备

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

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和鉴权信息,可以通过查看设备详情得到:

(2)ONENET_INFO_APIKEY

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

(3)ONENET_INFO_PROID和ONENET_MASTER_APIKEY

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

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ......

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ......

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ......

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题

2.性能优化方向

3.架构方向

4.鸿蒙开发系统底层方向

5.鸿蒙音视频开发方向

6.鸿蒙车载开发方向

7.鸿蒙南向开发方向

相关推荐
贾伟康7 小时前
【共创稿事节】HarmonyOS 7.0 AOT编译优化:从接入到生产验证
harmonyos·arkts·路由·navigation·navdestination
2601_949480067 小时前
开源鸿蒙平台 CMP 三方库「shadcn」适配全流程
华为·开源·harmonyos
Liaiyang669 小时前
空圈容错视角-HarmonyOS 7 架构体检:从被动容错到主动免疫的真伪验证与生态反推
操作系统·harmonyos·架构设计·ai-agent·端云协同·鸿蒙7·空圈容错
贾伟康9 小时前
【共创稿事节】HarmonyOS 7.0 Native XComponent与FFI:从接入到生产验证
harmonyos·profiler·hitracemeter·性能追踪·时间线
redtank200010 小时前
纯血鸿蒙本地电子书阅读器实测:九格式支持、沉浸阅读与零联网隐私设计
华为·harmonyos
贾伟康10 小时前
【共创稿事节】HarmonyOS 7.0 HiSysEvent系统事件订阅:从接入到生产验证
harmonyos·可观测性·hisyevent·系统事件·后台优化
独隅13 小时前
HarmonyOS 系统能力与体验深度评测 - 超详细版
华为·harmonyos
懿路向前14 小时前
唤醒工作台全实录(六):数据层——5ms 竞态窗口与“查询即引用“
华为·架构·harmonyos
KevinChaos14 小时前
灶台菜谱设计手记 04|HarmonyOS 7.0 空间化:信息折叠展开
harmonyos
贾伟康16 小时前
【共创稿事节】HarmonyOS 7.0 HiTraceChain分布式调用链:从接入到生产验证
分布式·harmonyos·可观测性·调用链·hitracechain