admin 管理员组

文章数量: 887017

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

一、背景知识
1、WiFi模块

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

综合测试

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


二、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、实物图


三、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列表



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



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



4、登陆后看到界面是



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



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



在这里说明一下,为什么只输入上网的WiFi密码,没有配置端口。因为没有配置端口,到时开发还是默认端口8899。 第4那个步骤可以看到,还有其他选项,例如sta设置,ap设置,网络设置,串口设置等等都可默认,有兴趣可以去设置一下。

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



在上面可以看出来,最后一个就是我配置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()));


结束语:

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

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

本文标签: 模块 Android WiFi