NoOneZero 发表于 2024-3-4 22:42

【安信可BW16-Kit】 WebServer服务器下测试双频Wi-Fi传输速率

<div class='showpostmsg'># 【安信可BW16-Kit】 WebServer服务器下测试双频Wi-Fi传输速率

# 前言
BW16支持双频(2.4GHz 或 5GHz)WLAN

这种支持5g WiFi的模组 可以用于一些上传,下载大文件的情况中

比如,无线打印,升级固件等

这次评测下 BW16 作为server 在2.4g 和 5g wifi下传输大文件的时间差别

## 代码

```
#include <WiFi.h>

char ssid[] = "wh5";          // wifi账号密码
char pass[] = "password";

// ADC引脚号
// int analogChannel = PB3;

int status = WL_IDLE_STATUS;

// 测试文本
char text[] = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
// 实例化sever 端口80
WiFiServer server(80);
void setup() {
    // 打开串口
    Serial.begin(115200);
    // 等待开启完成
    while (!Serial) {
      ; // 等待串口连接。仅本机 USB 端口需要
    }
    Serial.println("noonezero111");
    // 检查防护罩是否存在:
    if (WiFi.status() == WL_NO_SHIELD) {
      Serial.println("WiFi shield not present");
      // don't continue:
      while (true);
    }

    // 连接Wifi
    while (status != WL_CONNECTED) {
      Serial.print("Attempting to connect to SSID: ");
      Serial.println(ssid);
      // 连接到 WPA/WPA2 网络
      status = WiFi.begin(ssid, pass);

      // 等待
      delay(10000);
    }
    // 开启服务器
    server.begin();
    // 打印网络
    printWifiStatus();
}


void loop() {
    // 传入客户端
    WiFiClient client = server.available();
    if (client) {
      Serial.println("new client");
      // HTTP 请求以空行结尾
      boolean currentLineIsBlank = true;
      while (client.connected()) {
            if (client.available()) {
                char c = client.read();
                Serial.write(c);
                // http请求结束
                if (c == '\n' && currentLineIsBlank) {
                  // 发送响应头
                  client.println("HTTP/1.1 200 OK");
                  client.println("Content-Type: text/html");
                  client.println();
                  client.println("<!DOCTYPE HTML>");
                  client.println("<html>");
                  for(int i=0; i<100000; i++){
                      client.println(text);
                  }
                  client.println("<br />");
                  client.println("</html>");
                  break;
                }
                if (c == '\n') {
                  currentLineIsBlank = true;
                } else if (c != '\r') {
                  currentLineIsBlank = false;
                }
            }
      }
      // give the web browser time to receive the data
      delay(1);

      // close the connection:
      client.stop();
      Serial.println("client disonnected");
    }
}


void printWifiStatus() {
    // print the SSID of the network you're attached to:
    Serial.println();
    Serial.print("SSID: ");
    Serial.println(WiFi.SSID());

    // print your WiFi shield's IP address:
    IPAddress ip = WiFi.localIP();
    Serial.print("IP Address: ");
    Serial.println(ip);

    // print the received signal strength:
    long rssi = WiFi.RSSI();
    Serial.print("signal strength (RSSI):");
    Serial.print(rssi);
    Serial.println(" dBm");
}

```

## 说明
#### 由于BW16只有2Mflash空间,就没有用文件,以字符串传输。
#### 分别测试 text(64个A),text(256个A),text(512个A),text(2048个A)
#### 传输的时候,多次传输 text 文本,方便查看差异
```
for(int i=0; i<100000; i++){
        client.println(text);
}
```
#### 测试过程,以text(64个A)为例,先连接2.4g Wifi, 电脑打开隐身模式调出开发者工具,然后访问服务器,查看加载时间,相同代码连接5gwifi,再次打开隐身模式调出开发者工具,访问服务器,查看加载时间

# 测试结果如下
## text(64个A)传输如下

### 2.4g text(64个A)传输如下



### 5g text(64个A)传输如下



---
## text(256个A)传输如下
### 2.4g text(256个A)传输如下



### 5g text(256个A)传输如下



---

## text(512个A)传输如下
### 2.4g text(512个A)传输如下



### 5g text(512个A)传输如下



---

## text(2048个A)传输如下
### 2.4g text(2048个A)传输如下



### 5g text(2048个A)传输如下



---

#### 首先声明,本人不是wifi相关专业,此次测试一非专业测试,二可能测试变量控制有些没做好,三也是最重要的,本次测试使用Arduino编程,如果SDK应该会更好
#### 变量方面,首先同一台电脑,千兆网线直连路由器,网页打开每次都是重开隐身模式,尽量能想到的都控制了,当然非专业,可能有疏忽

## 我的结论
#### BW16 确实是少见的支持双频的芯片
#### 但是基于芯片本身性能瓶颈,无法达到5g Wifi满速运行,故传输速率相比2.4g没提速太多
#### 不过不可否认是一款很好的模组,期待安信可可以做的更好</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                               
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

wangerxian 发表于 2024-3-5 09:20

<p>确实速率感觉没有很明显的区别,要不测测5G和2.4G的功耗?</p>

NoOneZero 发表于 2024-3-5 22:21

wangerxian 发表于 2024-3-5 09:20
确实速率感觉没有很明显的区别,要不测测5G和2.4G的功耗?

<p>好主意,我测试下</p>
页: [1]
查看完整版本: 【安信可BW16-Kit】 WebServer服务器下测试双频Wi-Fi传输速率