CB2201_MQTT_User_Guide

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
简介:

C-SKY IoT开发板(CB2201)快速上阿里云指南

本文基于 AliOS Things 1.3.x版本,手把手教你在C-SKY CB2201开发板上使用MQTT通道上云

1 硬件环境搭建

1.1 开发板准备

1.1.1 CB2201开发板介绍

 CB2201开发板是杭州中天微自主设计的一款用于开发 IoT 应用的开发板。

 板上集成 CH2201 芯片,集成 CPU 调试器CKLink,只需要一根 USB 线就可以进行供电、调试、下载等操作。

 集成两个子板接口,每个子板接口中都集成了UART/SPI/IIC/ADC/PWM/GPIO等外设,可以连接各类接口兼容的功能子板,包括中天微设计的ENC28J60 SPI有线网卡子板,ESP8266-WiFi子板,传感器子板等。

1.1.2 CH2201芯片介绍

 内置32BIT C-SKY CK802T CPU@up to 48MHz

 256KB XIP eFlash,80KB SRAM

 REE/TEE运行环境隔离

 硬件加解密引擎,支持AES、RSA、SHA、TRNG等算法

 34个独立可编程、复用通用输入输出接口,包括:SPI×2, UART×3, I2C×2, ADC×16, PWM×4, GPIO×34, I2S×1, ACMP×1

 定时器相关资源:CoreTIM×1, RTC×2, Timer×2, WDT×1

 待机功耗 <3uA

 使用QFP-64-0.4mm封装

CB2201

1.1.3 ESP8266 WiFi子板

WiFi子板介绍:略

ESP8266_evb

1.1.4 开发板获取:

https://item.taobao.com/item.htm?id=570014022304

1.2 开发板连接方法

1.2.1 WiFi子板连接

CB2201_ESP8266_evb

1.2.2 串口线连接

USB_Serial

1.2.3 电源连接

通过USB线供电,图略

2 云端和通道环境搭建

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

