本文介绍如何调用Rust语言的Paho MQTT类库,将设备接入阿里云物联网平台并进行消息收发。

使用前必读

本文操作步骤以普通用户权限为例。如果您在操作过程中涉及到管理员权限才能执行的操作,可尝试使用 sudo 命令执行。

前提条件

已在 物联网平台控制台 ,对应实例下, 创建产品和设备,并获取 MQTT接入域名和 设备证书信息(ProductKey、DeviceName和DeviceSecret)。具体操作,请参见:

准备开发环境

  • Ubuntu 18.04版本。

  • 推荐使用 Cargo 1.61.0及以上 版本。

  • Linux系统可通过如下命令安装依赖关系。

    sudo apt-get install cargo cmake

接入物联网平台

  1. 单击下载示例代码包 ,并解压缩为文件 aiot-rust-demo ,其中包含以下文件:

    文件

    说明

    src/mqtt-basic-demo/main.rs

    该文件包含设备与物联网平台连接和通信的逻辑代码。

    Cargo.toml

    工程描述文件。

  2. 在文件 src/mqtt-basic-demo/main.rs 中,将 product_key device_name device_secret 替换为您的设备证书信息。

    let product_key = "gb80*****";
    let device_name = "mqtt_******o";
    let timestamp = "2524****000";
    let device_secret = b"f***********************b";
    let host = "tcp://iot-060axxxx.mqtt.iothub.aliyuncs.com:1883"
  3. 使用命令 cargo build 编译工程,运行结果如下所示。

       Compiling hex-literal v0.3.4
       Compiling hmac-sha256 v0.1.7
       Compiling openssl-src v111.24.0+1.1.1s
       Compiling cmake v0.1.49
       Compiling slab v0.4.7
       Compiling openssl-sys v0.9.80
       Compiling paho-mqtt-sys v0.8.0 (https://github.com/eclipse/paho.mqtt.rust.git?branch=master#8e1f7342)
       Compiling concurrent-queue v2.1.0
       Compiling crossbeam-channel v0.5.6
       Compiling async-channel v1.8.0
       Compiling futures-macro v0.3.25
       Compiling thiserror-impl v1.0.38
       Compiling futures-executor v0.3.25
       Compiling futures v0.3.25
       Compiling paho-mqtt v0.12.0 (https://github.com/eclipse/paho.mqtt.rust.git?branch=master#8e1f7342)
       Compiling mqtt-example v0.1.0 
        Finished dev [unoptimized + debuginfo] target(s) in 20.83s
  4. 使用命令 ./target/debug/mqtt_basic_demo 运行工程,运行结果如下所示。

    starting Alibaba iot demo...
    subscribed to topic:=/gb80sxxxx/mqtt_basic_demo/user/get
    published to topic:=/gb80sxxxx/mqtt_basic_demo/user/update
    start receiving...