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

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

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

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

https://gitee.com/qidiyun/harmony_mqtt

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

https://gitee.com/qidiyun/harmony_onenet

3.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 是全部源码,它基于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

由于本节内容较多,将分成多个文章,陆续放出,目前规划如下:

(1)paho mqtt client移植。其实我之前已经有一篇文章讲了paho mqtt的移植,但是那篇文章只是简单的移植,并不支持多任务,这一次mqtt移植将支持多任务。

(2)onenet协议的移植与实现。主要讲如何在mqtt的基础上实现onenet接入。

(3)如何使用onenet云平台

(4)设备(鸿蒙开发板)如何接入到onenet,实现数据互传。

在鸿蒙开发板上使用MQTT协议、OneNET实现第一个物联网项目相关推荐

  1. STM32F407霸天虎FreeRTOS学习笔记——移植FreeRTOS到开发板上

    STM32F407霸天虎FreeRTOS学习笔记--移植FreeRTOS到开发板上 FreeRTOS源码获取 移植第一步:创建文件夹 Keil main.c 实验效果 FreeRTOS源码获取 在移植 ...

  2. 鸿蒙开发板hi3861 hispark code 2.0 canary金丝雀版本,gpio如何上拉电阻呢?

    鸿蒙开发板hi3861 hispark code 2.0 canary金丝雀版本,gpio如何上拉电阻呢? code 2.0 LTS支持,canary没有这个功能呢 IoSetPull(WIFI_IO ...

  3. gprs模块http mqtt_在GPRS模块(SIM800C)和STM32芯片上实现MQTT协议 | TsonTec:测量解决方案提供者...

    最近真是的好一个劲的折腾,算是完全搞明白了如何在STM32上实现MQTT协议了. 目录 [显示] 一.本教程中说明的内容 先说说本文化的适用范围吧: 一.使用的芯片是STM32F103C8T6,但是并 ...

  4. 鸿蒙开发板Hi3861模拟SPI驱动JLX12864_LCD(UC1701X)_基于code-2.0

    鸿蒙开发板驱动晶联讯LCDjlx12864_lcd_hi3861源码-C文档类资源-CSDN下载鸿蒙开发板驱动晶联讯LCDjlx12864_lcd_hi3861源码博文介绍https://t更多下载资 ...

  5. 鸿蒙开发板怎么玩?Neptune开发教程---OpenHarmony开发体验-环境搭建-编译-烧录

    目录 鸿蒙开发板(Neptune)开发教程-环境搭建-编译-烧录 Neptune简介 介绍特点 开发板参数 引脚 说明 开发环境搭建 linux编译环境搭建 python环境安装 hpm环境安装 wi ...

  6. 电脑客户端遥控鸿蒙开发板执行相应命令

    电脑端遥控控制鸿蒙开发板 项目需求 开发环境 使用的技术 UDP JSON JSON介绍 JSON 语法规则 具体设计 功能介绍 电脑客户端 页面设计 程序代码 MCU端 搭建的模块 主要代码 后续 ...

  7. 华为发布鸿蒙开发版,华为发布首款鸿蒙开发板,基于RISC-V架构,软硬生态一起抓?...

    原标题:华为发布首款鸿蒙开发板,基于RISC-V架构,软硬生态一起抓? 华为已经官宣了,6月2日将鸿蒙OS将正式转正,面向普通消费者正式升级体验,到时候华为的手机可以升级成鸿蒙了,同时华为还会带来基于 ...

  8. 基于Domoticz智能家居系统(十三)Domoticz-3.8153在Tiny6410开发板上的移植

    Domoticz-3.8153在Tiny6410开发板上的移植 本文将在友善之臂Tiny6410开发板上移植Domoticz-3.8153,起因是去年在mini2440上移植的3.5877版本编译出来 ...

  9. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(一) 嵌入式Linux开发基本概念以及开发流程介绍

    文章目录 1.linux开发初了解 1.1 嵌入式Linux开发的基本概念 1.1.1关于Git的背景介绍 1.1.2关于repo的背景介绍 1.1 3 一些关于此背景知识的介绍 1.1.4关于Lin ...

最新文章

  1. 【FFmpeg】函数详解(二)
  2. windows系统启动时显示cpu over voltage error错误解决办法
  3. 5 CrawlSpider操作
  4. SAP UI5 应用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深入介绍试读版
  5. redis创建集群报错can‘t connect to node 192.168.163.203
  6. 前期绑定 php,关于php:后期静态绑定在PHP中的使用
  7. laravel created_at 时间戳_Laravel 单行为控制器设计的魅力
  8. 学习进度表(160519更新)
  9. extjs 如何将局部的变量变为全局变量
  10. Linux Shell 文件描述符 及 stdin stdout stderr 重定向
  11. java7下载64位下载_JRE7 64位(java运行环境)下载|JRE7 64位(java运行环境)官方下载-太平洋下载中心...
  12. [原创]编程实现UCDOS字库的显示和打印
  13. LVDS,接口,时序讲解,非常好的文章
  14. xrd计算晶面间距_xrd如何计算晶格间距(1)
  15. 化工自动化石油化工的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  16. 蓝牙耳机连接 win10音量异常
  17. Congestion 问题怎么解决?
  18. xxl job踩坑记
  19. dubbo之使用nacos作为注册中心
  20. 程序员的日常:当一名程序员到底有多难?

热门文章

  1. Python_代码风格_合理分解代码,提高代码可读性
  2. 电脑死机(蓝屏)的时候,到底是怎么回事?
  3. 印象笔记 for Mac(Evernote)如何简化工作、学习与生活
  4. TOT(Tree of Thought) | 让GPT-4像人类一样思考
  5. Glide在RecyclerView自适应图片尺寸
  6. Grafana数据可视化
  7. 关于缓存异常:缓存雪崩、击穿、穿透的解决方案
  8. 武汉大学计算机学院 余老师,邹勤 - 教师简历 CV- 武汉大学计算机学院
  9. AD mark点设置
  10. 自适应滤波器算法综述以及代码实现