【Hi3861设备开发】1.微信小程序Wi-Fi配网

发布于 2021-10-9 23:32
浏览
4收藏

@toc

导读:使用微信小程序完成hi3861配网以及控制全过程。

整体设计图

【Hi3861设备开发】1.微信小程序Wi-Fi配网-开源基础软件社区

小程序配网

1.配网原理图

  1. 开发板开启热点模式
  2. 手机连接开发板热点
  3. 手机通过udp发送Wi-Fi信息
  4. 开发板保存Wi-Fi信息、关闭热点、并连接Wi-Fi

【Hi3861设备开发】1.微信小程序Wi-Fi配网-开源基础软件社区

2.硬件代码编写

  1. 开启热点并接收信息
  2. 连接Wi-Fi代码
  3. mqtt代码
  4. 其他逻辑代码
...
ready_for_reset_wifi();

    char wifi_configed[] = "0";
    UtilsGetValue("wifi_configed", wifi_configed, sizeof(wifi_configed));
    printf("wifi_configed:%s \n\r", wifi_configed);
    if (strcmp(wifi_configed, "1") != 0)
    {
        start_set_wifi();
    }
    mid_MsgQueue = osMessageQueueNew(MSGQUEUE_OBJECTS, 10, NULL);
    if (mid_MsgQueue == NULL)
    {
        printf("Falied to create Message Queue!\n");
    }
...

3.小程序代码编写

  1. 小程序连接硬件Wi-Fi
  2. 小程序发送udp信息
Page({
  data: {
    ssid: "",
    password: "",
    disableSend:true,
  },
  onLoad: function (options) {
    let that = this
    wx.startWifi({
      success: (res) => {
        console.log(res)
        wx.onWifiConnected((result) => {
          console.log(result)
          console.log(result.wifi.SSID)
          if(result.wifi.SSID=='Set-Iot-WiFi'){
            that.setData({
              disableSend:false
            })
          }else{
            wx.showToast({
              title: '切换网络中...',
            })
          }
        })
      },
      fail:(res)=>{
        console.log(res)
      }
    })
  },
  get_wifi: function (e) {
    wx.startWifi({
      success: (res) => {
        console.log(res)
        wx.connectWifi({
          SSID: 'Set-Iot-WiFi',
          password: '',
          success(res) {
            console.log(res)
            wx.showToast({
              title: '连接到硬件...',
            })
          },
          fail(res) {
            console.log(res)
          }
        })

      },
      fail: (res) => {
        console.log("fail1:", res)
      }
    })
  },
  send: function (e) {
    const udp = wx.createUDPSocket()
    // let ssid = {ssid:'TP-LINK_2802',passwd:'foreverlove087'}
    if(this.data.ssid==null || this.data.ssid ==''){
      wx.showToast({
        title: '请输入Wi-Fi信息',
      })
      return 
    }


    let ssid = {ssid:this.data.ssid,passwd:this.data.password}
    // let ssid = {ssid:"xmtj-lp",passwd:"xiaomingtaiji666"}
    udp.bind()
    udp.onMessage(function (res) {
      console.log("onMessage:",res)
    })
    udp.onListening(function (res) {
      console.log("onListening:",res)
    })
    udp.send({
      address: '192.168.10.1',
      port: 50001,
      message: JSON.stringify(ssid)
    })
  },
  wifi_name_input: function (e) {
    this.setData({
      ssid: e.detail.value
    })
  },
  wifi_passwd_input: function (e) {
    this.setData({
      password: e.detail.value
    })
  },
})

4.测试

查看视频看效果~
请添加链接描述

已于2021-10-9 23:32:34修改
4
收藏 4
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