1. 是否选择蓝牙配网还是 WIFI 配网,是根据设备来决定的,如果这个设备里面的模块支持的是 WIFI 配网,就要用 WIFI 配网,支持的是蓝牙配网,就用蓝牙配网,是设备厂商决定用哪种类型配网的
2. 蓝牙配网跟 WiFi 配网协议也是不同的
蓝牙配网: 我做的是小程序上的BLE 蓝牙配网。大概的步骤是:先初始化蓝牙适配器,然后发现设备,根据协议去连接设备。比如协议发给你一个字段,表示连接成功,你可以把2.4G 的 WiFi 账户密码发给协议,协议告诉你配网成功就完成了蓝牙配网
小程序,关于模块的蓝牙配网
- 打开蓝牙模块:使用 wx.openBluetoothAdapter 方法打开蓝牙模块
- 搜索设备:使用 wx.startBluetoothDevicesDiscovery 方法搜索附近的蓝牙设备
- 连接设备:当发现目标设备后,可以使用 wx.createBLEConnection 方法连接该设备
- 交互操作:连接成功后,可以通过蓝牙通信协议与设备进行交互,例如发送配网信息或指令
- 配网完成:根据设备的配网需求,可能需要在连接后执行特定的配网操作,例如发送 WiFi 信息等
注意点:
- deviceId是扫描设备时,获取到的一组数据,可以根据自己的需求进行筛选
- 配网的时候,需要发送 wifi 的账户密码,是需要在 2.4G网络下
- 是否配网成功,也是需要监听协议的数据变化来判断的
WiFi 配网:创建UDP点对点广播模式,知道对端( IP:255.255.255.255 PORT:10100)的 ip 跟端口就可以发送指定的协议了
255 开头与 192 开头的区别:
以 255 开头的地址通常用于广播,表示向网络中所有设备发送数据。例如,以 255 开头的地址 255.255.255.255 是用于发送广播数据包到本地网络中的所有设备。
其他开头是局域网,一般以 192 开头的,但是具体啥地址,由 DNS 设置
小程序中,udp 与WiFi模块配网的简单过程:
// 创建 UDP socket
const udpSocket = wx.createUDPSocket();
// 监听消息,监听对端的 ip 地址。具体 ip 地址,是根据模块的协议来定的
udpSocket.onMessage(function (res) {
console.log('Received message from ' + res.remoteAddress + ':' + res.remotePort + ': ' + res.message);
});
// 绑定本地端口和 IP, 本地端口是协议好的一个的固定端口号
const localPort = 12345;
udpSocket.bind(localPort);
// 发送消息,对端的端口号是协议好的固定端口号,ip是监听消息获取到的,消息是需要发送到对端的数据
const destPort = 54321;
const destIP = '192.168.1.200';
const message = 'Hello, WiFi module!';
udpSocket.send({
address: destIP,
port: destPort,
message: message
});
// 关闭 socket
udpSocket.close();