东胜智能网关如何转变为LwM2M客户端?发表时间:2022-09-02 09:18 Dusun智能网关基于Linux且可编程。然后,东胜的网关可以使用任何标准协议将数据传输到云中。 网关通过不同的连接类型与传感器/设备进行通信,然后预处理和过滤传感器/设备生成的数据以减少传输。 最后,处理后的数据被转换为标准协议,如MQTT / COAP,通过互联网连接发送到云端。 事实上,东胜智能网关是基于Linux的,并且是可编程的。然后,东胜的网关可以使用任何标准协议将数据传输到云中。接下来,我们将向您展示如何使用基于开源协议栈Wakayama的标准lwm2m协议传输数据。这意味着网关可以更改为 lwm2m 客户端,该客户端将通过 lwm2m 协议从传感器接收的数据传输到 lwm2m 服务器。 为方便说明,我们将使用 https://leshan.eclipseprojects.io/ 的 lwm2m 服务器,这是一个基于 leshan 的沙盒。 1. 什么是 LwM2M? OMA 轻量级 M2M 是开放移动联盟的一种协议,用于 M2M 或 IoT 设备管理。
LWM2M 通过对象/实例/资源管理数据。图 1 显示 anbulb 设备可以有 1 个对象,对应于 3 个实例 ID(0/1/2)。每个实例有 2 个资源 ID。 图 1.lmw2m 对象 2. 构建Wakayama LwM2M客户端 Wakayama演示客户端用于演示观察模式。通常,我们可以在PC上为网关制作一个程序,并交叉编译该程序,该程序将被复制到网关以运行。以下步骤显示了该过程:
图 2.用于交叉编译的 OpenWrt-Toolchain 4. 将下载的 OpenWrt 工具链解压缩到本地文件夹(例如:home/software/),并将工具链路径添加到系统路径: 打开 /etc/bash.bashrc 并将以下内容添加到文件末尾: 出口 PATH=home/software/OpenWrt-Toolchain-ramips-for-mipsel_24kec+dsp-gcc-4.8-linaro_uClibc-0.9.33.2/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin:$PATH 在终端中执行 source /etc/bash.bashrc。 5. 执行以下命令以构建 lwm2m 客户端: cd /home/software/wakaama/examples/client mkdir build 光盘构建 cmake-gui ..(根据图 3 配置交叉编译器) 做 图 3.在 cmake-gui 中交叉编译器的配置 编译后的 lwm2mclient 包含九个 LWM2M 对象:
倍数 对象|身份证|实例|强制性| 测试|31024 |是 |无| 资源: 支持多个 名称|身份证|运营|实例|强制性|类型 |范围| 测试|, ρR/W |无|是 |整数|0-255 | 执行|2 |E |无|是 | | | 12月 |3 |R/W |无|是 |浮子| | 3. 测试 LwM2M 客户端 连接东胜网关,在打开的控制台中执行命令: ./lwm2mclient -4 –h leshan.eclipseprojects.io (-4 表示 ipv4;-h 表示服务器) 连接过程如下所示: 图 4.lwm2m 客户端连接过程 如果连接成功,程序将打印状态:STATE_READY。上面的连接 ID 是 KMCstnKU3g。连接 https://leshan.eclipseprojects.io,我们可以通过注册ID找到我们的客户(图5): 图 5.测试乐山沙箱上连接的客户端 单击我们的客户,我们可以找到上面列出的9个对象。图 6 显示了 device(/3) 对象。图 7 显示了 test(/31024) 对象: 图 6.设备对象 图 7.测试对象 现在,我们可以通过lwm2m协议进行数据通信。单击读取按钮,直接转到资源为 /3/0/9 的电池电量。然后从客户端读取值[100]并在Web上进行筛选,如下所示: 如果我们在客户端控制台中键入:“change /0/9 88”并激活资源 /3/0/9 的观察按钮,则该值将立即更改为 88,如下所示。 通过单击测试对象实例 10 右侧的 read 按钮,我们可以获取该实例中的所有值。下图显示了情况。 通过执行“change /31024/10/1 99”和“change /31024/10/3 5.5”,我们可以看到服务器 Web 中的值已更改为 99 和 5.5,如下图所示: 4. 在东胜的网关上开发您的LwM2M客户端 1) 开发 LWM2M 客户端(用于光设备和传感器设备)是通过修改 ..Linux PC 上的 /wakaama-master/examples/client 文件夹。 2) 为 LWM2M 客户端中的每个新对象创建新的 C 文件。例如,对于轻型设备中的 LWM2M 客户端,您需要通过 object_device修改 object_light_profile ../wakaamamaster/examples/client folder.调整object_light_profile.c 中 Light Profile 对象的写入和读取函数。还可以调整object_light_profile.c 中的get_object和free_object功能。 3) 调整 .. 中的 lwm2mclient.c 和 lwm2mclient.h 文件。/wakaamamaster/examples/client folder 相应地。在 lwm2mclient.c 中,您需要在 main 函数的开头初始化 Light Profile 对象,并在 main 函数的末尾释放对象内存分配。在 lwm2mclient.c 中,您还需要在 LWM2M 客户端中设置正确数量的对象。 4)调整文件../wakaama-master/core/liblwm2m.h,方法是在第 167 行下添加新对象的 ID。 5)调整文件./wakaama-master/examples/client/CMakeLists.txt包括新的对象文件和修改后的代码中使用的任何新库。 6) 交叉编译新客户端,在东胜网关上运行新的 lwm2mclient。 声明:此篇为东胜物联原创文章,转载请标明出处链接:https://www.hzdusun.com/h-nd-63.html
文章分类:
技术支持
|