Android开发—智能家居系列】(二):用手机对WIFI模块进行配置

简介:

  在实际开发中,我开发的这款APP是用来连接温控器,并对温控器进行控制的。有图为证,哈哈。 
这里写图片描述

  上一篇文章【Android开发—智能家居系列】(一):智能家居原理 的文末总结中写到: 
手机APP控制智能温控器就两步:一是通过手机,让WIFI模块接入网络,而是通过网络,使用手机对模块发送指令。在这篇文章中,我们来介绍第一个步骤。

【时序图】

  这里写图片描述

【概念】

【两种模式】:

AP:即无线接入点,是一个无线网络的中心节点。通常使用的无线路由器就是一个AP,其它无线终端可以通过AP相互连接。

这里写图片描述

STA:即无线站点,是一个无线网络的终端。如笔记本电脑、PDA等。

这里写图片描述

【两个端口】

48899端口:我所用的WIFI模块(USR-WIFI232-S)的端口 
49000端口:除去我用的WIFI(USR-WIFI232-S)模块,其他WIFI模块的端口

【IP地址】

广播地址:X.X.X.255(如:255.255.255.255) 
WIFI模块默认IP:10.10.100.254 
接入路由器之后,由路由器动态分配的IP。

【实现过程描述】

使用UDP广播方式搜索wifi模块

  • 第一阶段是在WIFI模块处于AP模式下,对其进行搜索。
  • 第二阶段是在WIFI模块处于STA模式下,对其进行搜索。

第一阶段: 
模块工作在AP模式下时,会开启一个用于接收“快速联网协议命令”的UDP端口,端口号为48999(出厂设置默认IP为10.10.100.254)

  1. 通过UDP广播(广播地址:x.x.x.255,端口48899),发送HF-A11ASSISTHREAD(该口令可用AT+ASWD命令设置) 
    (这里也可以用单播的形式搜索,目的地址:10.10.10.254,端口48899,命令不变)
  2. 模块收到指令后,如果口令正确,向源地址(单播:端口48899)发送IP地址、Mac地址和模块名称。
  3. 收到模块返回的IP地址及MAC地址后,立即回送一个“+ok”,模块收到后进入连接状态。
  4. 进入连接状态后,模块可以正常接收网络AT指令。 如:设置网络协议参数:AT+NETP=TCP,CLIENT,30000,X.X.X.X 设置STA的网络参数:AT+WANN=DHCP

过渡阶段:

  1. UDP广播(端口:49000)发送指令ff 00 01 01 02(十六进制)
  2. 模块收到指令后返回路由列表
  3. 将用户选择的SSID(路由名称)和密钥发送给模块(端口:49000),模块连入此路由,转化成STA模式,并回送一个指令ff 00 03 82 01 01 87

第二阶段: 
 
在STA模式下,我们要找到此WIFI模块,并对其发送开、关等操作指令。步骤同第一阶段,但是返回的IP地址会不一样。模块作为STA链接到路由中,以为此时模块的IP地址是由路由器分配的,不是确定IP地址,所以手机无法与模块建立连接,故需要采用广播搜索,获取到模块在STA模式下的地址。

【总结】

  有了基本的思路,了解并熟悉整个连接和通信过程,接下来就是比较简单的和基础的部分了,包括UDP通信以及字符和十六进制之间的转换等基本功了。整个开发过程中,对以上内容的理解是一点一点来的,刚开始组长给我讲一遍什么都不明白,给了我一堆资料和工具也不知道怎么用,但是开发着开发着就搞清楚了。开发过程中还请教了WIFI模块生产公司的工程师,解决了我的问题。遇到问题时,还是要多想办法,总会有解决的办法,看你有没有决心和信心要把它解决出来。


    本文转自 一点点征服   博客园博客,原文链接:

http://www.cnblogs.com/ldq2016/p/6774156.html

,如需转载请自行联系原作者




相关文章
|
5月前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
4574 2
|
29天前
|
传感器 数据采集 移动开发
基于STM32的智能手环wifi连接手机APP(下)
基于STM32的智能手环wifi连接手机APP(下)
67 0
|
29天前
|
传感器 存储 编解码
基于STM32的智能手环wifi连接手机APP(上)
基于STM32的智能手环wifi连接手机APP(上)
52 0
|
6月前
|
Android开发
Android 状态栏WiFi图标的显示逻辑
Android 状态栏WiFi图标的显示逻辑
156 0
|
6月前
|
监控 安全 数据处理
构建未来:基于安卓的智能家居控制系统
【5月更文挑战第27天】 随着物联网技术的飞速发展,智能家居已步入寻常百姓家。本文将探讨如何利用安卓平台开发一个高效、易用的智能家居控制系统。系统通过结合现代设计理念与先进的安卓开发技术,实现对家中智能设备的集中控制和管理,不仅提高了居住舒适度,还确保了能源的高效使用。文中详细介绍了系统架构、关键模块设计以及面临的安全挑战,并对未来可能的发展方向进行了展望。
|
6月前
|
缓存 安全 物联网
构建未来:基于Android的智能家居控制系统开发
【5月更文挑战第27天】 随着物联网技术的蓬勃发展,智能家居系统作为其重要分支,正逐步渗透到人们的日常生活中。本文旨在探讨并实现一个基于Android平台的智能家居控制系统,通过分析系统需求、设计架构以及具体实现过程,展现如何利用现代移动开发技术与物联网设备进行有效集成,以提升居住环境的智能化水平。文中不仅详细阐述了系统的设计理念和功能模块,还对关键技术如设备通信协议、用户界面设计和后台服务管理进行了深入讨论。
|
6月前
|
Android开发
Android获取当前连接的wifi名称
Android获取当前连接的wifi名称
322 6
|
6月前
|
Android开发
android连接指定wifi
android连接指定wifi
101 0
|
6月前
|
Java Android开发
Android 9在连接以太网情况下 还能连接WiFi
Android 9在连接以太网情况下 还能连接WiFi
62 0
|
6月前
|
Android开发
Android12 ethernet和wifi共存
Android12 ethernet和wifi共存
360 0