参考链接( https://github.com/alibaba/AliOS-Things/wiki/Manual-Channel-MQTT ),做如下操作:

1、创建阿里云账号

2、创建测试产品,拿到ProductKey

3、创建测试设备,拿到DeviceName和DeviceSecret

4、下载测试工具

注意:请无视该文档中关于linuxhost的示例,编译方式请参考下面章节。

2.2 三要素设置

修改./framework/protocol/linkkit/iotkit/sdk-encap/imports/iot_import_product.h 中三个宏定义,修改为上一步骤中创建产品和设备时拿到的三要素(ProductKey、DeviceName和DeviceSecret),如下:


#elif  MQTT_TEST

#define PRODUCT_KEY    "......"

#define DEVICE_NAME    "......"

#define DEVICE_SECRET  "......"

#define PRODUCT_SECRET ""

#else

注:mqttapp程序所在源码为AliOS-Things/example/mqttapp/mqtt-example.c ( https://github.com/alibaba/AliOS-Things/blob/master/example/mqttapp/mqtt-example.c )。

此时在云端获取的三个参数ProductKey,DeviceName和DeviceSecret分别对应代码中的PRODUCT_KEY,DEVICE_NAME和DEVICE_SECRET三个宏,宏PRODUCT_SECRET无需理会。

3 mqttapp编译

AliOS-Things可以通过命令行和AliOS-Things IDE开发,详见下面说明。

3.1 命令行编译

1、命令行环境搭建:

     参考https://github.com/alibaba/AliOS-Things/wiki/Quick-Start

2、命令行编译方式如下:

     $ aos make mqttapp@cb2201

     build完成后可在out/mqttapp@cb2201/binary/ 目录找到生成的bin文件和hex文件。

3.2 AliOS-Things IDE编译

1、AliOS-Things IDE环境搭建:

     参考https://github.com/alibaba/AliOS-Things/wiki/Starter-Kit-Tutorial

2、开发环境搭建好后,导入Alios-Things源码。

     导入方法1:鼠标直接拖入;

     导入方法2:点击菜单栏 “文件(F)” -> “打开文件夹(F)”。

3、Build如下图,选中mqttapp@cb2201,点击右侧"√"

     build完成后可在out/mqttapp@cb2201/binary/ 目录找到生成的bin文件。

4 固件烧录

4.1 安装烧录软件

1、烧录软件获取:链接:https://pan.baidu.com/s/1CcbCXZ3SJwfBL13_MP9SIg 密码:s6j5

2、解压后,双击CSKYFlashProgrammer.exe打开烧录软件

4.2 烧录

1、选择User Config: AliOS-Things-CB2201-MQTTAPP,并更改AliOS-Things存放路径(即修改下图中“G:\”)

FLASH_PROGRAMMER_Config

2、开发板首次烧录程序需要选择 “Chip Erase” 用以擦除eFlash,之后开发则选择 “Erase Sectors” 即可。

FLASH_PROGRAMMER_Advance_Chip_Erase

3、点击下方 "Start Program" 按钮烧写(注意:烧写前需要先退出CskyDebugServer)

5 WiFi配网及数据连接阿里云

5.1 WiFi配网

烧录完成后,点击开发板复位键重启,串口打印如下图所示:

在串口命令行中敲入如下配网命令:

# netmgr connect <ssid> <password>

PeiWang

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

mqttapp_log

5.2 查看设备是否在线

点击下面链接,登录阿里云账户查看:

http://iot.console.aliyun.com/#/product/newlist/region/cn-shanghai

AliYun_Device_information

6 调试

6.1 CskyDebugServer安装和使用

1、获取CskyDebugServer(若已安装CDS/CDK,则可略过1和2的步骤)

     链接:https://pan.baidu.com/s/1lT7gIoJZylQEOUvXnrpFUg 密码:6bu9

2、安装

     解压后双击默认安装。

3、端口设置,如下图:

CskyDebugserver_port

4、连接开发板

     点击 “红色三角形” 按钮,连接成功后,“红色三角形” 按钮会变成 “红色圆形” 按钮,如下图:

CskyDebugServer_connect

6.2 VS Code调试设置

根据已编译并烧录的app@board信息,更新 AliOS-Things/.vscode/launch.json 调试配置文件,比如:已编译并烧录 mqttapp@cb2201以后,更改相关配置如下图:

VSCode_launch

6.3 开始调试

1、点击 VSCode_Debug_Page_Button 按钮,进入调试界面。

2、选择 “CSKY DEBUG @ Windows/Linux”:VSCode_CSKYDebug_Button

3、点击左上方的 VSCode_Continue 按钮(或F5)启动调试。

4、启动调试以后会自动停到已设置的断点 application_start 函数处;

     同时上方会出现调试工具栏,提供常用的单步调试功能;

     左侧边栏可以查看变量和函数调用栈。

VSCode_debug

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
6月前
|
安全 网络安全 数据安全/隐私保护
关于 SAP cloud com.jcraft.jsch.JschException Auth fail for methods password错误消息
关于 SAP cloud com.jcraft.jsch.JschException Auth fail for methods password错误消息
189 0
|
6月前
|
存储 数据库
关于 SAP AMDP 调用错误消息 client-specific and restricts access to a client
关于 SAP AMDP 调用错误消息 client-specific and restricts access to a client
44 0
|
5月前
|
API
Unable to register node “xxx“ with API server: Unauthorized
Unable to register node “xxx“ with API server: Unauthorized
216 0
|
7月前
|
API 网络安全
关于 SAP ABAP CL_HTTP_CLIENT API 中的 SSL_ID 参数
ABAP HTTP API:CL_HTTP_CLIENT, create_by_url 有一个输入参数 SSL_ID, 类型为 SSFAPPLSSL, 这个参数应该传什么值进去呢?
56 0
|
Apache
《Apache Wicket User Guide - Ref》电子版地址
Apache Wicket User Guide - Reference Documentation
46 0
《Apache Wicket User Guide - Ref》电子版地址
|
网络安全
Qt :qt.network.ssl: QSslSocket : cannot call unresolved function TLSv1_1_client
Qt :qt.network.ssl: QSslSocket : cannot call unresolved function TLSv1_1_client
204 0
Qt :qt.network.ssl: QSslSocket : cannot call unresolved function TLSv1_1_client
|
消息中间件
RabbitMq Virtual host ‘myHost’ experienced an error on node XXXX and may be inaccessible
RabbitMq Virtual host ‘myHost’ experienced an error on node XXXX and may be inaccessible
681 0
RabbitMq Virtual host ‘myHost’ experienced an error on node XXXX and may be inaccessible
|
域名解析 网络协议 API
使用 cf push 部署应用到 SAP BTP 时遇到错误消息 No domains exist for route
使用 cf push 部署应用到 SAP BTP 时遇到错误消息 No domains exist for route
199 0
使用 cf push 部署应用到 SAP BTP 时遇到错误消息 No domains exist for route
SAP Spartacus读取User Address的action是如何被Effect接收的
SAP Spartacus读取User Address的action是如何被Effect接收的
62 0
SAP Spartacus读取User Address的action是如何被Effect接收的
Send mail via http client - CL_SAM_SESSION_QUEUE_SENDER
Send mail via http client - CL_SAM_SESSION_QUEUE_SENDER
101 0
Send mail via http client - CL_SAM_SESSION_QUEUE_SENDER