# linksdk_gateway_demo **Repository Path**: alios-things/linksdk_gateway_demo ## Basic Information - **Project Name**: linksdk_gateway_demo - **Description**: 基于LinkSDK实现设备作为网关搭建子设备与远端交互的通道。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2021-04-02 - **Last Updated**: 2024-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README @page linksdk_gateway_demo Wi-Fi设备实现网关协助子设备连接阿里云示例 [更正文档](https://gitee.com/alios-things/linksdk_gateway_demo/edit/master/README.md)      [贡献说明](https://help.aliyun.com/document_detail/302301.html) # 1. 案例简介 linksdk_gateway_demo是Link SDK网关代理子设备上云最简示例。 其完成的主要功能包括: - 系统板级初始化 - 内核基础组件初始化 - 网络配置 - 网络配置成功(获取ip)后创建Link SDK主线程 - Link SDK参数配置 - Link SDK初始化 - 创建独立线程用于MQTT保活及QoS1消息重发 - 创建独立线程用于下行数据接收 - 初始化子设备模块 - 批量添加子设备topo关系 - 子设备批量上线 - 子设备下线 该示例的运行依赖下述基本功能完成对接: - AOS API - LwIP - MbedTLS - Link SDK # 2. 基础知识 ## 2.1 基础目录结构 ```tree . ├── main.c # 网络配置及SDK启动入口 ├── maintask.c # 系统主任务入口处理,入口**aos_maintask** ├── Makefile # aos make编译时入口 ├── package.yaml # 编译系统配置文件 ├── README.md # 本说明文档 ├── SConstruct # Makefile => Scon => aostools └── subdev_basic_demo.c # Link SDK 网关(代理子设备上云)演示示例 ``` # 3. 物料清单 ## 3.1 HaaS100 硬件 [HaaS100 硬件简介](https://help.aliyun.com/document_detail/184426.html) # 4. 案例实现 ## 4.1 硬件连接 该案例只需要连接电源线以及串口线,如下图所示: 注意:由于本案例需要使用Wi-Fi联网,需将标有2.4G/5.8G的天线连接到HaaS100 靠近USB口的天线端子上,如上图所示。 ## 4.2 软件实现 ### 4.2.1 云端创建产品 请先点击登陆[物联网平台](https://www.aliyun.com/product/iot/iot_instc_public_cn)(未注册阿里云账户的用户,请先完成账户注册),按下面步骤一步步去打造。 1、创建项目 注册登入后,如下图所示,前往管理控制台。 点击公共实例,进行产品创建。 2、创建网关演示产品 点击创建产品,见下图所示,这里创建了一个名称“haas_gateway”产品。 3、创建网关设备 在设备列表中增加对应产品的设备。 4、创建子设备演示产品 点击创建产品,见下图所示,这里创建了一个名称“haas_subdev”产品。 5、创建多个子设备 在设备列表中增加对应产品的设备。 创建后的设备三元组信息需要同步到设备端的开发代码段中,在4.2.2章节会介绍。待设备端开发结束,就可以在物联网平台中参看设备在线状态。 ### 4.2.2 AliOS Things开发环境搭建 开发环境的搭建请参考[《AliOS Things集成开发环境使用说明之搭建开发环境》](https://help.aliyun.com/document_detail/302378.html),其中详细的介绍了AliOS Things 3.3的IDE集成开发环境的搭建流程。 ### 4.2.3 linksdk_gateway_demo代码下载 物模型上云的代码下载请参考[《AliOS Things集成开发环境使用说明之创建工程》](https://help.aliyun.com/document_detail/302379.html),其中, > 选择解决方案: “linksdk_gateway_demo” > 选择开发板: HaaS100 ### 4.2.4 设备端代码修改 演示用例路径为solutions/{your_project}/data_model_basic_demo.c 此演示用例演示Link SDK物模型单品上云的功能。 注意:{your_project} 为studio中创建的工程名(基于linksdk_gateway_demo模板)。 1.修改网关三元组,使用4.2.1章节得到的三元组填入代码如下区域: ```c int32_t demo_mqtt_start(void **handle) { ... /* TODO: 替换为自己设备的三元组 */ char *product_key = "替换为上章节创建的product_key"; char *device_name = "替换为上章节创建的device_name"; char *device_secret = "替换为上章节创建的device_secret"; ... ``` 1.修改子三元组,使用4.2.1章节得到的三元组填入代码如下区域: ```sh aiot_subdev_dev_t g_subdev[] = { { "替换为上章节创建的子设备1的product_key", "替换为上章节创建的子设备1的product_secret", "替换为上章节创建的子设备1的device_name", "替换为上章节创建的子设备1的device_secret" }, { "替换为上章节创建的子设备2的product_key", "替换为上章节创建的子设备2的product_secret", "替换为上章节创建的子设备2的device_name", "替换为上章节创建的子设备2的device_secret" }, ... }; ``` ### 4.2.5 代码编译、烧录 编译linksdk_gateway_demo的过程如下: -- 编译固件可参考[《AliOS Things集成开发环境使用说明之编译固件》](https://help.aliyun.com/document_detail/302384.html)。 -- 烧录固件可参考[《AliOS Things集成开发环境使用说明之烧录固件》](https://help.aliyun.com/document_detail/302383.html)。 ## 4.3 调试 CLI命令行输入联网命令: ```sh netmgr -t wifi -c ssid password ``` 注意:ssid和password需要替换成自己的路由的ssid及密码。 连上路由器后会自动连接到阿里云物联网平台。 ### 4.3.1 关键日志 CLI日志: ```sh success to establish mbedtls connection, fd = 3(cost 0 bytes in total, max used 0 bytes) [104.526][LK-0313] MQTT connect success in 1908 ms AIOT_MQTTEVT_CONNECT ``` 云端查看创建的主设备及子设备是否显示在线。 # 5. 总结 本用例简单介绍了如何使用AliOS Things及HaaS开发板进行端云一体网关设备的开发。了解更多连云相关知识请参考Link SDK[编程手册](https://help.aliyun.com/document_detail/163772.html?spm=a2c4g.11186623.6.576.50e76ba7rkfLbp)。