返回
BearPi-HM_Nano开发板华为云IoT实战应用指南
后端
2023-11-28 12:26:24
在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平台的对接就完成了,大家可以根据自己的实际需求进行修改和使用。
祝大家开发顺利!