新的尝试 - 通过COAP接入精灵一号

本文档记录了使用IoTPi开发板搭建COAP服务器的过程,包括获取CoAP组件、烧写镜像、启动服务器,并通过NodeCoAPCLI进行功能验证。作者分享了遇到的问题及解决方法,强调了COAP在低功耗传感器设备中的适用性。
摘要由CSDN通过智能技术生成


前言

我最近正在研究 COAP 协议,也搬运了一个 (转)RFC7252-《受限应用协议》中文版 (COAP协议) COAP协议的文档,翻译得很不错,示例也很清晰,非常推荐大家去学习学习。

我发现我很多的传感器设备(比如我的光照传感器)很多时候其实没有什么数据交互,大部分都是 SDDC 维持连接的消耗,这类传感器设备其实不需要这么高的实时性,完全没必要去维持一个长连接,这种纯传感器设备更加适合 COAP 协议, COAP 协议数据发完就可以休眠了,功耗更低,更容易做低功耗。

最近恰好发现爱智似乎也支持 COAP,在他们官网看到了 IoT Pi CoAP 设备开发 教程,之前一直是用SDDC协议连接精灵一号,今天就尝试跟着官方教程通过 COAP 连接精灵一号。


获取 CoAP 组件

官方使用的 IOT PI 正好我手里也有一个,不过对应的COAP库好像不能直接构建,需要单独去下载 官方的 git 连接好像有问题,没办法 clone 下来,我这边分享一下我用的:

https://github.com/ms-rtos/libcoap.git
亲测有效!

我之前就构筑过 IOT PI 的BASE和BSP 了,详细可以去看我的初识 IOT Pi 与 MS-RTOS从零开始的DIY智能家居- 基于 IOT Pi 的智能甲醛检测器 好像可以直接用,不需要重新去构筑了,只需要将 获取到的 libcoap 文件夹放入 base 根目录即可:

在这里插入图片描述
然后在 IoT Studio 目录刷新一下即可刷出:
在这里插入图片描述
之后需要修改 bspstm32f4xx/src/board/IOT_PI/iot_pi_init.h 文件,在这个文件中设定了 IoT Pi 开发板开机时会创建进程启用 0x08040000 地址处的程序,修改自启动进程名字,具体代码如下:

ms_process_create("iotpi_coap", (ms_addr_t)0x08040000, 65536, 4096, 9, 0 , 0, MS_NULL, MS_NULL, MS_NULL);

之后重新编译 BASE 和 BSP 即可。

烧写镜像

使用 MS-RTOS AutoTester 烧写镜像,请参考 《IoT Pi 快速入门》 完成 bspiotpi.bin 和 coap_server_example.bin 镜像烧写,注意不同的镜像需要烧写到不同的地址,如下表所示:

镜像烧写地址
bspiotpi.bin0x08000000
coap_server_example.bin0x08040000

启动 CoAP Server

按下 IoT Pi 开发板的 RESET 按键或者点击 MS-RTOS Auto Tester GO 按钮启动板子:
在这里插入图片描述

MS-RTOS 操作系统启动后,
将自动运行 0x08040000 地址处的 CoAP Server 程序,在 MS-RTOS Auto Tester Input 窗口输入 ps 命令查看进程的信息:
在这里插入图片描述
看到这个 iot_coap 的就说明我们的 COAP 起来了

验证功能

又到了令人蛋疼的时刻,和 SDDC 一样

爱智官方没有提供调试工具!

麻了啊!之后找时间弄一个吧。

现在先按照官方的方法安装 Node CoAP CLI 进行调试吧。


Node CoAP CLI

通过如下命令安装 Node CoAP CLI:

npm install coap-cli -g 

在这里插入图片描述
输入 coap get coap://192.168.128.103/test 获取 CoAP Server 的 test 资源(这时没有信息,所以显示 no data),如下图所示:
在这里插入图片描述
输入 coap put -p 灵感桌面 coap://192.168.128.103/test 修改 CoAP Server 的 test 资源为字符串 “灵感桌面”,如下图所示:
在这里插入图片描述
再次输入 coap get coap://192.168.128.103/test 可以发现获取到上一步设置的字符串 “灵感桌面”了。
在这里插入图片描述
注意 COAP 的IP地址在启动的时候可以看到。

总结

按照官方的说法,我确实是把 COAP起来了,但是一个使用CoAP协议的设备通常既是客户端又是服务端,我还没办法测试客户端的功能。具体如何在爱智场景中更好的使用,我还得琢磨一下,在传统的COAP使用的M2M(端到端)的交互场景,在加入爱智之后肯定会发生变化,不知道精灵一号和 COAP 又能碰撞出什么新的场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值