android : 2、从头开始开发一个控制硬件的app(给设备联网)

时间:2024-03-21 21:51:17

  能远程控制的设备,一般都有内置芯片来接受信号。以前的设备,像空调之类的,一般内置GSM芯片,能接受手机短信信号。更据处理信号,可以做出不同的远程操作。现在的 一般都内置WIFI芯片,可以说就具有了联网功能,可以通过网络达到控制的目的。

那么问题来了,怎么联网?

 

1、串口配置

大部分wifi芯片都支持串口命令控制wifi芯片的所有功能。这时候就需要通过串口命令区控制wifi芯片了。这个就需要文档来对照操作。

2、ap模式下的网页形式配置

ap (所谓ap模式就是把wifi芯片启动成像路由器一样,可以让其他wifi终端连接到这个wifi芯片)模式下的网页形式是通过wifi终端手动搜索wifi芯片开的ap服务,然后连接该wifi芯片。接着在wifi终端打开浏览器,访问wifi芯片的地址(比如: http://192.168.0.1 ),由于wifi芯片本来支持ap模式,它已经是一个简单的网站服务,通过这网页去获取权限设置wifi芯片提供的设置项服务,比如重启连接到路由器等等。

3、smartconfig

smartconfig 是一个面向软件开发者的智能网络配置功能。硬件开发商无需关系自己的wifi芯片怎么连接到路由器,也无需知道动态的路由怎么被切换。因为smartconfig时通过终端软件去让wifi芯片连接到路由器的。具体实现原理参考:智能硬件接入云平台解决方案

4、微信硬件平台

微信硬件平台里边有一个叫做airkiss 技术,下面的两个产品都支持这个技术,对于实现智能网络配置功能,它是一个相对完美的平台和方案.详细的学习请自行进平台官网看文档.

 

如果不考虑接入其他平台,以传统的方式来给设备配网的话,常用第2/3种,更多是第3中,毕竟更先进,速度更快。

现在这里着重介绍 第2种 和 第3种 方式:

ap模式

原理如图所示:

APP 配置 手机连接到 智能硬件(WIFI芯片 的AP),构建成一个局域网

android : 2、从头开始开发一个控制硬件的app(给设备联网)

 

连接步骤:

a. 初始化智能硬件,使智能硬件设备进入 AP 状态

b. 手机切换 WiFi:接入上述 设备出现的 WiFi 名字(SSID)的网络

c. 手机相应软件上设置要接入的无线网络(WiFi 名字和密码)

d. 设备根据手机软件输入设定的 WiFi 配置信息连入当前的无线网络(手机端不需要操作)

e. 手机切回正常的 WiFi,配置完成后会发现新添加的设备

 

smartconfig「一键配置」

原理如图所示:

智能硬件处于混杂模式下,监听网络中的所有报文;手机APP将SSID和密码编码到UDP报文中,通过广播包或组播报发送,智能硬件接收到UDP报文后解码,得到正确的SSID和密码,然后主动连接指定SSID的路由,完成连接

android : 2、从头开始开发一个控制硬件的app(给设备联网)

 

a. 手机连上 WiFi,开启 APP 软件,点击"添加新设备",进入配置界面,输入手机所在 WiFi 密码,点击配置

b. 设备根据输入的 WiFi 配置信息(SSID 和密码)连入 WiFi(手机端不需要操作)

c. 配置完成后 手机软件上会发现新添加的设备

附上一个Jar包下载:https://github.com/xuhongv/XSmartConfig-master/raw/master/Asset/XSmartConfig_V1.0.jar

 

感谢下面这些博客:

文章借鉴:https://blog.csdn.net/xh870189248/article/details/79328257

                  https://segmentfault.com/a/1190000008438750

                  https://www.jianshu.com/p/a852d5ca6a44