博客
关于我
WIFI模块开发教程之W600网络篇7:微信小程序AP配网①
阅读量:598 次
发布时间:2019-03-12

本文共 1850 字,大约阅读时间需要 6 分钟。

前言

本文研究如何使用微信小程序对模块进行配网,采用业界公认配网率最高的softAP配网方式。

softAP配网是一种经典的配网方法,适用于各类IoT设备。其核心原理是通过将目标设备转换为AP模式,实现手机直连IoT设备的方式,将目标路由器的SSID和密码发送至手机端。这种方法配网成功率接近100%,但由于操作复杂性较高,用户需要连接IoT设备热点并手动输入SSID/Password。

一、理论基础

1.softAP配网原理

softAP配网方法的主要流程如下:

  • 热点配置:配置软AP的SSID和密码,并指定目标路由器的网关IP和子网掩码
  • 设备配网确认:通过UDP协议发送配置信息,等待目标设备响应
  • 响应处理:接收设备返回的配置响应信息,并完成配网设置
  • 尽管这种方法简单可靠,但需要用户具备一定的技术水平才能完成手动操作。传统配网方式虽然稳定,但由于手动操作复杂,往往会带来额外的使用成本。

    2微信小程序开发基础

    微信小程序的主要文件类型及特点:

    • app.json:应用程序的配置文件,包含页面组成、窗口样式等全局设置
    • app.js:应用程序的入口文件,主要用于全局变量声明和生命周期函数处理
    • app.wxss:应用程序的样式文件,定义全局CSS样式
    • app.wxml:应用程序的布局文件,类似于HTML文件

    小程序的核心特点在于基于物联网设备管理的高度定制化,支持多种开发方式,包括组件化开发等。

    2.1 JS配网功能实现

    小程序配网功能的主要实现方式:

  • 创建UDP socket实例
  • 绑定本地网络接口
  • 发送包含SSID和密码的配置信息
  • 接收设备返回的配置响应信息,更新小程序UI界面
  • 具体实现过程如下:

    function startConfig(e) { const udp = wx.createUDPSocket() udp.bind() const sendObj = { 'ssid': this.data.ssid, 'password': this.data.password } const message = JSON.stringify(sendObj) udp.send({ address: '192.168.1.255', port: 20032, message: message }) udp.onListening((res) => { console.log('UDP socket已打开') console.log(res) }) udp.onMessage((res) => { const decodedString = window.decodeURIComponent(window.escape(String.fromCharCode.apply(null, res.message.data))) this.setData({ config_res: decodedString }) }) }

    二、使用实例

    1.程序分析

    1.1配网界面配置

    小程序配网界面主要包含以下功能:

    - 实时显示SSID和密码输入状态 - 显示配网进度和详细日志 - 支持手动刷新设备列表 - 显示配网成功后的验证结果

    1.2配网功能在手机端实现

    小程序配网本质上会调用底层的UDP socket API来完成设备配置。以下是配网功能的详细实现步骤:

    1.3部署步骤
  • 下载并安装网络调试助手
  • 绑定目标设备的固定的IP地址和20032端口
  • 在小程序中输入路由器的SSID和密码
  • 点击"开始配网"按钮触发UDP发送操作
  • 等待设备响应并更新配网结果
  • 三、运行

    1.网络调试助手设置

    网络调试助手的配置方式如下:

    - 打开工具页面,选择合适的网络接口 - 设置静态IP地址为目标设备的IP - 特别注意防火墙设置,确保UDP端口20032在系统防火墙中开放

    2.小程序实际配网效果

    通过上述步骤,小程序将完成以下操作:

    - 使用UDP协议发送配置信息至目标设备 - 根据设备响应更新小程序界面显示 - 显示配网配成功状态及相关配置信息

    四、注意事项

    1.操作注意事项

    - 确保设备已经连接到同一局域网 - 确保小程序和网络调试助手处于同一个子网段 - 注意检测网络接口是否有误导性配置(如多个网卡) - 验证输入的SSID和密码是否正确

    达到上述优化要求后,这篇文章将更贴近技术文档的写作风格,信息更加紧凑且专业。同时,通过清晰的段落结构,便于搜索引擎进行内容分类分析和优化。

    转载地址:http://bahtz.baihongyu.com/

    你可能感兴趣的文章
    Python和RF编写web自动化
    查看>>
    python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
    查看>>
    python和java哪个更值得学——来自知乎高赞回答
    查看>>
    python和c混合编程 github_在pycharm中使用git版本管理以及同步github的方法
    查看>>
    python命名空间更改_Python模块xml.etree.ElementTree自动修改xml命名空间键
    查看>>
    Python命名中尾随下划线有什么好处?
    查看>>
    Python启动脚本
    查看>>
    Python听写汇总结果
    查看>>
    python吊打Excel?屁!那是你不会用!
    查看>>
    Python合并两张图片 | 先叠透明度再合并 (附Demo)
    查看>>
    python各进制的表述与转换
    查看>>
    python各种库安装
    查看>>
    python可视化matplotlib_如何使用Python中最强大的可视化工具Matplotlib?
    查看>>
    python可维护性_使用这7大神器,让你的Python 代码更容易于维护
    查看>>
    Python只运行一次while循环
    查看>>
    python变量的详细教程_Python零基础入门教程之语法入门[变量](第二期)
    查看>>
    Python变量命名方法-ChatGPT4o作答
    查看>>
    Python变量与运算符
    查看>>
    Python变量/运算符/函数/模块/string
    查看>>
    python发送邮件的时候出现 error (535, b‘5.7.3 Authentication unsuccessful‘) 解决方法
    查看>>