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

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

目录

导读:使用微信小程序完成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");
    }
...
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

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
    })
  },
})

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.

4.测试

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

已于2021-10-9 23:32:34修改
4
收藏 4
回复
举报
4
1
4
1条回复
按时间正序
/
按时间倒序
初晴未暖
初晴未暖

楼主,这种方式小程序控制板子延迟大吗

回复
2021-11-4 16:00:33


回复
    相关推荐