【Android开发—智能家居系列】(二):用手机对WIFI模块进行配置
【Android开发—智能家居系列】(二):用手机对WIFI模块进行配置
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010924834/article/details/49496729
在实际开发中,我开发的这款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)
- 通过UDP广播(广播地址:x.x.x.255,端口48899),发送HF-A11ASSISTHREAD(该口令可用AT+ASWD命令设置)
(这里也可以用单播的形式搜索,目的地址:10.10.10.254,端口48899,命令不变) - 模块收到指令后,如果口令正确,向源地址(单播:端口48899)发送IP地址、Mac地址和模块名称。
- 收到模块返回的IP地址及MAC地址后,立即回送一个“+ok”,模块收到后进入连接状态。
- 进入连接状态后,模块可以正常接收网络AT指令。 如:设置网络协议参数:AT+NETP=TCP,CLIENT,30000,X.X.X.X 设置STA的网络参数:AT+WANN=DHCP
过渡阶段:
- UDP广播(端口:49000)发送指令ff 00 01 01 02(十六进制)
- 模块收到指令后返回路由列表
- 将用户选择的SSID(路由名称)和密钥发送给模块(端口:49000),模块连入此路由,转化成STA模式,并回送一个指令ff 00 03 82 01 01 87
第二阶段:
在STA模式下,我们要找到此WIFI模块,并对其发送开、关等操作指令。步骤同第一阶段,但是返回的IP地址会不一样。模块作为STA链接到路由中,以为此时模块的IP地址是由路由器分配的,不是确定IP地址,所以手机无法与模块建立连接,故需要采用广播搜索,获取到模块在STA模式下的地址。
【总结】
有了基本的思路,了解并熟悉整个连接和通信过程,接下来就是比较简单的和基础的部分了,包括UDP通信以及字符和十六进制之间的转换等基本功了。整个开发过程中,对以上内容的理解是一点一点来的,刚开始组长给我讲一遍什么都不明白,给了我一堆资料和工具也不知道怎么用,但是开发着开发着就搞清楚了。开发过程中还请教了WIFI模块生产公司的工程师,解决了我的问题。遇到问题时,还是要多想办法,总会有解决的办法,看你有没有决心和信心要把它解决出来。
【Android开发—智能家居系列】(二):用手机对WIFI模块进行配置相关推荐
- 【Android开发—智能家居系列】(三):手机连接WIFI模块
[Android开发-智能家居系列](三):手机连接WIFI模块 概述 实现连接WIFI的功能会用到一个工具类,源码可以点击链接下载.网上这些类似的工具类里的代码差不多是一样的.连接无线网主要有两个方 ...
- 【Android开发—智能家居系列】(一):智能家居原理
来到JCZB公司的第二天,就接到了开发类似于小米智能家庭APP的任务.组长让我在手机上安装上此款APP,给了我个小米智能插座,就让我开始了解需求.这便开启了我的智能家居旅程.说实话,我也真是out的无 ...
- 【Android开发—智能家居系列】(四):UDP通信发送指令
思路回顾 [1]手机连接WIFI模块 [2]UDP通信对WIFI模块发送指令,以和WIFI模块保持连接状态 [3]UDP通信对WIFI模块发送指令,让其搜索可用的无线网,返回WIFI列表 [4]发送指 ...
- 用手机对WIFI模块进行配置
在实际开发中,我开发的这款APP是用来连接温控器,并对温控器进行控制的.有图为证,哈哈. 上一篇文章[Android开发-智能家居系列](一):智能家居原理 的文末总结中写到: 手机APP控制智能 ...
- 很酷的智能家居/工业路由器两用的物联网WiFi模块 MQTT/TCP协议 MIPS+LINUX+Openwrt技术覆盖
MT7688 支持两种运作模式:IoT gateway 模式与 IoT device 模式. 在 IoT gateway 模式中,可透过 PCIe 界面连接至 802.11ac 芯片组,并作为双频 8 ...
- Android开发笔记(一百二十六)自定义音乐播放器
MediaRecorder/MediaPlayer 在Android手机上面,音频的处理比视频还要复杂,这真是出人意料.在前面的博文< Android开发笔记(五十七)录像录音与播放>中, ...
- 智能家居系列之智能家居平台设计
系列介绍 很久没有写文章了,近来断断续续地在思考一些东西.在去工作的地铁上,终于想好,决定分享自己在智能家居方面的思考.本系列文章计划分为7部分,不排除会对部分内容合并. 智能门锁 中控屏 智能音箱 ...
- 最全Android 开发和安全系列工具
[阿里聚安全出品]史上最全Android 开发和安全系列工具 作者 菜刀文 关注 2017.02.20 00:08 字数 4554 阅读 725评论 1喜欢 29 作者:阿里聚安全 地址:https: ...
- android 智能家居 pdf,基于Android的智能家居系统设计与实现.pdf
1引言 随着我国互联网技术不断的发展, 给IT行业带来了新的 春天.越来越多的企业加入了互联网的发展浪潮, 使得智能 家居得到了飞速的发展.网络已经成为我们生活中必不可 少的部分, 网络电视. 网络空 ...
最新文章
- 为什么对 Java 性能调优最后都像在调 you?
- WINCE6.0+S3C6410基于SD卡启动
- 【完结】优秀的深度学习从业者都有哪些优秀的习惯
- Redux其实很简单(原理篇)
- 什么是“GB/T ”? 计算机术语你又知道多少? 想不想别人听不懂的语言搞定别人!...
- mongo 多条件筛选_excel成本统计:如何进行区域筛选,多条件求和?
- Spark生态圈及安装
- 实现jdbc连接mysql_Java JDBC连接MYSQL数据库教程(实现)
- CIKM2021推荐系统论文集锦
- 笔记 || css字体word字体大小对照表
- 美团java后端_美团笔试题(Java后端5题2小时)(示例代码)
- 解决win10新建文本文档内容可以打开但显示图标不对的问题
- 2012服务器清理系统盘,windows2012磁盘清理
- 服务器怎么用固态盘安装系统,服务器使用固态盘安装
- 自动驾驶分级 - 练习测验
- 倾听:不只是听见(倾听有哪些挑战?如何利用倾听技巧更好的理解他人)
- 客户端与服务器的理解
- “毕业季”|一个java开发实习生的OFFER之路
- Linux中,常常会用到 vim ,其中 q ,wq wq!的区别,以及 vim -r 的作用
- Window安装Prometheus
热门文章
- 英业达软件测试工程师,「天津英业达软件测试工程师」面试招聘|工资待遇 - 看准网...
- 回溯算法 思路清晰,通俗易懂!!!!!!!
- python mssql bulk_SqlBulkCopy:批量插入SqlServer的利器
- matlab直扩序列生成,基于matlab的直接序列扩频通信系统仿真毕业论文
- 多项式辗转相除法求最大公约数_多项式的一些性质
- 统计分组的原则是要体现什么_跨境选品有哪些方法,要遵循什么原则?
- LeetCode 141. Linked List Cycle (链表循环)
- python爬虫爬取页面源码在本页面展示
- js中元素(图片)切换和隐藏显示问题
- 贺岁喜剧《高兴》山寨歌舞大狂欢 陕西话的RAP