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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