Ai-WB2-01S(WiFi和蓝牙集为一体)

去吗_配吗 2024-10-20 10:01:01 阅读 78

Ai-WB2-01S 模块是由安信可科技(Ai-Thinker)生产的一款多功能物联网通信模块。它集成了 Wi-Fi 和蓝牙(BLE)功能,适用于需要无线连接的多种应用场景,如智能家居、工业自动化、远程监控等。以下是 Ai-WB2-01S 模块的一些关键特性和功能:

1. Wi-Fi 功能:

支持 IEEE 802.11 b/g/n 协议。

支持 20MHz 带宽,最高速率可达 72.2 Mbps。

2. 蓝牙功能:

支持 Bluetooth 5.0,包括 BLE(Bluetooth Low Energy)。

支持 Bluetooth Mesh 网络,适用于大规模设备网络。

3. 处理器和内存:

内置高性能 32 位 RISC CPU。

拥有 276KB 的 RAM,适用于运行复杂的应用程序。

4. 安全特性:

支持安全启动,确保固件的安全性。

支持使用 ECC-256 签名的镜像。

5. 加密功能:

支持 AES 128/192/256 位加密引擎。

支持 SHA-1/224/256 哈希算法。

6. 外设接口:

提供多种外设接口,如 SDIO、SPI、UART、I2C、IR remote、PWM、ADC、DAC、PIR、GPIO 等。

7. 低功耗设计:

支持多种休眠模式,深度睡眠电流仅为 12μA,适合电池供电的应用。

8. 通用 AT 指令:

提供通用的 AT 指令集,方便开发者快速上手和开发。

9. 二次开发支持:

支持二次开发,提供 Windows 和 Linux 开发环境。

10. 固件升级:

支持通过 AT 命令或二次开发进行固件升级。

11. 尺寸和封装:

模块尺寸小巧,便于集成到各种设备中。

12. 开发支持:

提供详细的开发文档、API 和示例代码,帮助开发者快速开发应用。

Ai-WB2-01S 模块的多样性和灵活性使其成为物联网项目的理想选择。开发者可以利用其丰富的功能和接口,轻松实现设备的智能化和网络化。

下面话不多说,我们一起来学习一下它的使用

它支持at命令,我们先来说一下at命令吧,学好at命令才可以使用它

主要功能(包括WiFi和核心功能)

 测试模块响应:

命令: AT 

作用:检查模块是否处于接收命令状态。

示例:AT

返回:OK 或 AT version: x.x.x ...

2. 查询模块固件版本:

命令: AT+GMR 

作用:获取模块的固件版本号和制造商信息。

示例:AT+GMR

返回:AT version: x.x.x ...

3. 设置 Wi-Fi 工作模式:

命令: AT+WMODE=<mode> 

作用:配置模块为 Station(1)或 SoftAP(2)模式。

示例:AT+WMODE=1

返回:OK

4. 连接到 Wi-Fi 网络:

命令: AT+WJAP="SSID","PASSWORD" 

作用:连接到指定的 Wi-Fi 网络。

示例:AT+WJAP="my_wifi","my_password"

返回:WIFI CONNECTED 或 ERROR

5. 进行 Wi-Fi 网络扫描:

命令: AT+WSCAN 

作用:列出所有在范围内的 Wi-Fi 网络。

示例:AT+WSCAN

返回:+WSCAN:SSID,RSSI,BSSID,CHANNEL

      OK

6. 建立 TCP 连接:

命令: AT+SOCKET=<socket_id>,"IP_ADDRESS",<PORT> 

作用:创建 TCP 连接到指定的服务器。

示例:AT+SOCKET=4,"192.168.1.100",8080

返回:SOCKET CONNECTED

      OK

7. 开启透传模式:

命令: AT+SOCKETTT 

作用:使模块进入透传模式,允许 UART 和网络之间的数据直接传输。

示例:AT+SOCKETTT

返回:TRANSPARENT MODE

      OK

8. 发送数据:

命令: AT+SEND=<len> 

作用:通过已建立的 TCP 连接发送数据。

示例:AT+SEND=10

返回:>

(然后输入要发送的数据)

9. 接收数据:

命令: AT+RECV 

作用:从 TCP 连接中接收数据。

示例:AT+RECV

返回:+RECV:<len>

       接收到的数据

       OK

10. 进入低功耗模式:

命令: AT+SLEEP 

作用:减少模块的能耗。

示例:AT+SLEEP

返回:SLEEP MODE

       OK

11. 使用 WPS 快速连接 Wi-Fi:

命令: AT+WPS 

作用:使用 WPS 功能简化 Wi-Fi 连接过程。

示例:AT+WPS

返回:WIFI WPS START

       OK

12. 域名解析:

命令: AT+WDOMAIN="example.com" 

作用:将域名转换为 IP 地址。

示例:AT+WDOMAIN="example.com"

返回:+WDOMAIN:IP_ADDRESS

       OK

13. SNTP 时间同步配置:

命令: AT+SNTPTIMECFG="pool.ntp.org" 

作用:配置 SNTP 服务器地址,用于模块的时间同步。

示例:AT+SNTPTIMECFG="pool.ntp.org"

返回:OK

14. 模块复位:

命令: AT+RST 

作用:重启模块,用于退出错误状态或重新初始化模块。

示例:AT+RST

(模块将重启)

  蓝牙功能

1. 蓝牙初始化:

命令: AT+BINIT 

参数:无

作用:初始化蓝牙模块,准备进行蓝牙通信。

示例:AT+BINIT

返回:OK

2. 设置蓝牙模式:

命令: AT+BMODE=<mode> 

参数: <mode>  - 蓝牙工作模式,例如:

 0 :仅广播模式

 1 :仅连接模式

 2 :广播和连接模式

