基于AliOSOS Things 设备端快速上云

更新时间:2018-10-25 11:35:09

本文描述如何基于Alios Things快速体验设备通过MQTT协议连接到阿里云物联网套件。开发者只需要根据自己选用的芯片类型完成对Alios Things的 porting,即可通过Alios Things中提供的mqttapp快速实现设备直连上云。

目前Alios Things 支持MCU外挂 wifi模组、GPRS模组实现设备端快速入云;支持通过标准以太网实现设备端快速入云。

1、Alios Things 简介及Porting Guide

1.1、Alios Things简介

AliOS Things 是 AliOS 家族旗下、面向 IoT 领域的、高可伸缩的物联网操作系统。 AliOS Things 将致力于搭建云端一体化 IoT 基础设施,具备极致性能、极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云物联网套件,可广泛应用在智能家居、智慧城市、工业,新出行等领域。AliOS Things是一个分层+组件架构,可以较简单的移植到各类MCU及Connectivity SoC平台上,如下图:

image | left

1.2、Alios Things Porting guide

以STM32 B-L475E-IOT1A 开发板外带wifi模组为例,开发者只需要完成以下几部分的porting即可。
1、CPU支持:主要是各类CPU架构如ARM Cortex-M系列,C-Sky 80x系列的支持,具体请参考:Rhino Porting Guide

2、BSP/HAL:这部分工作主要是芯片的驱动开发,以及和AliOS Things HAL的对接。 请参考HAL Porting Guide了解进一步细节。

3、网络:根据芯片平台的连接能力,对于可以接入IP网络的设备

  1. 内置连接能力的芯片,比如WiFi,对接WiFi HALLwIP协议栈
  2. 外挂通信模块(TCPIP协议栈运行在通信模块上),可以通过SAL 提供一个标准的Socket环境

    在本例中,我们选用了第二种方式,只需要对SAL和 WiFi HAL进行porting即可。如果外挂的通信模组是GPRS或者NB-IoT,则不需要对WiFi HAL进行porting.

更详细内容敬请参考AliOS Things Porting Guide

2、接入阿里云物联网套件

使用mqttapp快速接入阿里云。请参考阿里云物联网设备接入准备设备接入

2.1、在云端主要包括以下几步:

1、注册一个阿里云账号

2、开通物联网套件

3、创建产品,拿到ProductKey

4、创建设备,拿到DeviceNameDeviceSecret

5、定义Topic$(PRODECT_KEY)/$(DEVICE_NAME)/data,并设置权限为:设备具有发布和订阅

2.2、设备端参数修改

mqttapp程序所在源码为AliOS-Things/framework/protocol/linkkit/iotkit/sdk-encap/imports/iot_import_product.h。此时在云端获取的三个参数ProductKeyDeviceNameDeviceSecret分别对应代码中的PRODUCT_KEYDEVICE_NAMEDEVICE_SECRET三个宏。

#elif  MQTT_TEST
#define PRODUCT_KEY             "yfTuLfBJTiL"
#define DEVICE_NAME             "TestDeviceForDemo"
#define DEVICE_SECRET           "fSCl9Ns5YPnYN8Ocg0VEel1kXFnRlV6c"
#define PRODUCT_SECRET          ""
#else

3、Alios Things 快速入云示例demo使用简介

Alios Things 支持设备端多种方式快速入云,包括:1、MCU外挂各种通信模块(wifi 模块和GPRS模块等),2、支持标准以太网口入云,3、支持作为一个进程直接在linux环境运行等。

3.1、B-L475E-IOT01A 外挂庆科wifi 模组入云

B-L475E-IOT01A 通过arduino UART接口外挂mico mk3165模块快速入云。

编译方法:aos make mqttapp@b_l475e

接线方式如下图所示:

B-L475E: PIN D0 --> mico 3165: PB6

B-L475E: PIN D1 --> mico 3165: PA10

B-L475E: GND --> mico 3165 : GND

image | left

烧录方法:使用ST-LINK utility 将AliOS-Things/out/mqttapp@b_l475e/binary/mqttapp@b_l475e.bin烧入B-L475E-IOT01A 开发板中

3.2、B-L475E-IOT01A 外挂simcom800C GPRS模块快速入云

B-L475E-IOT01A 通过arduino UART接口外挂simcom sim800C GPRS模块快速入云。

编译方法:aos make mqttapp@b_l475e module=gprs.sim800

硬件采用泥人sim800c开发板,整体接线方式如下图所示:

B-L475E: PIN D0 --> SIM800C : P1 TX

B-L475E: PIN D1 --> SIM800C : P1 RX

B-L475E: GND --> SIM800C : P1 GND

image | left

烧录方法:使用ST-LINK utility 将AliOS-Things/out/mqttapp@b_l475e/binary/mqttapp@b_l475e.bin烧入B-L475E-IOT01A 开发板中

3.3、 stm32f429zi-nucleo基于Alios Things支持标准以太接口快速上云

编译方法: aos make mqttapp@stm32f429zi-nucleo

烧录方法:使用ST-LINK utility 将AliOS-Things/out/mqttapp@stm32f429zi-nucleo/binary/mqttapp@stm32f429zi-nucleo.bin烧入stm32f429zi-nucleo 开发板中

3.4、作为一个进程运行在Linux环境

Alios Things支持整体作为一个进程运行在Linux环境,基于Linux主机的网络环境设备端快速上云。

编译方法: aos make mqttapp@linuxhost vcall=posix

运行方法:执行./AliOS-Things/out/mqttapp@linuxhost/binary/mqttapp@linuxhost.elf

4、Alios Things配网及数据连接阿里云

经过以上4步以后相应的mqttapp binary已经正常烧入到开发板中,启动串口打印如下图所示:

如果是外挂wifi模组,通过命令行使得wifi模组能正确连接到对应的AP。

netmgr connect ssid password

如果是外挂GPRS模组、标准以太接口或者作为一个进程运行Linux环境,会自动获取到ip,并运行mqttapp,快速支持数据上云。

正常联网后,mqttapp会真正开始运行。下图为mqtt运行日志截图:

image | left

进一步在云端查询到设备相关的日志信息如下所示

image | left

results matching ""

    No results matching ""