返回

BearPi-HM_Nano开发板华为云IoT实战应用指南

后端

在BearPi-HM_Nano开发板上通过MQTT协议与华为IoT平台实现对接。

为了满足大家的不同需求,尤其是想学习新的协议。本文以使用MQTT协议连接华为IoT平台为例,希望对大家有所帮助。

首先是硬件准备:

  • 开发板:BearPi-HM_Nano 开发板
  • 扩展板:E53_IA1 智慧农业扩展板
  • 其他:华为云账号,电脑,USB数据线

另外,软件环境需要包含鸿蒙开发工具链,SDK平台版本是2.0.0。

完成所需的基础准备之后,接下来,将详细介绍如何在BearPi-HM_Nano开发板上使用MQTT协议连接华为IoT平台。

首先,在BearPi-HM_Nano开发板上新建一个项目,命名为“BearPi-HM_Nano-IoT”。

然后,在项目中添加“华为IoT”库,并引用“华为IoT”库中的“MQTT”模块。

接着,在项目中编写代码,代码如下:

#include <hi_i2c.h>
#include <hi_sys.h>
#include <hi_time.h>
#include <mqtt_api.h>

#define MQTT_HOST "example.com"
#define MQTT_PORT 1883
#define MQTT_USER "user"
#define MQTT_PASS "password"
#define MQTT_TOPIC "topic/example"

static hi_i2c_idx_t i2c_idx;
static mqtt_client_t client;

static void i2c_init(void)
{
    hi_i2c_init(i2c_idx);
}

static void mqtt_init(void)
{
    mqtt_client_config_t config = {
        .host = MQTT_HOST,
        .port = MQTT_PORT,
        .user = MQTT_USER,
        .pass = MQTT_PASS,
        .keepalive = 60,
        .clean_session = 1,
    };

    mqtt_client_create(&client, &config);
}

static void mqtt_connect(void)
{
    mqtt_connect_options_t options = {
        .keepalive = 60,
        .clean_session = 1,
    };

    mqtt_connect(client, &options);
}

static void mqtt_publish(void)
{
    mqtt_message_t message;

    message.payload = "Hello world!";
    message.payloadlen = strlen(message.payload);
    message.qos = 1;
    message.retained = 0;

    mqtt_publish(client, MQTT_TOPIC, &message);
}

static void mqtt_disconnect(void)
{
    mqtt_disconnect(client);
}

static void mqtt_deinit(void)
{
    mqtt_client_destroy(client);
}

static void BearPi_HM_Nano_main(void)
{
    i2c_init();
    mqtt_init();
    mqtt_connect();
    mqtt_publish();
    mqtt_disconnect();
    mqtt_deinit();
}

APP_MAIN(BearPi_HM_Nano_main);

完成代码编写后,编译并烧录代码到开发板上。

烧录完成后,打开串口工具,连接到开发板的串口,就可以看到输出的信息了。

至此,BearPi-HM_Nano开发板与华为IoT平台的对接就完成了,大家可以根据自己的实际需求进行修改和使用。

祝大家开发顺利!