作用:设置模块的蓝牙工作模式。

示例:AT+BMODE=2

返回:OK

3. 设置蓝牙名称:

命令: AT+BNAME="name" 

参数: "name"  - 您希望设置的蓝牙设备名称,字符串。

作用:配置模块的蓝牙名称,用于设备识别。

示例:AT+BNAME="Ai-WB2-01S-MyDevice"

返回:OK

4. 设置蓝牙服务 UUID:

命令: AT+BUUID=<service_uuid> 

参数: <service_uuid>  - 服务的 UUID,通常为 16 位或 32 位十六进制数。

作用:设置蓝牙服务的 UUID,用于 BLE 服务识别。

示例:AT+BUUID=0x123456

返回:OK

5. 设置蓝牙特征 UUID:

命令: AT+BCHAR=<characteristic_uuid> 

参数: <characteristic_uuid>  - 特征的 UUID,格式同上。

作用:设置蓝牙特征的 UUID,用于 BLE 特征识别。

示例:AT+BCHAR=0xabcdef

返回:OK

6. 蓝牙配对和连接:

命令: AT+BCON=<mac_address> 

参数: <mac_address>  - 目标设备的 MAC 地址,格式为  xx:xx:xx:xx:xx:xx 。

作用:与指定 MAC 地址的蓝牙设备进行配对和连接。

示例:AT+BCON=12:34:56:78:9a:bc

返回:CONNECTED

      OK

7. 蓝牙断开连接:

命令: AT+BDISCON 

参数:无

作用:断开当前的蓝牙连接。

示例:AT+BDISCON

返回:DISCONNECTED

      OK

8. 蓝牙发送数据:

命令: AT+BSEND=<len>,<data> 

参数: <len>  - 要发送的数据长度; <data>  - 要发送的数据内容。

作用:通过蓝牙发送数据给已连接的设备。

示例:AT+BSEND=10,HelloWorld

返回:SEND OK

9. 蓝牙接收数据:

命令: AT+BRECV 

参数:无

作用:从蓝牙连接中接收数据。

示例:AT+BRECV

返回:+BRECV:14

       Some received data

       OK

10. 蓝牙广播开启:

命令: AT+BADV 

参数:无

作用:开启蓝牙广播,使设备可被发现。

示例:AT+BADV

返回:ADVERTISING STARTED

       OK

11. 蓝牙广播关闭:

命令: AT+BADVSTOP 

参数:无

作用:停止蓝牙广播。

示例:AT+BADVSTOP

返回:ADVERTISING STOPPED

       OK

12. 蓝牙设置广播参数:

命令: AT+BADVPARAMS=<adv_interval_min>,<adv_interval_max>,<adv_channel_map> 

参数: <adv_interval_min>  - 广播间隔最小值; <adv_interval_max>  - 广播间隔最大值; <adv_channel_map>  - 广播使用的频道映射。

作用:设置蓝牙广播参数,包括广播间隔和使用的频道。

示例:AT+BADVPARAMS=160,160,7

返回:OK

知识拓展

使用Arduino硬件连接此模块并执行AT命令:

要使用 Arduino 执行 AT 命令与 Ai-WB2-01S 模组进行通信,可以遵循以下步骤:

1. 硬件连接:

将 Ai-WB2-01S 模组的 TX(发送)引脚连接到 Arduino 的 RX(接收)引脚。

将 Ai-WB2-01S 模组的 RX(接收)引脚连接到 Arduino 的 TX(发送)引脚。

连接 Ai-WB2-01S 模组的 GND(地)引脚到 Arduino 的 GND 引脚。

确保 Ai-WB2-01S 模组的 VCC(电源)接到适当的电压源(通常为 3.3V 或 5V,取决于模块的规格)。

2. Arduino 编程:

在 Arduino IDE 中创建一个新的草图。

包含用于串口通信的库:#include <SoftwareSerial.h>

初始化软件串口,将 Arduino 的数字引脚与 Ai-WB2-01S 模组的 RX 和 TX 引脚相连接:SoftwareSerial mySerial(<RX>, <TX>); // RX, TX - 根据实际连接的引脚修改

在  setup()  函数中,设置串口的波特率,并初始化软件串口:void setup() {

  Serial.begin(115200); // 与 Ai-WB2-01S 模组通信的波特率

  mySerial.begin(115200); // 软件串口的波特率

  // 等待串口准备就绪

  while (!Serial) {

    ; // 等待

  }

}

在  loop()  函数中,发送 AT 命令并读取响应:void loop() {

  // 发送 AT 命令

  mySerial.println("AT");

  // 等待响应

  delay(1000); // 等待响应时间可能需要根据实际情况调整

  // 读取响应

  String response = mySerial.readString();

  Serial.println(response);

}

3. 上传代码:

将编写好的代码上传到 Arduino。

4. 监视串口输出:

在 Arduino IDE 中打开串口监视器,查看 Ai-WB2-01S 模组的响应。

5. 调试和测试:

根据需要修改 AT 命令并测试不同的功能。

6. 示例代码: 下面的示例代码演示了如何发送一个简单的 AT 命令并打印响应:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {

  Serial.begin(115200);

  mySerial.begin(115200);

  while (!Serial) {

    ; // 等待

  }

}

void loop() {

  // 发送 AT 命令

  mySerial.println("AT+GMR");

  // 简单的延迟,等待响应

  delay(1000);

  // 读取响应

  String response = mySerial.readString();

  Serial.println(response);

  // 简单的延迟,再次发送命令

  delay(1000);

}

这篇文章能不能帮助到你呢?

如果帮助到了你,点个赞吧

免费,但白嫖万万不可以

 



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。