IoT设备的上云方法介绍——AliOS Things MQTT实验

简介:

本文描述STM32MCU如何通过AliOS ThingsSDK, 由MQTT协议连接到阿里云IoT平台。实验包括如下步骤:
1)   AliOS Things的介绍
2)   实验准备
3)   开发环境
4)   开发流程
5)   MQTT连接
6)   云端数据查看

1. AliOS Things 的介绍

AliOS Things 是 AliOS 家族旗下、面向 IoT 领域的、高可伸缩的物联网操作系统。 AliOSThings 将致力于搭建云端一体化 IoT 基础设施,具备极致性能、极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云Link,可广泛应用在智能家居、智慧城市、工业,新出行等领域。

2. 实验准备

a) MCU开发板

使用STM32 BL475底板+MXCHIPWIFI模组的组合板,WIFI模组通过BL475的Arduino的IO接口与底板连接。网络协议栈跑在WiFi模块,主控MCU和WiFi模块之间的通信通过SPI串口协议。、

STM32BL475E是意法半导体推出的基于ARM Cortex 32bit 低功耗、多路传感芯片,片上资源丰富。


MXCHIP3080 WIFI模组是上海庆科推出的单3.3V供电的、集成Wi-Fi和Cortex-M4F MCU的嵌入式Wi-Fi模块,最高支持133M主频和256KRAM,强大的浮点运算。

b)  ST-LINK驱动程序及下载工具安装

[1] 安装板上的USB ST-LINK(CN7)的驱动程序。完成后,可以在设备管理器中看到VirtualCOM Port[2];


[2] 安装ST-LINK Utility用于烧写程序;

c)  云端设备注册

在IoT Console(https://iot.console.aliyun.com/)完成注册设备,并得到设备三元组。

3.开发环境

这里给出Windows 开发环境的配置。

a) VSCode —— IDE开发环境;

b) AliOSThings Studio VS插件;

c)  ARM GCC 编译工具链;

d) aos-cube项目管理工具。

4. 开发流程

a) 建立工程;

b) 修改设备三元组信息;

c) 编译

d) 烧写bin文件

5. MQTT连接

a) 程序启动 ——上电自启动;

b) 配网——需要配置WIFI接入信息

STM32L475E只支持netmgr手动配网,通过串口助手向MCU发送配置命令:

配置完成后,重启设备,可以看到如下输出,说明WIFI连接完成。

6. 云端数据查看

登录IoT Console,打开设备IOTPCX1,通过日志信息来检查收到的MQTT消息内容。

[1] AliOS https://github.com/alibaba/AliOS-Things
[2] STM32BL475 http://www.st.com/
[3] MXCHIP 3080http://www.mxchip.com/product/wifi_product/49
[4] https://github.com/alibaba/AliOS-Things/wiki/AliOS-Things-Windows-Environment-Setup

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
4月前
|
消息中间件 网络协议 物联网
MQTT常见问题之物联网设备端申请动态注册时MQTT服务不可用如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
3月前
|
消息中间件 API RocketMQ
消息队列 MQ产品使用合集之设备在国外收不到指令,是什么原因
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
1月前
|
存储 Ubuntu 安全
在Ubuntu 16.04上安装和保护Mosquitto MQTT消息代理的方法
在Ubuntu 16.04上安装和保护Mosquitto MQTT消息代理的方法
39 1
|
1月前
|
消息中间件 存储 Ubuntu
简单记录一下常规安装 RabbitMQ 的方法步骤
这篇文章详细介绍了在本地环境下安装和配置RabbitMQ消息队列的过程,包括RabbitMQ的基本概念、安装步骤、不同模式的特点以及在Linux和Windows系统下的安装方法。
24 0
|
3月前
|
消息中间件 存储 网络性能优化
消息队列 MQ产品使用合集之一个设备的离线消息的数量限制是多少
阿里云消息队列MQ(Message Queue)是一种高可用、高性能的消息中间件服务,它允许您在分布式应用的不同组件之间异步传递消息,从而实现系统解耦、流量削峰填谷以及提高系统的可扩展性和灵活性。以下是使用阿里云消息队列MQ产品的关键点和最佳实践合集。
|
3月前
|
消息中间件 网络性能优化
消息队列 MQ产品使用合集之通过MQTT控制台查询不到设备轨迹或消息轨迹是什么原因
阿里云消息队列MQ(Message Queue)是一种高可用、高性能的消息中间件服务,它允许您在分布式应用的不同组件之间异步传递消息,从而实现系统解耦、流量削峰填谷以及提高系统的可扩展性和灵活性。以下是使用阿里云消息队列MQ产品的关键点和最佳实践合集。
|
4月前
|
物联网 网络性能优化 API
MQTT常见问题之MQTT获取某个时间点的设备的状态失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
4月前
|
物联网 Serverless
MQTT常见问题之通过mqtt控制台查询不到设备轨迹如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
4月前
|
监控 网络性能优化 网络安全
【MODBUS】Modbus主站为边缘设备通过MQTT协议上云
【MODBUS】Modbus主站为边缘设备通过MQTT协议上云
79 1
|
4月前
MQTT的心跳保活机制是通过`setKeepAliveInterval()`方法设置的
MQTT的心跳保活机制是通过`setKeepAliveInterval()`方法设置的
641 2