1@page linksdk_gateway_demo Wi-Fi设备实现网关协助子设备连接阿里云示例 2 3[更正文档](https://gitee.com/alios-things/linksdk_gateway_demo/edit/master/README.md)      [贡献说明](https://help.aliyun.com/document_detail/302301.html) 4 5# 1. 案例简介 6linksdk_gateway_demo是Link SDK网关代理子设备上云最简示例。 7 8其完成的主要功能包括: 9- 系统板级初始化 10- 内核基础组件初始化 11- 网络配置 12- 网络配置成功(获取ip)后创建Link SDK主线程 13- Link SDK参数配置 14- Link SDK初始化 15- 创建独立线程用于MQTT保活及QoS1消息重发 16- 创建独立线程用于下行数据接收 17- 初始化子设备模块 18- 批量添加子设备topo关系 19- 子设备批量上线 20- 子设备下线 21 22该示例的运行依赖下述基本功能完成对接: 23- AOS API 24- LwIP 25- MbedTLS 26- Link SDK 27 28# 2. 基础知识 29 30## 2.1 基础目录结构 31```tree 32 33. 34├── main.c # 网络配置及SDK启动入口 35├── maintask.c # 系统主任务入口处理,入口**aos_maintask** 36├── Makefile # aos make编译时入口 37├── package.yaml # 编译系统配置文件 38├── README.md # 本说明文档 39├── SConstruct # Makefile => Scon => aostools 40└── subdev_basic_demo.c # Link SDK 网关(代理子设备上云)演示示例 41``` 42 43# 3. 物料清单 44 45## 3.1 HaaS100 硬件 46 47[HaaS100 硬件简介](https://help.aliyun.com/document_detail/184426.html) 48 49<img src="https://img.alicdn.com/imgextra/i4/O1CN01XxD6Xo217CB3FZnEU_!!6000000006937-2-tps-746-497.png" style="max-width:800px;" /> 50 51# 4. 案例实现 52 53## 4.1 硬件连接 54该案例只需要连接电源线以及串口线,如下图所示: 55 56<img src="https://img.alicdn.com/imgextra/i3/O1CN01tPYjF31bqpdGkFbdD_!!6000000003517-0-tps-4032-3024.jpg" style="max-width:800px;" /> 57 58注意:由于本案例需要使用Wi-Fi联网,需将标有2.4G/5.8G的天线连接到HaaS100 靠近USB口的天线端子上,如上图所示。 59## 4.2 软件实现 60### 4.2.1 云端创建产品 61请先点击登陆[物联网平台](https://www.aliyun.com/product/iot/iot_instc_public_cn)(未注册阿里云账户的用户,请先完成账户注册),按下面步骤一步步去打造。 62 631、创建项目 64 65注册登入后,如下图所示,前往管理控制台。 66 67<img src="https://img.alicdn.com/imgextra/i4/O1CN01BN7DMd1IibotD78f6_!!6000000000927-2-tps-1308-490.png" style="max-width:800px;" /> 68 69点击公共实例,进行产品创建。 70 71<img src="https://img.alicdn.com/imgextra/i2/O1CN01AjRz9z294Sk2dsMXe_!!6000000008014-2-tps-1328-792.png" style="max-width:800px;" /> 72 732、创建网关演示产品 74 75点击创建产品,见下图所示,这里创建了一个名称“haas_gateway”产品。 76 77<img src="https://img.alicdn.com/imgextra/i1/O1CN01vpxC1F1FQnZfx4Znh_!!6000000000482-2-tps-1470-1788.png" style="max-width:800px;" /> 78 793、创建网关设备 80 81在设备列表中增加对应产品的设备。 82 83<img src="https://img.alicdn.com/imgextra/i2/O1CN01a8mOHP1zd8ZL5UYE0_!!6000000006736-2-tps-1392-624.png" style="max-width:800px;" /> 84 854、创建子设备演示产品 86 87点击创建产品,见下图所示,这里创建了一个名称“haas_subdev”产品。 88 89<img src="https://img.alicdn.com/imgextra/i3/O1CN01ur5LgC1h3GSlStLvf_!!6000000004221-2-tps-1504-1764.png" style="max-width:800px;" /> 90 915、创建多个子设备 92 93在设备列表中增加对应产品的设备。 94 95<img src="https://img.alicdn.com/imgextra/i4/O1CN019rocNe1hsYp8IBufJ_!!6000000004333-2-tps-1816-738.png" style="max-width:800px;" /> 96 97创建后的设备三元组信息需要同步到设备端的开发代码段中,在4.2.2章节会介绍。待设备端开发结束,就可以在物联网平台中参看设备在线状态。 98 99### 4.2.2 AliOS Things开发环境搭建 100开发环境的搭建请参考[《AliOS Things集成开发环境使用说明之搭建开发环境》](https://help.aliyun.com/document_detail/302378.html),其中详细的介绍了AliOS Things 3.3的IDE集成开发环境的搭建流程。 101 102### 4.2.3 linksdk_gateway_demo代码下载 103物模型上云的代码下载请参考[《AliOS Things集成开发环境使用说明之创建工程》](https://help.aliyun.com/document_detail/302379.html),其中, 104> 选择解决方案: “linksdk_gateway_demo” 105> 选择开发板: HaaS100 106 107### 4.2.4 设备端代码修改 108 109演示用例路径为solutions/{your_project}/data_model_basic_demo.c 此演示用例演示Link SDK物模型单品上云的功能。 110注意:{your_project} 为studio中创建的工程名(基于linksdk_gateway_demo模板)。 111 1121.修改网关三元组,使用4.2.1章节得到的三元组填入代码如下区域: 113```c 114int32_t demo_mqtt_start(void **handle) 115{ 116... 117 /* TODO: 替换为自己设备的三元组 */ 118 char *product_key = "替换为上章节创建的product_key"; 119 char *device_name = "替换为上章节创建的device_name"; 120 char *device_secret = "替换为上章节创建的device_secret"; 121... 122``` 1231.修改子三元组,使用4.2.1章节得到的三元组填入代码如下区域: 124```sh 125aiot_subdev_dev_t g_subdev[] = { 126 { 127 "替换为上章节创建的子设备1的product_key", 128 "替换为上章节创建的子设备1的product_secret", 129 "替换为上章节创建的子设备1的device_name", 130 "替换为上章节创建的子设备1的device_secret" 131 }, 132 { 133 "替换为上章节创建的子设备2的product_key", 134 "替换为上章节创建的子设备2的product_secret", 135 "替换为上章节创建的子设备2的device_name", 136 "替换为上章节创建的子设备2的device_secret" 137 }, 138... 139}; 140``` 141 142### 4.2.5 代码编译、烧录 143编译linksdk_gateway_demo的过程如下: 144 145-- 编译固件可参考[《AliOS Things集成开发环境使用说明之编译固件》](https://help.aliyun.com/document_detail/302384.html)。 146 147-- 烧录固件可参考[《AliOS Things集成开发环境使用说明之烧录固件》](https://help.aliyun.com/document_detail/302383.html)。 148 149## 4.3 调试 150 151CLI命令行输入联网命令: 152```sh 153netmgr -t wifi -c ssid password 154``` 155注意:ssid和password需要替换成自己的路由的ssid及密码。 156 157连上路由器后会自动连接到阿里云物联网平台。 158 159### 4.3.1 关键日志 160CLI日志: 161```sh 162success to establish mbedtls connection, fd = 3(cost 0 bytes in total, max used 0 bytes) 163[104.526][LK-0313] MQTT connect success in 1908 ms 164AIOT_MQTTEVT_CONNECT 165``` 166云端查看创建的主设备及子设备是否显示在线。 167 168# 5. 总结 169本用例简单介绍了如何使用AliOS Things及HaaS开发板进行端云一体网关设备的开发。了解更多连云相关知识请参考Link SDK[编程手册](https://help.aliyun.com/document_detail/163772.html?spm=a2c4g.11186623.6.576.50e76ba7rkfLbp)。 170 171