admin管理员组文章数量:1530910
声波配网,即通过手机发出声波,将ssid、password等信息传给设备的一种配网方式。适用于没有触屏或触屏较小不易于信息输入,但是拥有麦克风的智能设备,如智能音箱、智能家庭助手等。其优点是配网速度快、可人耳感知,缺点是受环境干扰较大。
实现声波配网,首先需要一套特定的算法库(我司有专门的算法部门在做,由于保密的原因,算法库不能公开),算法库分手机端和设备端两部分。手机端算法库将ssid信息由字符串转化为声音信号(PCM),然后将声音信号通过音频模块播放出来。同时,设备端录下这一段声音,然后用同一套算法库将声音信息解析出来,还原成原来的ssid信息(字符串),最后用解析到的ssid信息用于连接wifi。
声波配网主要流程如下:
(1)首先,在手机(或平板等其它一代设备)输入ssid信息(或获取当前或系统保存的ssid信息),使用我司提供的算法库,将信息由buffer编码为pcm数据;
(2)将使用算法库编码出来的pcm数据通过喇叭播放出来,同时,设备端打开录音,捕获pcm数据;
(3)设备端将pcm数据通过算法库解码回原来的buffer数据;
(4)从数据中解析出ssid、password等信息,并将其用于连接路由器。
编解码可选择范围分为低频、中频、高频三种,其中低频的频率范围为2K~5K,中频的范围为8K~12K,高频的范围为16K~20K。频率越高,声音越尖锐,抗噪性能越强。
手机端实现
此处已Android端实现为例。
在Android系统上实现声波配网时,需要通过jni调用我司提供的算法库。
接收端的代码由于用的是我司自己做的系统,代码不能公开,而写出来也没有意义,总的一个实现思路就是,接收声波,并将声波用算法库转换会原来的ssid等信息。
package com.aw.soundauthenticationtest;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import com.aw.SoundAuthentication;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.wifi.WifiInfo;
import android.wifi.WifiManager;
import andro
版权声明:本文标题:声波配网:通过特定的声波序列将wifi密码发到无屏幕的设备上 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1726807662a1085193.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论