在过去的接近两个月,接了两个小小的物联网项目外包,所以对WiFi模块配置以及开发有了一定的研究。那么今天来说一下物联网WIFI模块配置。研究是基于STM32 智能家居开发的。

一、背景知识

1、WiFi模块

本开发板默认已经烧写了手机WIFI的测试软件,wifi模块工作在AP模式,TCP server ,ip是10.10.100.254,端口是8899。

综合测试

手机WIFI综合  android手机通过WIFI与开发板互相通讯,发送数据。

android 物联网数据传输的wifi android物联网教程_IP

二、WiFi模块底板功能介绍

1、重置系统参数:(开发模式一:AP模式)

通电以后,按 按键 > 3秒,Ready和Link灯灭,随后Ready灯亮。系统恢复到出厂参数。

工作于AP模式,IP:10.10.100.254,端口:8899, TCP Server。

2、smart Link智能接入已有wi-fi网络:(开发模式二:

STA模式 )

通电以后,按 按键 < 3秒,Ready灯灭,Link灯快闪,这时候手机操作SmartLink软件,推送

现有wi-fi网络的配置信息(SSID,密码等)到wi-fi模块,完成智能配置。配置成功后,wi-fi模块

采用dhcp的方式获得现有wi-fi网络的ip, Ready灯和Link灯亮,进入 STA模式 工作状态。

3、通过互联网局域网中WiFi模块的方法(这点也是和第2点开发一起的)

开发板硬件作为服务器,设有固定的IP,通过无线 连接到 无线路由器,在路由器上设置转发规则,内容为这个固定的IP和端口20108,同时在路由器的DDNS中设置启动动态域名系统,这样手机程序就可以通过3G网络输入动态域名连接到局域网内的开发板上就行通讯了。

4、实物图

android 物联网数据传输的wifi android物联网教程_IP_02

三、WiFi模块AP模式

AP模式:是不用配置路由器的,用WiFi模块发出的热点,用手机连上去就行了。这个模式密码一般都为空的。也是出厂模式吧。

开发建议:很简单的。因为默认IP:10.10.100.254,端口8899。部分代码如下

socket = new Socket();
SocketAddress socketAddress = new InetSocketAddress("10.10.100.254.",8899);
socket.connect(socketAddress,2000);
socket.setSoTimeout(2000);
socket.setTcpNoDelay(true);
dis = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
dos = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()));

这样写好其他代码,Android手机与WiFi模块之间就可以数据的双向通信了。

四、

WiFi模块

STA模式

这个模式要一系列的配置,实现手机通过路由器转发数据到WiFi模块,所以基于这种情况,要把WiFi模块配置到你的局域网路由器上,只要那里有你的WiFi模块配置的IP地址了。就可以转发了,这时你的手机就可以连接路由器的WiFi或者手机网络来进行通信了。接下来先用手机配置WiFi模块,就是连上WiFi模块,然后打开手机上的浏览器输入10.10.100.254;然后输入用户名和密码都是admin。然后搜索路由,找到你的路由,连接,输入平时你和搜集WiFi上网路由器的密码。重启就成功。最后用电脑登陆你的路由器配置,可以查看是否连接成功。以及配置成功后的WiFi模块在路由器上的IP地址。

1、打开你的手机WiFi列表

android 物联网数据传输的wifi android物联网教程_IP_03

2、连接WiFi模块的WiFi,是第二个没有密码的。


android 物联网数据传输的wifi android物联网教程_android+wifi物联网吗_04

3、打开手机上的浏览器输入10.10.100.254

android 物联网数据传输的wifi android物联网教程_IP_05

4、登陆后看到界面是

android 物联网数据传输的wifi android物联网教程_数据_06

5、点击搜索,找到我的路由器,名称MA那个。点击,确定

android 物联网数据传输的wifi android物联网教程_开发板_07

6、输入你平时在激励WiFi上网的密码,重启就可以。

android 物联网数据传输的wifi android物联网教程_开发板_08

在这里说明一下,为什么只输入上网的WiFi密码,没有配置端口。因为没有配置端口,到时开发还是默认端口8899。

第4那个步骤可以看到,还有其他选项,例如sta设置,ap设置,网络设置,串口设置等等都可默认,有兴趣可以去设置一下。

7、在电脑查看你路由器配置,是否有WiFi模块

android 物联网数据传输的wifi android物联网教程_数据_09

在上面可以看出来,最后一个就是我配置WiFi模块在路由器上了吧,第二个是我手机连接的。

那么开放时候输入连接的ip地址就是:192.168.0.103,之前说了,还是默认端口8899,因为我没有重新配置端口。

开放代码跟上一样,改一下IP地址,通信也一样,输出流输入流,高度哦socket开发的都知道了。

socket = new Socket();
SocketAddress socketAddress = new InetSocketAddress("192.168.0.103",8899);
socket.connect(socketAddress,2000);
socket.setSoTimeout(2000);
socket.setTcpNoDelay(true);
dis = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
dos = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()));

结束语:

到这里就结束,如果反应有需要的。我就再写一篇电脑用串口助手与手机端数据收发调试文章

对于我在大学学过硬件,搞过。还是有研究的。