嵌入式技术论坛
直播中

王璐

7年用户 490经验值
私信 关注
[经验]

基于ESP8266实现御坂网络共享的设计怎样去完成呢

实现原理

通过串口连接ESP8266设备,使用RT-Thread 网络组件AT命令控制

判断周围Wifi SSID,提取特征进行自组网

应用背景

理论上可平替Zigbee模块,达到与之相同的功能,但有其无法实现的远距离通讯

家庭环境下物联网设备组网、联网

整体系统框架

1.初始化篇章

2.配网/自组网篇章

3.结构图

说明: 当Group相同,由于模块限制最多可挂载4个设备,age不同的会单独成为一个父节点。若有超过4各设备挂在在同一个父节点上,则子节点会自动变更age。每个节点可单独连接外网,且只要一个节点连接外网,各个节点均可连接外网。

4.网络拓补图

使用说明

克隆项目到本地,ESP8266 TX-P410 RX-411 (默认使用Uart0)

上电默认进行初始化,待提示: 当前个体: 等待御坂网络连接指引 时,可在Wifi列表中找到 misaka 开头的WiFi名称,密码为后4位数重复两遍,该数字为节点Name

连接上述Wifi启动网络调试工具,UDP客户端,发送 SET+-1+后四位数字+-1=<此处为组别>+<此处为age> 到 255.255.255.255 后,返回 OK,完成配网

此时提示 当前个体: 已经 <此处为age> 岁啦,将加入 <此处为组别> 组,同时可在Wifi列表中找到 network 开头的可组网网络

当前问题

未完全开发完…

创建SSID时,SSID名称过长,后期考虑使用采用16位二进制作为载体(使用时转为16进制)

ESP8266只能连接WPS,后期考虑自组网时,根据Wifi信号强弱判断是否为需要组网的设备 (避免组网到别人的网络中去)

是否可以使用AT-Socket简化开发,以及使用SAL

项目APP

写在后面

是本人个人原因,理解错了,收到板子的时候一直在用E2 Studio开发,那个时候天真的以为E2 Studio中所附带的RTOS中的Azure RTOS ThreadX (最早用的是FreeRTOS)就是RT-Thread,结果断断续续开发了将近一个月,把AT命令快要搞定了之后 (遗留部分BUG,例如处理部分超过长度的内容时,例如获取周围Wifi,容易出现爆内存情况,但是对于项目来说,又不得不将所有Wifi SSID都获取到。后续解决后开源),已经快要结束了(剩下5天),结果才发现,他俩压根不是一个东西好伐,又重新下载RT-Thread Studio开整Uart。好在RT-Thread自带AT命令,救我狗命磕磕绊绊实现了一个配网功能。关于,AT命令,后期考虑出一个思路整理笔记,细数踩过的坑。

原作者:zhouxuan77

更多回帖

发帖
×
20
完善资料,
赚取积分