zoukankan      html  css  js  c++  java
  • ESA2GJK1DH1K微信小程序篇: 微信小程序APUConfig给WI-Fi模块配网并绑定设备,并通过MQTT控制设备(ESP8266_SDK开发版)

    前言

     有多少人一直在期盼着小程序可以实现SmartConfig或者Airkiss的功能? 来吧!我的这种方式包您满意.

     注:APUConfig 是我自己取的名字(哈哈谁让这种方式,我是第一个在微信小程序上实现的),代表着 AP  UDP  Config

     绑定流程详细说明:

     APUConfig小程序端源码:

        https://gitee.com/yang456/APUConfig.git

     

        

     

     

      实际上就是控制Wi-Fi模块开热点,控制小程序连接热点,然后通过UDP通信!

    实现功能概要

    这节是用SDK直接开发的ESP8266

    然后实现微信小程序用APUConfig方式配网绑定8266,最后通过MQTT通信控制

    提醒:

    本教程SDK开发的源码,全部按照针对于开发人员讲解!

    本教程SDK开发的源码只说明怎么用和代码处理思路!

    如果没有基础,请先学习SDK开发的基础教程!

    说明

    为了能让用户轻松的移植使用,我封装成了以下文件

    教程最后会说明如何移植到自己的项目!

    下载程序

    提醒:V2.5.1及其以上PCB版本,单片机的PB2内部直接连接了Wi-Fi的复位引脚,单独开发Wi-Fi时请保持单片机的PB2引脚为高电平!

    提醒:V2.5.1及其以上PCB版本,单片机的PB2内部直接连接了Wi-Fi的复位引脚,单独开发Wi-Fi时请保持单片机的PB2引脚为高电平!

    提醒:V2.5.1及其以上PCB版本,单片机的PB2内部直接连接了Wi-Fi的复位引脚,单独开发Wi-Fi时请保持单片机的PB2引脚为高电平!

    可以把boot0接3.3V,然后复位下STM32,不要让STM32工作!

    可以把boot0接3.3V,然后复位下STM32,不要让STM32工作!

    可以把boot0接3.3V,然后复位下STM32,不要让STM32工作!

    1.调整拨动开关让WIFI和电脑串口通信

    2.按下固件(WIFI)按钮     (IO0引脚)

    3.按下复位按钮

    4.松开复位按钮

    5.松开固件按钮

    此时,模块进入等待刷固件状态

    安装微信小程序 

    安装方式1:  此节微信小程序已经发布,可以直接微信扫描安装

    安装方式2: 用开发软件打开本节工程,使用预览微信扫码安装到手机

    小程序配网绑定控制

    一,点击小程序下方的添加设备按钮 

      

    二,选择添加Wi-Fi设备

      

    三,输入路由器密码(注:Wi-Fi名称自动获取,也可自己填写)

     

     四:长按 固件按钮(GPIO0)大约3S,直至指示灯快闪,

    内部默认用GPIO0检测按键输入

     

    五.点击小程序上的 "绑定设备"按钮,开始搜索设备,绑定成功,将自动跳转到主页面,显示绑定的Wi-Fi设备

      5.1 正在尝试连接Wi-Fi模块的热点

      

      5.2 连接上热点,正在和模块通信

      

      5.3 成功绑定设备

      

     六.点击设备,进入控制页面,控制设备

     

    七, 控制LED

    注意:SDK程序是控制的其 GPIO5引脚

              

    移植使用

    1.用户把以下两个文件拷贝到自己的工程

    2.包含头文件(具体路径依据自己的自行修改)

    3.启动APUConfig配网

    apuconfig_start(apuconfig_callback,60);//启动apuconfig配网

     

    /***
     *apuconfig 配网回调函数
     */
    void apuconfig_callback(apuconfig_status status, void *pdata){
        switch(status) {
            case APU_STATUS_GETING_DATA://获取了APP发送的数据
                os_printf("
    APU_STATUS_GETING_DATA:%s
    ",pdata);
                break;
            case APU_STATUS_LINK_SSID_PSWD://开始连接路由器
            {
                struct station_config *sta_conf = pdata;
                os_printf("
    APU_STATUS_LINK_SSID_PSWD: %s  %s",sta_conf->ssid,sta_conf->password);//打印连接的路由器信息
                break;
            }
            case APU_STATUS_LINKED://连接上路由器
            {
                os_printf("
    APU_STATUS_LINKED: %s
    ",pdata);//打印分配的IP地址
                break;
            }
            case APU_STATUS_UDPSEND://模块返回给APP数据
                os_printf("
    APU_STATUS_UDPSEND:%s
    ",pdata);
                break;
            case APU_STATUS_LINK_OVER://配网结束
                apuconfig_stop();//结束apuconfig
                SmartConfigFlag=0;
                break;
        }
    }

     这样就可以了

    提示:

    一般咱用一个按钮长按一段时间后启动配网!

    注意:

    配网结束以后,为了让手机能够断开和模块的无线连接,

    让手机可以连接到原先上网的路由器

    我设置了更换到Station模式

    当然也可以在下面位置设置重新启动

  • 相关阅读:
    15.[JavaScript]第8章对象和数组[上,下, 中]
    centos 7 firewall(防火墙)开放端口/删除端口/查看端口
    Docker使用docker-compose.yml构建Asp.Net Core和Mysql镜像并与Mysql数据库通信
    Docker使用Dockerfile构建Asp.Net Core镜像
    Docker使用Mysql镜像命令
    指定的 CGI 应用程序遇到错误,服务器终止了该进程。
    常见SMTP发送失败原因列表
    MVC View中获取action、controller、area名称、参数
    status 返回当前请求的http状态码
    asp:GridView控件使用FindControl方法获取控件的问题
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/12670906.html
Copyright © 2011-2022 走看看