阿里云IoT设备接入跨平台SDK(基于mqtt)

简介: 本文主要是介绍 自己实现的 阿里云IoT设备接入跨平台SDK,这个SDK提供跨平台的支持, 在windows上是基于VS2013 Release版本编译 *nix上基于简单的Makefile编译 支持交叉编译

title: 阿里云IoT设备接入跨平台SDK(基于mqtt)
tags:

  • 物联网开发
  • MQTT
  • 阿里云
    categories:
  • 物联网

本文主要是介绍 自己实现的 阿里云IoT设备接入跨平台SDK,这个SDK提供跨平台的支持,
在windows上是基于VS2013 Release版本编译
*nix上基于简单的Makefile编译
支持交叉编译

特别注意

代码中使用的 阿里云设备三元组是个人提供的一个三元组,请自行替换成自己设备对应的三元组

// 最后一个字段是表示,阿里云的设备是高级设备还是普通设备
IotDeviceIdentity gIdentities[] = {
    { "a1onpCjBsoK", "bim_music_control_btn1", "jOx2X75wVuTzannfUOMzrLTiOBkhiZSr", true }
};

代码下载地址

https://github.com/rainbow-martin/aliyun_iot_device_sdk

第三方依赖

库名 下载地址
mqtt库 https://github.com/eclipse/paho.mqtt.c
jsoncpp库 https://github.com/open-source-parsers/jsoncpp

目录结构

目录结构 注释
3rd/ 第三方依赖性,jsoncpp和paho mqtt
baselib/ 基础类库,用于log记录等常见工具类
builall.sh* *nix 系统编译脚本
iot_device_async/ 异步mqtt接入iot 设备
iot_device_sync/ 同步mqtt接入iot 设备
pre_make.sh 嵌入式设备(如ARM)编译器选择,用于交叉编译
win32/ windows vs2013编译工程
    • -

windows系统编译版本

WIN32
编译环境: VS2013

编译工程: win32mytest.sln

编译方法:打开工程,选择Release-Win32, 即可进行编译
注意:需要配置$(OpenSSLDir) 作为环境变量

*nix系统编译版本

*nix

./buildall.sh 即可

编译产物 在bin目录

交叉编译编译版本

参考pre_make.sh,目前是arms树莓派的交叉编译环境
变编译之前运行
source pre_make.sh

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
11月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
3490 42
|
弹性计算 安全 开发工具
灵码评测-阿里云提供的ECS python3 sdk做安全组管理
批量变更阿里云ECS安全组策略(批量变更)
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
388 7
|
Java 开发工具
通过Java SDK调用阿里云模型服务
在阿里云平台上,可以通过创建应用并使用模型服务完成特定任务,如生成文章内容。本示例展示了一段简化的Java代码,演示了如何调用阿里云模型服务生成关于“春秋战国经济与文化”的简短文章。示例代码通过设置系统角色为历史学家,并提出文章生成需求,最终处理并输出生成的文章内容。在实际部署前,请确保正确配置环境变量中的密钥和ID,并根据需要调整SDK导入语句及类名。更多详情和示例,请参考相关链接。
|
API 开发工具 图形学
影创SDK☀️六、讲讲SDK如何适配不同型号的设备控制器
影创SDK☀️六、讲讲SDK如何适配不同型号的设备控制器
|
网络协议 安全 调度
阿里云公共DNS发布支持鸿蒙系统版的SDK
阿里云公共DNS发布支持鸿蒙系统版SDK,赋能鸿蒙开发者快速接入阿里云公共DNS服务。公共DNS将帮助接入的鸿蒙应用免除LocalDNS劫持困扰、解析加速、精准调度。
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
消息中间件 负载均衡 网络性能优化
消息队列 MQ产品使用合集之 终端sdk和云端sdk的区别是什么
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
算法 小程序 开发工具
视觉智能开放平台操作报错合集之同样的图片路径(上海阿里云),sdk报错code.400,是什么原因
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
319 0
|
9月前
|
消息中间件 数据管理 Serverless
阿里云消息队列 Apache RocketMQ 创新论文入选顶会 ACM FSE 2025
阿里云消息团队基于 Apache RocketMQ 构建 Serverless 消息系统,适配多种主流消息协议(如 RabbitMQ、MQTT 和 Kafka),成功解决了传统中间件在可伸缩性、成本及元数据管理等方面的难题,并据此实现 ApsaraMQ 全系列产品 Serverless 化,助力企业提效降本。
下一篇
开通oss服务