linux环境下MQTT连接阿里云、腾讯云、华为云

本文介绍了如何使用C语言和mosquitto、cJSON、iniparser库在Linux环境下编写程序,通过修改配置文件连接并上报数据到阿里云、腾讯云和华为云的MQTT服务。程序利用数组存储不同云平台的连接参数,并通过cJSON处理数据格式。
摘要由CSDN通过智能技术生成

linux下一个c程序通过传输不同的参数连接阿里云、腾讯云、华为云。

MQTT连接阿里云:linux环境下MQTT连接阿里云_li4143的博客-CSDN博客

MQTT连接腾讯云:linux环境下MQTT连接腾讯云_li4143的博客-CSDN博客

MQTT连接华为云:linux环境下MQTT连接华为云_li4143的博客-CSDN博客

代码中用到了mosquitto、cJSON、iniparser库。本文章只是简单描述一下通过修改配置文件实现cJSON格式上报数据到云平台。

mosquitto库的下载:

​​​​​​MQTT--mosquitto实现发布与订阅_mosquitto_publish_last breath的博客-CSDN博客

iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。iniparser库的API可以对ini文件(配置文件)进行解析、设置、删除等操作。而且iniparser 的一条原则是 section 和 key 大小写无关,写入的字符串全部小写化,取出的字符串也全部小写化。

iniperser库的下载:

主要用到的四个文件分别是dictionary.c,iniparser.c,dictionary.h和iniparser.h。

需要注意的是,定位一个key是用section:key来表示的,所以不同section下的key名称是可以相同的。

注意,.ini配置文件中分号(;)代表注释,所以带分号的参数可以有双引号括起来。

因为连接阿里云、腾讯云以及华为云要用到的参数基本都一样,上报格式也差不多,所以我们可以声明一个数组来储存参数。这样就可以一个程序通过传输不同的参数链接不同的云平台。

使用iniparser函数获取配置文件中的数值,ini_path是配置文件的路径

cJSON库的下载:git clone https://github.com/DaveGamble/cJSON.git

保存上传数据格式

cJSON_Print()的返回值是自动申请空间的,所以用完之后记得用free()函数释放他申请的空间。

阿里云上报格式:

腾讯云上报格式:

华为云上报格式:

上云用到的主要函数如下。因为我们声明了数组储存连接所用到的参数,并且也将上报格式用cJSON函数保存在msg字符串中。

这是我写的一些关于mqtt上云的代码,有兴趣的小伙伴可以下载或者去网站上看看。 

LN: 通过mqtt上报温度到阿里、腾讯、华为云。

下载:

因为我用的ds18b20的温度模块,先要去获取到这个模块检测到的温度,再去连接云平台,所以你的树莓派上没有这个模块的话,下载了也跑不起来。

 我代码中默认连接的是参数1阿里云,参数2是连接腾讯云,参数3是华为云。

./a.out -p 1           ./a.out -p 2           ./a.out -p 3

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为云 MQTT(消息队列遥测传输)是华为云提供的一种消息传输协议,旨在简化物联网设备与云端的通信。MQTT采用发布-订阅模式,设备可以通过订阅特定的主题来接收来自云端或其他设备发布的消息,也可以通过发布消息来将数据发送到云端。 使用华为云MQTT可以实现以下功能: 1. 设备接入与认证:物联网设备可以连接华为云,并通过认证机制保障通信的安全性。设备可以使用MQTT客户端连接到云端,同时需要提供认证信息以确保身份合法。 2. 消息传输:设备可以通过订阅主题接收来自云端或其他设备发布的消息。可以根据实际需要订阅不同的主题,以便获取感兴趣的消息。同时,设备也可以通过发布消息将数据发送到云端,实现设备与云端之间的双向通信。 3. 消息质量保证:MQTT在传输过程中提供了三种不同级别的消息质量保证,包括至多一次、至少一次和刚好一次。这样可以确保消息能够可靠地传递到接收方,避免数据丢失或重复传输。 4. 低功耗通信:MQTT协议具有较小的消息头,传输的消息量较小,可以降低设备的能耗,延长设备电池的使用寿命。此外,MQTT还提供了心跳机制,设备可以定期向云端发送心跳消息以保持连接状态。 5. 水平扩展:华为云MQTT支持高可用性和水平扩展,可以轻松应对海量设备的接入需求。使用华为云提供的云服务,可以弹性伸缩的方式部署和管理MQTT集群,确保系统的可靠性和稳定性。 总之,华为云MQTT提供了一种可靠、高效、安全的物联网设备与云端通信解决方案,适用于各种物联网场景,包括智能家居、智能城市、工业自动化等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值