0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分享一种实用的配网方案!

Linux大陆 来源:Linux大陆 2023-02-09 09:25 次阅读

大家好,我是LinuxZn。

什么是SmartLink?

项目需要用到smartconfig,之前我也没接触过,查资料了解的过程发现了一个好东西——SmartLink,分享给大家。

SmartLink是一个在Linux下实现的smartconfig。

仓库链接:

https://github.com/jolin90/smartconfig

SmartLink的介绍及使用

1、相关知识补充

在介绍SmartLink的使用之前,我们先补充点相关知识。

(1)什么是smartconfig?

以wifi智能插座来做说明。我们刚买回来的智能插座,第一步要做的就是给设备进行配网。

配网方式有很多,smartconfig就是其中一种:

e76bb8de-a7e2-11ed-bfe3-dac502259ad0.pnge7aabaca-a7e2-11ed-bfe3-dac502259ad0.jpg

图片来源:物联网电子世界

手机发送UDP广播报文,待配网设备扫描所有的可用无线信道,找到发送smartConfig的报文,并锁定在这一信道上开始接受数据。

(2)网卡工作模式

广播模式:物理地址(MAC)是0Xffffff的帧为广播帧,工作在广播模式的网卡接收广播帧。

多播模式:如果将网卡设置为多播模式,它可以接收所有的多播传送帧,而不论他是不是组内成员。

直接模式:只接收目的地址是自己MAC地址的帧。

混杂模式:工作在混杂模式下的网卡接收所有流经网卡的帧。

查看、设置、取消混杂模式命令如:

ifconfigwlan0#查看wlan0是否为混杂模式
ifconfigwlan0promisc#设置wlan0为混杂模式
ifconfigwlan0-promisc#取消wlan0混杂模式
e7d2ca10-a7e2-11ed-bfe3-dac502259ad0.png

(3)通信方式

通信方式分类:

单播:单台主机与单台主机之间的通信;

广播:单台主机与网络中所有主机的通信;

组播:单台主机与选定的一组主机的通信;

IP 网络的组播一般通过组播 IP 地址来实现,组播 IP 地址就是 D 类 IP 地址,即 224.0.0.0 至 239.255.255.255 之间的IP地址。

2、SmartLink使用

下载得到:

e7f98b46-a7e2-11ed-bfe3-dac502259ad0.png

我们使用arm板子来做实验。首先,需要交叉编译,执行命令:

makeCC=arm-linux-gnueabihf-gcc

把编译生成的smartlink可执行程序传到板子里。运行时需要跟上接口的名称。如:

./smartlinkwlan0

然后执行如下命令重新编译:

makeclean
make

生成的mcast_app可执行程序在pc上运行,模拟手机APP发送。运行时需要传入WiFi名称及密码。如:

./mcast_appTenda_552F180987654321

测试时需要先运行mcast_app,再运行smartlink。smartlink收到WiFi名称及密码时会打印出来。

运行结果如:

e831df82-a7e2-11ed-bfe3-dac502259ad0.png

这里,使用mcast_app来模拟手机APP。smartlink也提供了一个简易的安卓手机APP,也可以使用APP进行测试:

e8429840-a7e2-11ed-bfe3-dac502259ad0.png

4、SmartLink组播包协议分析

上面演示了SmartLink的使用,下面简单介绍一些SmartLink的组播包协议。

APP发送特定协议的组播包数据给设备,设备收到后进行解析获取路由器SSID及密码。其协议如:

每个数据包6个字节,

第1~3字节:组播包地址,为固定值0x01 0x00 0x5e。

第4字节:数据包序号。

第5字节:指定数据。

第6个字节:指定数据。

每次传输若干字节。举例说明:

SSID为"TP-LINK_hys" ,PSW为"12345678",发送组播地址如下:

0x010x000x5e0x000x480x35
0x010x000x5e0x010x680x2b
0x010x000x5e0x020x5c0x31
0x010x000x5e0x030x0b0x08
0x010x000x5e0x04'T''1'
0x010x000x5e0x05'P''2'
0x010x000x5e0x06'-''3'
0x010x000x5e0x07'L''4'
0x010x000x5e0x08'I''5'
0x010x000x5e0x09'N''6'
0x010x000x5e0x0a'K''7'
0x010x000x5e0x0b'_''8'
0x010x000x5e0x0c'h'0x00
0x010x000x5e0x0d'y'0x00
0x010x000x5e0x0e's'0x00
0x010x000x5e0x400x1c0x03

其中:

(1)第1~3包数据,为特征码包,后三个字节由组播IP映射为为组播MAC。取组播IP的后23位作为MAC,映射图如:

