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

    文章

    10991

    浏览量

    206736
  • WIFI
    +关注

    关注

    81

    文章

    5160

    浏览量

    199434
  • 配网
    +关注

    关注

    0

    文章

    135

    浏览量

    8976
  • 智能插座
    +关注

    关注

    5

    文章

    190

    浏览量

    27496
  • SmartLINK
    +关注

    关注

    0

    文章

    4

    浏览量

    2281

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

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

收藏 人收藏

    评论

    相关推荐

    交流变频调速系统的一种复合制动方案

    本文提出了一种回馈制动和能耗制动相结合的变频调速系统的复合制动方案,并给出了实验结果。该方案兼具能耗制动和回馈制动两种方案的优点,而且实现容易,具有安全、高
    发表于 06-09 08:32 28次下载

    专用键盘接口芯片的一种CPLD实现方案

    摘要:对用于单片机的键盘子系统的专用键盘接口芯片进行功能分析,就芯片中核心部件的时序设计进行状态描述,并利用可编程逻辑技术和原理输入方式对键盘接
    发表于 06-20 13:25 1223次阅读
    专用键盘接口芯片的<b class='flag-5'>一种</b>CPLD实现<b class='flag-5'>方案</b>

    RS编译码的一种硬件解决方案

    摘要:提出了基于欧氏算法和频谱分析相结合的RS码硬件编译码方法;利用FPGA芯片实现了GF(2 8)上最高速率为50Mbps、最大延时为640ns的流式译码方案,满足了高速
    发表于 06-20 14:19 863次阅读
    RS编译码的<b class='flag-5'>一种</b>硬件解决<b class='flag-5'>方案</b>

    微机型变压器保护的一种缺陷及改进方案

    微机型变压器保护的缺陷及改进方案   目前的微机型变压器保护,在用旁路开关带主变开关运行,或者由旁路开关恢复到主变开关运行时,保护的电流、电压回路切换,
    发表于 12-11 11:14 766次阅读

    一种移动电源方案_原理图及源程序等

    移动电源方案_里面包含原理图及源程序,方案简单实用。
    发表于 11-17 15:30 27次下载

    PCB将不仅是一种连接器,还将是一种集成解决方案

    ,PCB将不仅是一种连接器,还将是一种集成解决方案。随着苹果在其最新款iPhone中应用了基板式PCB(Substrate-Like PCB,SLP),PCB和基板制造商已经开始着手制造SLP,投资改良型半加成法技术
    发表于 07-19 17:39 1338次阅读
    PCB将不仅是<b class='flag-5'>一种</b>连接器,还将是<b class='flag-5'>一种</b>集成解决<b class='flag-5'>方案</b>

    基于SHA-256的区块链已被证明是一种灵活的解决方案

    开发团队:尽管我们距离量子计算还不到10年的时间,但许多现有系统还没有为这种变化做好准备,因为从本质上讲,这种技术以零成本黑客攻击的形式带来了巨大风险。在分散式系统中尤其重要,它要求对几乎所有类型的潜在威胁保持免疫。
    发表于 05-06 10:40 1184次阅读

    比特流发布白皮书为比特币设想了一种环保的替代方案

    比特流(BitTorrent)开发者Bram Cohen发布了一份新的白皮书,为比特币的能源密集型工作量证明共识方法设想了一种环保的替代方案。 该方案被称为“空间证明”(proof
    发表于 06-14 14:00 1242次阅读

    Pico推出一种巧妙的解决方案,多通道探针定位系统

    具有两个以上通道的示波器会给人们带来一个共同的问题:没有任何人有足够多的手来握住两个以上的示波器探针。
    的头像 发表于 05-19 11:24 2735次阅读

    一种新型解决方案:将表征学习和分类器学习分开

    针对长尾分布的图像识别任务,目前的研究和实践提出了大致几种解决思路,比如分类损失权重重分配(loss re-weighting)、数据集重采样、尾部少量样本过采样、头部过多样本欠采样,或者迁移学习。
    的头像 发表于 06-13 14:55 2634次阅读
    <b class='flag-5'>一种</b>新型解决<b class='flag-5'>方案</b>:将表征学习和分类器学习分开

    减少EMI、保持效率及空间优化的一种电源解决方案资料下载

    电子发烧友网为你提供减少EMI、保持效率及空间优化的一种电源解决方案资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 03-27 08:41 1次下载
    减少EMI、保持效率及空间优化的<b class='flag-5'>一种</b>电源解决<b class='flag-5'>方案</b>资料下载

    实现多模态的神经形态感知提供了一种新型硬件方案

    论文中,课题组以装有水的杯子为例对多模态感知进行了说明:通常对于只有压力信息的单模态感知来讲,我们只能知道杯子的形状、以及杯中的水量,并不能获悉杯中的水温。如果想同时得知杯子形状、水量以及水温,那么就得引入另一个温度模态的信息。
    的头像 发表于 07-28 09:14 1128次阅读

    针对域控制器的一种升级测试方案介绍

    本文介绍一种针对域控制器的升级测试方案,该方案基于“一种支持SOA的协议 + 传统IT的传输协议”组合实现。
    的头像 发表于 08-01 15:16 594次阅读
    针对域控制器的<b class='flag-5'>一种</b>升级测试<b class='flag-5'>方案</b>介绍

    单片机与Internct网络通信的一种具体实现方案

    电子发烧友网站提供《单片机与Internct网络通信的一种具体实现方案.pdf》资料免费下载
    发表于 10-25 10:40 3次下载
    单片机与Internct网络通信的<b class='flag-5'>一种</b>具体实现<b class='flag-5'>方案</b>

    让IoT传感器节点更省电:一种方案,令电池寿命延长20%!

    让IoT传感器节点更省电:一种方案,令电池寿命延长20%!
    的头像 发表于 11-30 17:12 379次阅读
    让IoT传感器节点更省电:<b class='flag-5'>一种</b>新<b class='flag-5'>方案</b>,令电池寿命延长20%!