## 一、前期准备
* 硬件准备
1. w600开发板
2. 下载线
* 软件准备
1.keil mdk 编译软件
2.w600 基于RT-Thread的sdk
## 二、实现思路
基于RT-Thread丰富的软件包,实现局域网发现功能只需要配合四个组件再简单修改一下即可实现.
1.wifi组件,使能wifi联网和创建ap热点。
2.romfs组件,文件系统放置web网页和ssdp协议的设备描述文件。
3.webnet组件,web cgi功能。
4.ssdp软件包,实现局域网发现功能。
## 三、实现过程
1.在env命令行中使用 menuconfig开启wifi功能。
![开启wifi功能.png 开启wifi功能.png](https://static.assets-stash.eet-china.com/forum/201908/23/003305a0vf1nuz7s7zq70w.png)
图1.
2.在main.c中配置wifi的模式。
![配置wifi代码.png 配置wifi代码.png](https://static.assets-stash.eet-china.com/forum/201908/23/003305zwkmcj9dmkecdedw.png)
图2.
3.通过env命令行使用menuconfig 开启romfs组件
![添加ROMFS组件.png 添加ROMFS组件.png](https://static.assets-stash.eet-china.com/forum/201908/23/003326eay2asa2jyvyafp4.png)
4.添加romfs文件系统挂载代码
![添加romfs初始化代码.png 添加romfs初始化代码.png](https://static.assets-stash.eet-china.com/forum/201908/23/003325meoo2hbz2zapdb2m.png)
图4.
5.通过env命令行使用menuconfig 添加webnet软件包。
![添加webnet组件.png 添加webnet组件.png](https://static.assets-stash.eet-china.com/forum/201908/23/003326lrzdgcjgtru19m31.png)
图5.
6.添加webnet初始化代码导入到app初始化中。
![webnet初始化配置代码.png webnet初始化配置代码.png](https://static.assets-stash.eet-china.com/forum/201908/23/003305zk4gfywf4efb7w4g.png)
图6.
7.通过env命令行使用menuconfig 添加lssdp软件包。
![添加lssdp软件包.png 添加lssdp软件包.png](https://static.assets-stash.eet-china.com/forum/201908/23/003325rdlrqlzv2lvllifq.png)
图7
8.修改LOCATION指定路径。
![配置设备描述文件.png 配置设备描述文件.png](https://static.assets-stash.eet-china.com/forum/201908/23/003305akp4h2jk0jp3wkpy.png)
图8
9.添加指定描述文件的请求前缀
![添加http的前缀.png 添加http的前缀.png](https://static.assets-stash.eet-china.com/forum/201908/23/003306pxn0uzxdxqu6uwsw.png)
图9
最终效果实现
![局域网实现图.png 局域网实现图.png](https://static.assets-stash.eet-china.com/forum/201908/23/004056v7gqyh7z3771j107.png)
设备描述文件中的配置
![设备描述文件内容.png 设备描述文件内容.png](https://static.assets-stash.eet-china.com/forum/201908/23/004542mlqvv9xhhdlvdell.png)
到此已经成功地发现了自定义的设备,局域网发现协议功能已经完成。
文章的资料大部分来自RT-Thread官方文档,感谢RT-Thread官网提供的lssdp软件包。
下一步会继续编写一些关于如何DIY一个智能家居的场景,让生活变得更加智能。