e8565132-a7e2-11ed-bfe3-dac502259ad0.png

图片来源:jasonj33的博客

这里,手机APP设置的组播IP固定如:

#defineIPADDR_KEY0"224.0.72.53"/*key0000035*/
#defineIPADDR_KEY1"224.1.104.43"/*key100012b*/
#defineIPADDR_KEY2"224.2.92.49"/*key2000231*/

组播IP映射为组播MAC,得到:

取后23位即为0.72.53对应16进制为00:48:35
取后23位即为1.104.43对应16进制为01:68:2b
取后23位即为2.92.49对应16进制为02:5c:31

(2)第4包数据放的是SSID及PSW的长度。

(3)第5~15包数据放的则是SSID及PSW。

(4)第16包数据为校验码,采用连续异或校验的方式:

Crc=Crc^0x01^(byte)0x5e^0x40

以上就是本次的分享。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11216

    浏览量

    208810
  • WIFI
    +关注

    关注

    81

    文章

    5285

    浏览量

    203190
  • 配网
    +关注

    关注

    0

    文章

    153

    浏览量

    9044
  • 智能插座
    +关注

    关注

    5

    文章

    193

    浏览量

    27687
  • SmartLINK
    +关注

    关注

    0

    文章

    5

    浏览量

    2305

原文标题:分享一种实用的配网方案!

文章出处:【微信号:Linux大陆,微信公众号:Linux大陆】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    在官的WiFi/smart_config中把的任务改成个函数,为什么不能

    官方写的是任务,我想把任务改成个函数,结果发现
    发表于 06-19 06:08

    一种中频直接采样方案

    一种中频直接采样方案
    发表于 11-25 15:47

    分享一种实用的WiFi语音解决方案

    分享一种实用的WiFi语音解决方案
    发表于 05-19 06:49

    分享一种工业以太控制方案

    分享一种工业以太控制方案
    发表于 05-20 06:31

    分享一种LT4275 90W以太受电控制方案

    分享一种LT4275 90W以太受电控制方案
    发表于 05-25 07:00

    请问怎样去设计一种变自动化系统?

    怎样去设计一种基于GPRS无线通信的变自动化系统?
    发表于 05-27 07:12

    分享一种不错的无线热监测系统方案

    分享一种不错的无线热监测系统方案
    发表于 05-31 06:45

    分享一种不错的基于公共交换电话的智能家居系统的总体方案

    本文分析了智能家居的相关技术现状,提出了一种基于公共交换电话的智能家居系统的总体方案,阐述了该系统的工作原理及软硬件的设计方法与过程。
    发表于 06-15 09:13

    在官的WiFi/smart_config中把的任务改成个函数为什么不了

    官方写的是任务,我想把任务改成个函数,结果发现
    发表于 02-16 06:24

    一种基于动态蜜罐和实时仿真的蜜设计

    本文提出一种新的、基于动态蜜罐和实时仿真入侵目标的蜜设计方案,并对方案的安全性进行了分析。采用该蜜设计
    发表于 05-25 14:57 13次下载

    自动化系统混合通信方案

    提出了一种 自动化 系统混合通信方案。该方案
    发表于 08-09 16:05 25次下载
    <b class='flag-5'>配</b><b class='flag-5'>网</b>自动化系统混合通信<b class='flag-5'>方案</b>

    一种LED路灯方案

    LED路灯 光 是使光线尽可能投射到被照路面各个区域,获得符合道路照明要求的光分布,LED路灯光设计是否准确到位是其能否替代传统路灯的关键因素之。研究LED路灯光对今后
    发表于 10-17 14:32 4964次阅读
    <b class='flag-5'>一种</b>LED路灯<b class='flag-5'>配</b>光<b class='flag-5'>方案</b>

    一种基于无线传感的远程自动抄表系统的设计方案

    本文从系统构成、网络协议栈以及硬件平台等方面,介绍了一种基于无线传感的远程自动抄表系统的设计方案。该
    的头像 发表于 04-27 17:33 3975次阅读

    介绍一种神经场成对准的技术NeRF2NeRF

    我们介绍了一种神经场成对准的技术,它扩展了基于优化的经典局部准(即ICP)以操作神经辐射场(NeRF)。
    的头像 发表于 02-20 10:29 616次阅读

    一种终端电池智能检测存储装置的探索与研究

    介绍了一种终端电池智能检测存储装置,其以可编辑控制器和控制电路为主体,以继电器、触摸屏、传感器为辅助
    的头像 发表于 04-19 18:12 1072次阅读