这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » ELF1开发板试用+8.1MQTT开发——连接阿里云

共2条 1/1 1 跳转至

ELF1开发板试用+8.1MQTT开发——连接阿里云

高工
2025-03-17 17:17:24     打赏

MQTT开发——连接阿里云【项目复现】

本文基于文档中提供的项目教程,复现ELF 1连接阿里云物联网平台,进行MQTT开发;记录ELF1 个人物联网开发的过程,可以提供参考;

MQTT 简述

MQTT(消息队列遥测传输)是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

MQTT的特点包括:

    项目部署环境

    开发板:ELF1

    开发环境:window10+VMware+ubuntu 18.04

    交叉编译环境:arm-poky-linux-gnueabi-gcc

    阿里云 平台部署

    没有账号的可以进行一个简单的登录并实名认证:

    阿里云登陆页面:https://account.aliyun.com/login/login.htm

    进行如下操作:

    image.png

    点击“管理控制台”,进入:

    image.png

    进行新建产品,进行设置,下边参数使用默认参数即可:

    image.png

    查看我们的产品,自定义topic,进行如下操作:

    image.png

    添加设备,添加到我们的产品下,进行命名:

    image.png

    以上,我们的产品(项目),和设备就加入成功了,这时候需要获取三元组,即:ProductKey,DeviceName,DeviceSecret,和MQTT连接参数:

    直接查看设备信息就可以看到所有的信息了:

    image.png

    这里建议把数据都按以下格式整理,方便我们后面使用:


    {

      "ProductKey": "",

      "DeviceName": "tree",

      "DeviceSecret": ""

    }

    MQTT:

    {

    "clientId":"",

    "username":"tree&",

    "mqttHostUrl":"",

    "passwd":"",

    "port":1883

    }

    然后就可以进行发布操作:

    image.png

    我们是基于阿里云的SDK进行案例开发的,所以获取一手阿里云提供的SDK:

    image.png

    我们会获得一个压缩包,解压做自己的工作区或者桌面就行,命名就为:“LinkSDK”

    以上,我们阿里云端的部署就完成了

    编译,运行 修改源码

    接下来,要修改部分我们的源码:

    将刚刚记录的三元组,MQTT连接参数填入我们的代码:

    位置:/LinkSDK/demos/mqtt-rrpc-demo.c
    image.png

    往下配置我们的topic功能,大概在245行开始:
    image.png

    修改Makefile:

    位置:/LinkSDK/Makefile

    我们使用交叉编译环境,注释即可:
    image.png

    开发板编译 拷贝

    将“LinkSDK”文件夹拉入我们的编译环境:

    虚拟机 | linux环境即可;

    环境导入:


    . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

    make

    image.png

    官方教程中提供了一个报错的可能,我没遇到:

    编译过程可能会遇到如上问题,提示 mqtt_userdefine_demo.c 中会提示找不到
    头文件 aiot_dm_api.h,因为我们没有用到这个程序,所以可以删掉这个程序,再次编译正

    可执行文件位于:/LinkSDK/output/mqtt-rrpc-demo

    拷贝文件到我们的/home/root 下:

    scp mqtt-rrpc-demo root\\\\\\\\@`@<自己开发板IP地址>:home/root

    在调试前,我们要先测试我们的网络是否可用,是否连接了外网:

    ping www.baidu.com

    运行我们的程序

    ./mqtt-rrpc-demo

    image.png

    image.png

    运行成功,服务器也受到连接回报;





    关键词: ELF MQTT     阿里云    

    专家
    2025-03-17 20:40:55     打赏
    2楼

    感谢分享


    共2条 1/1 1 跳转至

    回复

    匿名不能发帖!请先 [ 登陆 注册 ]