在linux下使用C语言实现MQTT通信(四.上传至阿里云服务器)

本文详细介绍了如何在Linux环境中使用C语言实现MQTT通信,包括在阿里云创建产品和设备,使用MQTTfx测试连接,以及在树莓派上获取温度并上传至阿里云的过程。在树莓派中,通过修改Link Kit SDK、集成cJSON库,实现了MQTT上报温度数据,并分析了与MQTTfx软件之间的资源竞争问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1丶创建产品和设备。
请移步至https://blog.youkuaiyun.com/qq997758497/article/details/90757307
该博客有详细的MQTT连接阿里云步骤。
如下图是我建好的产品和设备:
在这里插入图片描述
在这里插入图片描述
2丶使用MQTTfx测试软件实现MQTT
下图是MQTTfx连接阿里云的相关账号密码
在这里插入图片描述
连接成功后右上角会有绿灯显示:
在这里插入图片描述
首先我们在设备的Topic列表复制订阅topic粘贴至MQTTfx的subscribe端目录,然后点subscribe

在这里插入图片描述
在这里插入图片描述
订阅了之后,回到阿里云服务器,进入监控运维进入在线调试,发布温度为50,点击发送指令,屏幕会显示发送指令成功
在这里插入图片描述
刷新之后观察到设备的运行状态:
在这里插入图片描述
回到MQTTfx软件,会看到右下角收到了来至阿里云服务器传来的温度:

{
   
  "method" : "thing.service.property.set",
  "id" : "998114556",
  "params" : {
   
    "CurrentTemperature" : 50
  },
  "version" : "1.0.0"
}

复制该消息的发布格式。
再次进入设备的topic会话,
在这里插入图片描述
复制该目录至MQTTfx的发布端目录,将上述复制的消息格式粘贴到下面,并将温度该为100度:
在这里插入图片描述
回到阿里云设备,刷新之后观察运行状态:
在这里插入图片描述
如上使用MQTTfx软件实现通信。

3丶将树莓派上获取的温度使用MQTT上传至阿里云服务器
前面几篇MQTT博客已经实现了在树莓派服务器下的MQTT实现温度上报,那么如何将温度上报至阿里云服务器呢?他们之间是如何连接的呢?下面我就来介绍一下:
(1)获取Link Kit SDK :打开网址https://code.aliyun.com/linkkit/c-sdk/repository/archive.zip?spm=a2c4g.11186623.2.10.4b952359PP35EP&ref=v3.0.1
下好之后使用rz 获取至虚拟机下并使用unzip解压改名为c-sdk:

iot@Public_RPi:~/caiwentao/team_lihaojie/caiwentao/mqtt $ ls
archive.zip?spm=a2c4g.11186623.2.10.4b952359PP35EP  cJSON  c-sdk  c-sdk-v3.0.1-fe3f16bcec94f5d533b2b369f67704474a95b687.zip  mqtt_publish  mqtt_subscribe

(2)设备身份信息将通过HAL调用返回给SDK。因此,需要将wrappers/os/ubuntu/HAL_OS_linux.c中的设备证书信息修改为创建产品与设备中测试产品的设备证书,完成后保存退出。

iot@Public_RPi:~/caiwentao/team_lihaojie/caiwentao/mqtt $ vim c-sdk/wrappers/os
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值