热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

使用阿里云平台提供的CLinkSDK使Linux设备接入物联网MQTT接入

一.移植SDK,使设备成功连接物联网平台(1)获取SDK根据阿里云物联网平台文档提示,下载SDK到你电脑上。阿里云物联

一 . 移植 SDK,使设备成功连接物联网平台

(1)获取SDK

根据阿里云物联网平台文档提示,下载SDK到你电脑上。

阿里云物联网平台文档:获取SDK - 设备接入Link SDK - 阿里云

image-20211121100546562

(2)在你的服务器上,创建好产品,设备,然后获取设备的属性值。(参考阿里云物联网平台开发文档)

image-20211121150250275

(3)将下载好的 SDK 在你的 Ubuntu 上解压,进入 demos 目录,打开 mqtt_basic_demo.c 文件,修改设备属性信息。将下面的代码修改为在上述步骤(2)中获取的设备属性:

(4)执行 make(确保你在 Makefile 文件所在的目录下)

(5)make 成功后会生成 output 目录,接着就可以执行 output 目录下的 mqtt-basic-demo 文件了。

如果看到下面的输出,则是成功连接云服务器了!

image-20211121152740326

这时也可以去阿里云物联网平台上查看设备状态,是处于【在线】的状态。

二 . 执行发布-订阅功能

(1)使用自定义 Topic 通信

原先这部分代码是被注释掉的,现在把注释符去掉,然后将 Topic 修改为你自己的 Topic 名称。(如何创建自定义 Topic 可以参考阿里云对应文档)

image-20211121192433664

将程序执行起来,然后可以去阿里云平台上,【设备】-【Topic 列表】中找到你的 Topic,接着点击【发布消息】,就可以从云服务器向设备发送消息了。在【监控运维】-【日志服务】中也可以查看设备与云服务器的交互记录。

image-20211121152205928

程序执行结果:

image-20211121152628566

(2)使用物模型通信 Topic

首先,需要获取物模型通信 Topic,在【产品】-【Topic 类列表】-【物模型通信 Topic】中获取。

注意:在使用 Topic 时,要将 Topic 名称中的 ${deviceName} 换成你的设备的名字。

image-20211121190404336

然后,替换代码中的 Topic 值,替换成你自己的 Topic,发布的字符串可以修改为自己想发布的消息(注意:字符串换行需要在末尾加 '\' 且字符串中的双引号也需要转义)

image-20211121190918512

发布:程序运行起来后,去物联网平台上查看,可以看到设备发布过来的消息:

(图中默认模块的“当前湿度”,“当前温度”,“红灯开关”等等属性是我在创建产品时设置的,至于你这里有什么属性,就看你创建产品时设置了什么)

image-20211121191539903

订阅:在物联网平台上,可以设定好每个属性的值,然后发送指令,在程序中订阅的 Topic 就会收到对应的消息:

image-20211121161919030

注意:程序运行时,如果出现 connect fail 的情况,有可能是因为 Ubuntu 自身的网络问题,所以要确保你的 ubuntu 可以成功连接外网(可以通过 ping www.baidu.com 来调试)。如果出现其他错误,可以根据打印出来的错误码去官网文档中查看对应的原因。


推荐阅读
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • Vi编辑器的工作模式有哪些?如何在不同模式间切换?
    Vi编辑器是Linux系统中常用的文本编辑工具,具备三种主要工作模式:命令模式、插入模式和底行模式。用户可以通过特定的按键组合在这些模式之间进行切换,以实现不同的编辑功能。例如,在命令模式下,用户可以执行移动光标、删除文本等操作;而在插入模式下,则可以输入或修改文本内容。底行模式则用于执行保存文件、退出编辑器等命令。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
author-avatar
yangwei的马甲
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有