OpenHarmony輕量系統(tǒng)開發(fā)OneNET云接入
原創(chuàng)??想了解更多內(nèi)容,請(qǐng)?jiān)L問:??
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??
??https://harmonyos.51cto.com??
摘要:本文簡(jiǎn)單介紹如何接入OneNET云平臺(tái)
適合群體:適用于潤和Hi3861開發(fā)板
文中所有代碼倉庫:https://gitee.com/qidiyun/hihope-3861-smart-home-kit
12.1 OneNET云介紹
通常來說,一個(gè)物聯(lián)網(wǎng)產(chǎn)品應(yīng)當(dāng)包括設(shè)備、云平臺(tái)、手機(jī)APP。我將在鴻蒙系統(tǒng)上移植MQTT協(xié)議、OneNET接入?yún)f(xié)議,實(shí)現(xiàn)手機(jī)APP、網(wǎng)頁兩者都可以遠(yuǎn)程(跨網(wǎng)絡(luò),不是局域網(wǎng)的)訪問開發(fā)板數(shù)據(jù),并控制開發(fā)板的功能。
理論上來說,任何以MQTT協(xié)議為基礎(chǔ)的物聯(lián)網(wǎng)云平臺(tái)都可以支持接入。
關(guān)于phomqtt 和onenet軟件包,已提供下載,聲明:所有源碼均遵守開源協(xié)議~~。
支持鴻蒙系統(tǒng)的 harmony_mqtt 代碼倉庫:
https://gitee.com/qidiyun/harmony_mqtt
支持鴻蒙系統(tǒng)的 onenet接入軟件包倉庫:
https://gitee.com/qidiyun/harmony_onenet
12.2 效果演示
先看下效果,我這邊使用的是OneNET物聯(lián)云平臺(tái),進(jìn)入應(yīng)用,可以看到如下網(wǎng)頁界面。該網(wǎng)頁的溫度、濕度數(shù)據(jù)由 鴻蒙開發(fā)板(Hi3861)上傳,同時(shí)有一個(gè)開關(guān)按鈕,可以控制開發(fā)板的LED燈。
另外,也提供一個(gè)手機(jī)APP,
以上界面比較簡(jiǎn)陋,但不妨礙我們使用,另外選擇OneNET云平臺(tái)的主要是原因是接入方式比較簡(jiǎn)單方便,易于學(xué)習(xí),另外一個(gè)是OneNET提供了物聯(lián)網(wǎng)云平臺(tái)、手機(jī)APP,不需要大家自己再去實(shí)現(xiàn),可以更多地將注意力放在鴻蒙系統(tǒng)開發(fā)上。
12.3 OneNET軟件包
我這邊已經(jīng)將mqtt 和 onenet 以軟件包的形式發(fā)布,兩個(gè)軟件包分別是
(1)onenet——實(shí)現(xiàn)onenet 接入能力
(2)pahomqtt——實(shí)現(xiàn)MQTT協(xié)議功能
只需要將這兩個(gè)軟件包放到 third_party 文件夾下即可。然后修改
我們來看下onenet 文件夾:
其中 onenet.h 是頭文件
onenet_mqtt.c 是全部源碼,它基于paho mqtt的MQTTClient編程模型。
另外 samples文件夾下是一個(gè)示例代碼,代碼內(nèi)容如下:
#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;
}
手機(jī)APP下載:https://open.iot.10086.cn/doc/art656.html#118
12.4 OneNET平臺(tái)使用
首先我們要注冊(cè)賬號(hào),OneNET平臺(tái)地址:
https://open.iot.10086.cn/
然后進(jìn)入控制臺(tái),鼠標(biāo)放在全部產(chǎn)品服務(wù),選擇多協(xié)議接入
選擇MQTT舊版,單擊創(chuàng)建產(chǎn)品
這里我們可以按照我們的需求填寫相關(guān)信息即可
之后可以選擇添加設(shè)備
可以填寫信息和填寫地理位置,鑒權(quán)信息可以隨意填寫
12.5 OneNET設(shè)備信息
代碼中,我們需要填寫以下認(rèn)證信息:
#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
設(shè)備ID和鑒權(quán)信息,可以通過查看設(shè)備詳情得到:
(2)ONENET_INFO_APIKEY
Api key,可以通過添加api key得到
(3)ONENET_INFO_PROID和ONENET_MASTER_APIKEY
這個(gè)可以查看產(chǎn)品ID和master key
??想了解更多內(nèi)容,請(qǐng)?jiān)L問:??
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??
??https://harmonyos.51cto.com??