SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

蹉跎莫遣韶光老,人生唯有读书好。这篇文章主要讲述SWA2G422& 485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制相关的知识,希望能为你提供帮助。
 

 
 
说明
上一节演示了W5500实现MQTT通信控制
通过上一节咱知道
W5500订阅的主题为:user/W5500的MAC地址
W5500发布的主题为:device/W5500的MAC地址
这节演示下APP利用APMACBind方式获取W5500的MAC地址,进而做到和W5500实现MQTT通信
APMACBind方式介绍
(只沿着别人的脚步,只会故步自封!咱需要有创造性的解决问题!)
APMACBind是我自己做的一种方式,这种方式目前有一个项目在使用.
不过那是前年做的项目,当时是为了解决微信配网绑定问题
不过自从微信小程序支持了UDP,这种方式也被我淘汰(在我心底被淘汰了,有了更为简便的方式)
不过还是有必要拿出来讲一下,因为这种方式比较经典!体现了知识的灵活运用.
 
首先说明简要说明一下如何实现的让手机APP获取W5500的MAC地址
1.W5500连接路由器,连接上MQTT
2.W5500获取路由器的MAC地址
3.W5500发布的主题:device/路由器MAC
4.手机APP和W5500连接一个路由器
5.手机APP获取路由器MAC地址
6.手机APP订阅:user/路由器MAC
这样W5500就能够把自身的MAC地址通过MQTT发给手机APP,实现绑定
至于为什么用路由器的MAC地址作为主题(因为唯一)
所有用户都用一个MQTT服务器,我需要保证同时绑定的时候互不干扰
W5500获取路由器MAC使用的是arp,我没有找到别的简便方式.....学艺不精....
演示这节的功能
一,设备上电,网线连接路由器

SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
二,下载单片机程序
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

三,安装手机APP
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
 
通过APMACBind绑定W5500
一,选择添加设备
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
  二,请确保自己的手机连接了路由器(和W5500连接的同一个)
连接路由器以后,将自动显示路由器的MAC地址
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
三,确定开发板指示灯是否是1S闪耀
 
注:1S闪耀说明开发板连接了MQTT,APMACBind需要借助MQTT,
所以需要先保证开发板连接上了MQTT服务器
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
 
 
 
三,长按开发板的 PB5 按钮,直至指示灯快闪
注:闪耀频率加快
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

四,点击APP上的 添加设备 按钮
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
五,搜索成功以后 自动跳转到主页面 并显示绑定的设备
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
 
 
 
 
测试
一,点击设备进入控制页面
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
二,控制第一路继电器吸合
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
三,控制第二路继电器吸合
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
单片机源码说明(流程说明)
注:这节代码只是在上一节的基础上增加的功能,只叙述这节增加的功能
1.1点击按钮3S左右,获取路由器MAC地址,并订阅主题

SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
1.2 订阅主题成功以后,每隔1S通过MQTT发送W5500自身的MAC地址信息
发布的主题为: device/路由器的MAC地址
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
1.3 超时(60S),或者收到APP发来的  "{\\"bind\\":\\"success\\"}" 信息以后停止发送信息
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
单片机源码说明(ARP说明)
一,我是利用arp获取的路由器的MAC地址信息
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

二,为了获取路由器的MAC,ARP的远端IP我写的网关
咱先前在DHCP的时候获取了网关.
因为咱的W5500连接的路由器,路由器的IP就是网关
 
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
 
 
 
 
APP源码说明
一,进入绑定页面,监听网络信号改变的广播,然后获取手机APP连接的路由器的MAC地址
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
二,点击添加设备以后
1.订阅主题 device/路由器的MAC地址
2.显示等待对话框
3.启动绑定超时
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
 
 
三,获取到W5500发来的信息
 
1.提取MAC地址信息,携带信息跳转到主页面
 
SWA2G422&485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制

文章图片

 
 
 
 
 
 
 
 
 
 
 
 
 
 
【SWA2G422& 485JK2G基础篇: 手机APP通过APMACBind方式绑定W5500(以太网)设备,实现MQTT远程通信控制】 

    推荐阅读