【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)

  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模块生产公司的工程师,解决了我的问题。遇到问题时,还是要多想办法,总会有解决的办法,看你有没有决心和信心要把它解决出来。

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

  1. 【Android开发—智能家居系列】(三):手机连接WIFI模块

    [Android开发-智能家居系列](三):手机连接WIFI模块 概述 实现连接WIFI的功能会用到一个工具类,源码可以点击链接下载.网上这些类似的工具类里的代码差不多是一样的.连接无线网主要有两个方 ...

  2. 【Android开发—智能家居系列】(一):智能家居原理

    来到JCZB公司的第二天,就接到了开发类似于小米智能家庭APP的任务.组长让我在手机上安装上此款APP,给了我个小米智能插座,就让我开始了解需求.这便开启了我的智能家居旅程.说实话,我也真是out的无 ...

  3. 【Android开发—智能家居系列】(四):UDP通信发送指令

    思路回顾 [1]手机连接WIFI模块 [2]UDP通信对WIFI模块发送指令,以和WIFI模块保持连接状态 [3]UDP通信对WIFI模块发送指令,让其搜索可用的无线网,返回WIFI列表 [4]发送指 ...

  4. 用手机对WIFI模块进行配置

    在实际开发中,我开发的这款APP是用来连接温控器,并对温控器进行控制的.有图为证,哈哈.  上一篇文章[Android开发-智能家居系列](一):智能家居原理 的文末总结中写到:  手机APP控制智能 ...

  5. 很酷的智能家居/工业路由器两用的物联网WiFi模块 MQTT/TCP协议 MIPS+LINUX+Openwrt技术覆盖

    MT7688 支持两种运作模式:IoT gateway 模式与 IoT device 模式. 在 IoT gateway 模式中,可透过 PCIe 界面连接至 802.11ac 芯片组,并作为双频 8 ...

  6. Android开发笔记(一百二十六)自定义音乐播放器

    MediaRecorder/MediaPlayer 在Android手机上面,音频的处理比视频还要复杂,这真是出人意料.在前面的博文< Android开发笔记(五十七)录像录音与播放>中, ...

  7. 智能家居系列之智能家居平台设计

    系列介绍 很久没有写文章了,近来断断续续地在思考一些东西.在去工作的地铁上,终于想好,决定分享自己在智能家居方面的思考.本系列文章计划分为7部分,不排除会对部分内容合并. 智能门锁 中控屏 智能音箱 ...

  8. 最全Android 开发和安全系列工具

    [阿里聚安全出品]史上最全Android 开发和安全系列工具 作者 菜刀文 关注 2017.02.20 00:08 字数 4554 阅读 725评论 1喜欢 29 作者:阿里聚安全 地址:https: ...

  9. android 智能家居 pdf,基于Android的智能家居系统设计与实现.pdf

    1引言 随着我国互联网技术不断的发展, 给IT行业带来了新的 春天.越来越多的企业加入了互联网的发展浪潮, 使得智能 家居得到了飞速的发展.网络已经成为我们生活中必不可 少的部分, 网络电视. 网络空 ...

最新文章

  1. 为什么对 Java 性能调优最后都像在调 you?
  2. WINCE6.0+S3C6410基于SD卡启动
  3. 【完结】优秀的深度学习从业者都有哪些优秀的习惯
  4. Redux其实很简单(原理篇)
  5. 什么是“GB/T ”? 计算机术语你又知道多少? 想不想别人听不懂的语言搞定别人!...
  6. mongo 多条件筛选_excel成本统计:如何进行区域筛选,多条件求和?
  7. Spark生态圈及安装
  8. 实现jdbc连接mysql_Java JDBC连接MYSQL数据库教程(实现)
  9. CIKM2021推荐系统论文集锦
  10. 笔记 || css字体word字体大小对照表
  11. 美团java后端_美团笔试题(Java后端5题2小时)(示例代码)
  12. 解决win10新建文本文档内容可以打开但显示图标不对的问题
  13. 2012服务器清理系统盘,windows2012磁盘清理
  14. 服务器怎么用固态盘安装系统,服务器使用固态盘安装
  15. 自动驾驶分级 - 练习测验
  16. 倾听:不只是听见(倾听有哪些挑战?如何利用倾听技巧更好的理解他人)
  17. 客户端与服务器的理解
  18. “毕业季”|一个java开发实习生的OFFER之路
  19. Linux中,常常会用到 vim ,其中 q ,wq wq!的区别,以及 vim -r 的作用
  20. Window安装Prometheus

热门文章

  1. 英业达软件测试工程师,「天津英业达软件测试工程师」面试招聘|工资待遇 - 看准网...
  2. 回溯算法 思路清晰,通俗易懂!!!!!!!
  3. python mssql bulk_SqlBulkCopy:批量插入SqlServer的利器
  4. matlab直扩序列生成,基于matlab的直接序列扩频通信系统仿真毕业论文
  5. 多项式辗转相除法求最大公约数_多项式的一些性质
  6. 统计分组的原则是要体现什么_跨境选品有哪些方法,要遵循什么原则?
  7. LeetCode 141. Linked List Cycle (链表循环)
  8. python爬虫爬取页面源码在本页面展示
  9. js中元素(图片)切换和隐藏显示问题
  10. 贺岁喜剧《高兴》山寨歌舞大狂欢 陕西话的RAP