3.0.113 • Published 28 days ago

qcloud-iotexplorer-appdev-plugin-wificonf-blecombo v3.0.113

Weekly downloads
-
License
MIT
Repository
-
Last release
28 days ago

qcloud-iotexplorer-appdev-plugin-wificonf-blecombo

腾讯云物联网开发平台应用开发小程序端WIFI配网方式之蓝牙辅助配网(BLE-combo) SDK

安装依赖

npm install qcloud-iotexplorer-appdev-sdk
npm install qcloud-iotexplorer-appdev-plugin-wificonf-core

安装SDK

npm install qcloud-iotexplorer-appdev-plugin-wificonf-blecombo

配网流程

一、注册插件

就像其他配网方式那样,我们首先要向 appdev-sdk 里面注册 blecombo 插件,appdev-sdk 的初始化方式,详见qcloud-iotexplorer-appdev-sdk,这里不再赘述

import BleComboPlug from 'qcloud-iotexplorer-appdev-plugin-wificonf-blecombo';

BleComboPlug.install(sdk);

二、获取Wi-Fi信息

在这一步,需要使用表单来让用户填入WI-FI的 SSID 和 password 信息,以供后续配网使用。

三、连接设备

在配网正式开始前,我们还需要先完成手机和设备的蓝牙连接,并获得一个 deviceAdapter 来向设备传递WI-FI和token数据。主要分为以下几步:

1. 创建一个 bluetoothAdapter

bluetoothAdapter 可以用来搜索设备,连接到设备。代码如下:

import { BleComboEspDeviceAdapter, BleComboLLSyncDeviceAdapter } from 'qcloud-iotexplorer-appdev-plugin-wificonf-blecombo';
import { BlueToothAdapter } from 'qcloud-iotexplorer-bluetooth-adapter';

BleComboLLSyncDeviceAdapter.injectOptions({
  appDevSdk, // appDevSdk是 qcloud-iotexplorer-appdev-sdk 的实例
})
export const bluetoothAdapter = new BlueToothAdapter({
  deviceAdapters: [
    BleComboEspDeviceAdapter,
    BleComboLLSyncDeviceAdapter,
  ],
});

2. 获取蓝牙设备列表

通过 bluetoothAdapter.startSearch方法,我们可以发现设备,获得设备列表。

  const serviceIds = [BleComboLLSyncDeviceAdapter.serviceId];
  await bluetoothAdapter.startSearch({
    ignoreDeviceIds,
    serviceIds,
    ignoreServiceIds,
    onError: (error) => {
      console.log('----error', error);
      // 搜索设备出错
      bluetoothAdapter.stopSearch();
    },
    onSearch: (devices) => {
      console.log('searched devices', devices);
      if (devices.length > 0) {
        console.log('找到设备', devices); // 此时可以在页面上展示
      }
    },
    timeout: 1.4 * 15 * 1000,
  });

在上面的 onSearch 回调函数中,我们可以获得搜寻到的设备列表,这时可以将设备列表展示到页面上,供用户选择要连接哪个设备。

3. 连接设备

用户从上面获取到的设备中选择一个,并发起连接操作时,可以调用 bluetoothAdapter.connectDevice 方法进行连接。连接成功后会返回一个 deviceAdapter,可以用来向连接的设备发送Wi-Fi,token等数据。

try {
  // device参数是上一步获取的devices中的某一个item
  const deviceAdapter = await bluetoothAdapter.connectDevice(device);

  if (!deviceAdapter) {
    throw {
      code: 'CONNECT_ERROR',
    };
  }
} catch (err) {
  console.error('连接到设备出错');
}

在上面三步完成之后,我们已经通过蓝牙连接到了设备,并获得了可以更设备通信的 deviceAdapter,接下来就可以正式进行配网了。

四、开始配网

接下来我们开始蓝牙辅助配网

  // 这里可以进行一些UI进度更新操作
  const onStepChange = (progress) => {
    console.log(progress);
  }

  // 这里是配网进行过程中的回调函数
  const onProgress = (data) => {
    console.info(data.code, data.detail);
    switch (data.code) {
      case WifiConfStepCode.PROTOCOL_START: // 开始配网
        onStepChange(1);
        break;
      case WifiConfStepCode.PROTOCOL_SUCCESS: // 设备联网成功,设备可以访问互联网
        onStepChange(2);
        break;
      case WifiConfStepCode.BUSINESS_QUERY_TOKEN_STATE_SUCCESS: // 发送token到设备成功
        break;
      case WifiConfStepCode.WIFI_CONF_SUCCESS: // 配网成功
        onStepChange(4);
        break;
    }
  };

  const onComplete = ({ productId, deviceName }) => {
    // 配网成功后,可以拿到设备的 productId 和 设备名称
    console.log('配网成功', productId, deviceName);
  };

  const onError = async ({ code, detail }) => {
    console.error('配网出错', code, detail);
  };

  const config = {
    wifiConfToken, // 用于设备连接云端的token
    targetWifiInfo: { // 用于设备联网的wifi信息,由用户填入
      SSID: '你的Wi-Fi名称',
      password: '你的Wi-Fi密码',
      BSSID: '',
    },
    wifiConfType: 'ble', // 'ble' | 'llsyncble'
    deviceAdapter, // 由连接设备之后获得

    familyId: 'default',
    roomId,

    onProgress, // 用来更新页面的进度条
    onError,
    OnComplete,
  }

  // 开始执行配网逻辑 go!
  sdk.plugins['wifiConfBleCombo'].start(config);

