helloworld演示是一个简单的演示应用程序,可用作创建新演示应用程序的参考。 此演示的必要文件位于<sdk_source> / target / quartz / demo / Helloworld_demo目录中
■“Helloworld_demo”文件夹包含build和src目录。 “build / gcc”编译器使用“Makefile”或“build.bat”构建此演示。 src文件夹包含hello_world.c文件和用于本演示平台初始化的pal文件夹。
■hello_world程序创建一个“HelloWorld_Thread”线程,它定期向控制台输出“Hello World”消息。 pal文件夹是平台抽象层,它包含负责初始化和应用程序启动的pal.c和pal.h文件。
■如果用户想要初始化演示的任何先决条件,可以在app_init()中完成。
■Helloworld_demo初始化如下:
Platform > app_init() > Initialize_Sample() > Initialize_demo()> PAL_Initialize() > PAL_Uart_Init()
■HelloWorld_Thread()线程是作为App_start()的一部分创建的。 主循环开始定期将hello world消息打印到控制台。
Platform > app_start() > App_start() > QuRT_thread_create() > HelloWorld_Thread()
具有云模式的板载演示
此演示需要qca_sensors移动应用程序来读取CDB2x设备上的传感器数据和控制传感器。 通过BLE或Wi-Fi(在移动应用程序和CDB20之间)和Zigbee / Thread(在CDB2x设备之间)进行通信。 CDB20设备连接到Home AP,以将传感器信息发送到AWS云网络。 设置入门需要两个应用程序 - 首先在CDB2x设备上运行的板载演示应用程序,以及在移动设备上运行的第二个(QCAOnboard和Sensor)应用程序。 有关移动应用程序,请参阅Onboard移动应用程序部分。
图1云模式入职设置
构建板载AWS演示的先决条件
按照使用AWS IoT构建部分中的建议下载和修改代码。
编辑以下文件以包含在单行语句下的以下数组中为AWS事物创建和激活设备证书部分中下载的私钥,证书和根ca的内容。
■ /target/quartz/demo/Onboard_AWS_demo/src/include/cert_buf.h
aws_thing_privkey[] = {};
aws_thig_cert[] = {};
aws_calist[]= {};
例如:
aws_thing_privkey[] =
{
"-----BEGIN RSA PRIVATE KEY-----MIIEpAIBAAKCAQEA……………………..………………………..1lmZ+g==-----END RSA PRIVATE KEY-----"
};
■ /target/quartz/demo/Onboard_AWS_demo/src/ecosystem/aws/aws_util.h
在以下宏中包含实际的AWS服务器详细信息和Thing名称
//AWS Server Details
#define HOST_ID "Abcdefxxxx.xxxx.xxx. amazonaws.com "
#define THING_NAME "ABCD_XXX "
例如:
#define HOST_ID "a3eoxxxxxxxz0.iot.us-west-2.amazonaws.com"
#define THING_NAME "IOTDEMO"
■ /target/quartz/demo/Onboard_AWS_demo/src/export/DevCfg_master_devcfg_out_cdb.xml
默认情况下,QCA402x上启用了数据执行保护(DEP)。 要在代码和数据存储区域中进行更改,请调整DEP配置。 修改了DevCfg_master_devcfg_out.xml文件以调整DEP配置区域。
在以下行中,将0XF1更改为0XF9以将堆大小增加到128 K:
<!-- FOM Code and Data region = --> 0x00, 0x00, 0x00, 0x10, 0x00,0x00, 0x10, 0x00, 0x02, 0xF9, 0x06, 0x00,
/target/bin/cortex-m4/threadx/DefaultTemplateLinkerScript.ld
要将数据存储器(RAM_FOM_APPS_DATA_MEMORY)增加128 KB,请将代码存储器(RAM_FOM_APPS_RO_MEMORY)减少相同的量。 在DefaultTemplateLinkerScript.ld脚本中进行以下更改:
更改: RAM_FOM_APPS_RO_MEMORY (RX) : ORIGIN = 0x10046000, LENGTH = 0x3a000
RAM_FOM_APPS_DATA_MEMORY (W) : ORIGIN = 0x10080000, LENGTH = 0x10000
To:
RAM_FOM_APPS_RO_MEMORY (RX) : ORIGIN = 0x10046000, LENGTH = 0x1a000
RAM_FOM_APPS_DATA_MEMORY (W) : ORIGIN = 0x10060000, LENGTH = 0x30000
■ target/target/thirdparty/aws/awsiot/include/aws_iot_config.h
#define AWS_IOT_MQTT_TX_BUF_LEN 1024
#define AWS_IOT_MQTT_RX_BUF_LEN 1024
LED状态指示
介绍在入门和功能阶段/阶段的LED指示。 CDB2x电路板设置一节中列出了验证功能阶段和光传感器切换所需的跳线设置。
红色LED
■如果电路板成功初始化并准备好进行激活,则会持续发光。
■如果在电路板上电或复位期间初始化失败,则闪烁。
■当其他LED指示正常时关闭。
绿色LED
■如果无线电的子集已加入,则闪烁。 例如,如果设备允许Wi-Fi和Zigbee加入,并且用户仅加载了Wi-Fi或Zigbee,则绿色LED闪烁。 如果所有允许的无线电都被加入,则不断发光。
蓝色LED
■Qualcomm传感器应用程序通过AWS服务器控制此LED。
■LED将根据AWS服务器提供的输入打开/关闭。
WLAN LED
■连接到AP时闪烁。
■连接到AP时不断发光。
■未连接AP时关闭。
运行AWS演示
1.在继续之前,请遵循板载AWS演示的无云模式板载演示部分中针对Zigbee网络列出的先决条件。
2. CDB4020和CDB4024设备在电源循环时启动,进入BLE / Wi-Fi外设模式(基于设备在构建时的配置方式)并开始广告。
3.移动应用程序连接到CDB20 / 24设备,其中密码“123456”用于BLE入职,密码“123456789”用于Wi-Fi入门。
4.一旦CDB20板从移动应用程序接收到BLE / Wi-Fi密钥和板载,它将验证配置并将其保存到文件系统。
5.移动应用程序读取CDB20板状态并显示Wi-Fi入门屏幕。 输入Home AP凭据以连接到网络。
CDB20上的板载Zigbee协调器/线程连接器路由器
6.在移动应用程序和CDB20设备成功进行BLE / Wi-Fi连接后,移动应用程序通过BLE连接读取Zigbee / Thread服务的板载状态。 如果状态成功,并且Zigbee处于协调器模式或者线程处于joiner路由器模式,则移动应用程序会生成链接密钥并将凭证数据包发送到作为Zigbee协调器或线程管理器路由器运行的CDB20设备。
7.一旦CDB20设备获得操作模式和链接密钥,入门演示将提取板载详细信息,验证配置,存储到文件系统并将ACK发送到移动应用程序。 CDB20设备基于用户配置的Zigbee / Thread操作模式启动Zigbee / Thread服务作为协调器/连接器路由器。
8.移动应用程序收到Zigbee板载状态通知后,将显示板载状态屏幕和状态。
CDB2x上的板载Zigbee终端设备/螺纹连接器
9.用户可以通过BLE连接“加载”CDB2x设备。
□在Zigbee入职的情况下,CDB2x设备作为连接Zigbee协调器CDB20设备的Zigbee终端设备运行。
□在线程入线的情况下,CDB2x设备作为线程连接器运行,连接到线程连接器路由器CDB20设备。在移动应用程序主屏幕上,通过BLE连接使用默认密码“123456”或通过Wi-Fi连接使用密码“123456789”选择CDB2x设备并登录设备。
10.移动应用程序检查CDB2x板载状态并通过BLE / Wi-Fi显示Zigbee / Thread连接状态,选择相关协调器CDB20设备名称或joiner路由器CDB20设备名称,该名称允许CDB2x作为终端设备加入Zigbee通过BLE / Wi-Fi连接加入Thread网络的网络或连接器。
11.如果CDB24成功启用,移动应用程序将显示成功的入门设备状态;否则通知失败状态并断开与设备的连接。
使用qca_sensors应用程序获取传感器数据[Zigbee + BLE]
成功启动CDB2x设备后,Zigbee终端设备/线程连接器将传感器信息发送到Zigbee协调器/线程连接器路由器。 使用AWS Dashboard Desktop Application以实时图形格式观察传感器数据,或使用qca_sensors应用程序查看传感器信息。 要使用qca_sensor移动应用程序查看传感器数据,请将credentials.csv文件存储在从创建IAM用户(控制台)下载的Android设备中。
12.启动应用程序后,将提示用户出现一个对话框,将IAM用户credentials.csv文件保存在电话中。
13.用户从显示的可用区域列表的对话框中选择文件和AWS区域。
14.成功登录后,应用程序将显示AWS IoT中的事物列表,其中包含与每个事物相连的一个或多个板的传感器和恒温器的详细信息。
15.选择与其关联的设备列表下的设备,以查看传感器和恒温器数据。