关于 bluetoothAdapter 的 api 更多介绍,请参考 https://github.com/tencentyun/qcloud-iotexplorer-bluetooth-adapter

3.0.113

28 days ago

3.0.112

3 months ago

3.0.111

6 months ago

3.0.110

7 months ago

3.0.109

8 months ago

2.3.36

8 months ago

3.0.108

8 months ago

2.3.35

9 months ago

2.3.34

12 months ago

2.3.33

12 months ago

3.0.0-alpha.7

1 year ago

3.0.0-alpha.6

1 year ago

3.0.0-alpha.9

1 year ago

3.0.0-alpha.8

1 year ago

3.0.0-alpha.3

1 year ago

3.0.0-alpha.5

1 year ago

3.0.0-alpha.4

1 year ago

2.3.32

1 year ago

3.0.101

1 year ago

3.0.100

1 year ago

3.0.103

1 year ago

3.0.102

1 year ago

3.0.105

12 months ago

3.0.104

12 months ago

3.0.107

12 months ago

3.0.0

1 year ago

2.3.29

1 year ago

2.3.31

1 year ago

2.3.30

1 year ago

2.3.28

1 year ago

2.3.26

2 years ago

2.3.25

2 years ago

2.3.24

2 years ago

2.3.23

2 years ago

2.3.22

2 years ago

2.3.21

2 years ago

2.3.9

2 years ago

2.3.17

2 years ago

2.3.18

2 years ago

2.3.12

2 years ago

2.3.11

2 years ago

2.3.10

2 years ago

2.2.2-alpha.0

2 years ago

2.3.0

2 years ago

2.3.2

2 years ago

2.3.1

2 years ago

2.3.4

2 years ago

2.3.3

2 years ago

2.3.6

2 years ago

2.3.5

2 years ago

2.3.8

2 years ago

2.3.7

2 years ago

2.3.2-alpha.0

2 years ago

2.1.9

2 years ago

2.1.14

2 years ago

2.1.15

2 years ago

2.1.12

2 years ago

2.1.13

2 years ago

2.1.10

2 years ago

2.1.11

2 years ago

2.2.1-alpha.0

2 years ago

2.2.0-alpha.0

2 years ago

1.9.8-alpha.0

2 years ago

1.9.9-alpha.0

2 years ago

2.0.2-alpha.0

2 years ago

1.9.6

2 years ago

1.9.5

2 years ago

1.9.4

2 years ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.4

2 years ago

2.1.3

2 years ago

2.1.8

2 years ago

2.1.7

2 years ago

2.1.0

2 years ago

1.9.7-alpha.0

2 years ago

2.1.0-alpha.0

2 years ago

1.4.19-alpha.0

2 years ago

1.4.20-alpha.0

2 years ago

1.4.17-alpha.0

2 years ago

1.6.2

2 years ago

1.4.22-alpha.0

2 years ago

1.6.0

2 years ago

1.4.13-alpha.0

2 years ago

1.4.15-alpha.0

2 years ago

1.4.24-alpha.0

2 years ago

1.9.2

2 years ago

1.7.4

2 years ago

1.4.21-alpha.0

2 years ago

1.4.18-alpha.0

2 years ago

1.9.0

2 years ago

1.7.2

2 years ago

1.4.23-alpha.0

2 years ago

1.5.3

2 years ago

1.5.2

2 years ago

1.5.1

2 years ago

1.5.0

2 years ago

1.4.12-alpha.0

2 years ago

1.4.9

3 years ago

1.8.4

2 years ago

1.4.8

3 years ago

1.8.3

2 years ago

1.4.7

3 years ago

1.4.6

3 years ago

1.4.4

3 years ago

1.4.0

3 years ago

1.2.41

3 years ago

1.2.42

3 years ago

1.2.40

3 years ago

1.2.45

3 years ago

1.2.46

3 years ago

1.2.49

3 years ago

1.2.47

3 years ago

1.2.48

3 years ago

1.2.52

3 years ago

1.2.53

3 years ago

1.2.50

3 years ago

1.2.51

3 years ago

1.2.54

3 years ago

1.2.55

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.2.27

3 years ago

1.2.28

3 years ago

1.2.29

3 years ago

1.2.30

3 years ago

1.2.31

3 years ago

1.2.32

3 years ago

1.2.33

3 years ago

1.2.38

3 years ago

1.2.39

3 years ago

1.2.36

3 years ago

1.2.37

3 years ago

1.2.24

3 years ago

1.2.25

3 years ago

1.2.26

3 years ago

1.2.18

3 years ago

1.2.19

3 years ago

1.2.20

3 years ago

1.2.23

3 years ago

1.2.21

3 years ago

1.2.22

3 years ago

1.2.9

3 years ago

1.2.13

3 years ago

1.2.15

3 years ago

1.2.7

3 years ago

1.2.6

3 years ago

1.2.5

3 years ago

1.2.2-beta.1

3 years ago

1.2.4

3 years ago

1.2.3

3 years ago

1.2.2-beta.0

3 years ago

1.2.0

3 years ago

1.2.1

3 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.10

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.1

3 years ago

1.1.2

3 years ago

1.1.0

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago