1193|1

48

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【安信可BW16-Kit开发板】WifiWebClient应用 [复制链接]

【安信可BW16-Kit开发板】WifiWebClient应用

 

随着物联网的兴起,在许多项目中,我们需要使用Arduino开发板来实现与互联网的无线连接。使用WiFi模块,我们可以轻松实现物联网应用,将传感器数据发送到云平台或者通过云平台控制设备。安信可BW16-Kit具有Ble、Wifi功能。本文将介绍一下在Arduino下使用BW16-Kit开发板连接WEB客户端方法。

一、安信可BW16-Kit介绍

安信可科技BW16是双频 Wi-Fi+蓝牙SoC模组,支持双频(2.4GHz或5GHz)WLAN 和低功耗蓝牙5.0 ,集成了ARM V8兼容Cortex-M4F)高性能MCU、ARM V8M(兼容 Cortex-M0)低功耗 MCU、WLAN(802.11 a/b/g/n)、MAC,蓝牙基带和RF基带,并提供可配置的GPIO口,用于不同外围设备的控制。安信可BW16 集成了内部存储器,支持简单的应用程序开发,可实现完整的Wi-Fi和BT5.0协议功能。

【特性】

  • 支持 802.11a/b/g/n 1x1,2.4GHz or 5GHz 
  • 支持 HT20/HT40 模式 
  • 支持低功耗信标监听模式,低功耗接收模式,低功耗挂起模式 
  • 内置 AES / DES / SHA 硬件引擎 
  • 支持 TrustZone-M,支持安全启动 
  • 支持 SWD 调试端口访问保护和禁止模式 
  • 支持 BLE 和 BT5.0 
  • 蓝牙支持高功率模式(7dBm,与 Wi-Fi 共享同一 PA)  
  • Wi-Fi 和 BT 共用同一天线 
  • 支持 STA/AP/STA+AP 工作模式 
  • 支持安卓、IOS 的 Simple Config(APP)WiFi一键配网 
  • 支持蓝牙辅助配网 
  • 支持串口本地升级和远程固件升级(FOTA)

二、环境搭建

BW16-Kit开发板的Arduino开发环境搭建介绍的文章很多,这里就不在赘述,可参考相关文章。【安信可BW16-Kit】+搭建环境 - RF/无线 - 电子工程世界-论坛 (eeworld.com.cn)

三、WifiWebClient应用开发示例

我们使用Ameba连上WiFi,作为客户端,从百度上获取资讯。

  1. ArduinoIDE环境下选择开发板为Ameba,
  2. 选择“Tools” -> “Board” -> “Arduino Ameba”
  3. 然后打开 WiFi Web Client的范例, “File” -> “Examples” -> “WiFi” -> “WiFiWebClient”

 

 

将WiFi连线的相关讯息,如下图中黄色标注的地方进行对应的修改。

 

4、程序如下

#include <WiFi.h>

char ssid[] = "xxxx"; // your network SSID (name)

char pass[] = "xxxx";    // your network password (use for WPA, or use as key for WEP)

int keyIndex = 0;            // your network key Index number (needed only for WEP)



int status = WL_IDLE_STATUS;

IPAddress server(153,3,238,102);  // numeric IP for Google (no DNS)

//char server[] = "www.baidu.com";    // name address for Google (using DNS)



WiFiClient client;

void setup() {

    Serial.begin(115200);

    while (!Serial) {

        ;

    }

   if (WiFi.status() == WL_NO_SHIELD) {

        Serial.println("WiFi shield not present");

        while (true);

    }

    while (status != WL_CONNECTED) {

        Serial.print("Attempting to connect to SSID: ");

        Serial.println(ssid);

        status = WiFi.begin(ssid, pass);

        delay(10000);

    }

    Serial.println("Connected to wifi");

    printWifiStatus();

    Serial.println("\nStarting connection to server...");

    if (client.connect(server, 80)) {

        Serial.println("connected to server");

        client.println("GET /search?q=ameba HTTP/1.1");

        client.println("Host: www.baidu.com");

        client.println("Connection: close");

        client.println();

    }

    delay(100);

}



void loop() {

    while (client.available()) {

        char c = client.read();

        Serial.write(c);

    }

    if (!client.connected()) {

        Serial.println();

        Serial.println("disconnecting from server.");

        client.stop();



        while (true);

    }

}



void printWifiStatus() {

    Serial.print("SSID: ");

    Serial.println(WiFi.SSID());

    IPAddress ip = WiFi.localIP();

    Serial.print("IP Address: ");

    Serial.println(ip);

    long rssi = WiFi.RSSI();

    Serial.print("signal strength (RSSI):");

    Serial.print(rssi);

    Serial.println(" dBm");

}

 

5、程序使用到下面的API函数:

在连线WiFi时会使用到WiFi.begin();

连线成功后会读取WiFi的信息:显示WiFi的名称WiFi.SSID()

显示WiFi的讯号强度WiFi.RSSI()

显示Ameba的IP信息WiFi.localIP()

建立一个Client: WiFiClient()

客户端通过服务器的IP和端口连线client.connect()

向服务器对发送数据并开启新的一行 client.println()

判断是否有数据从服务器端发送过来client.available()

客户端读取数据client.read()

客户端断开与服务器的连线client.stop()

 

四、运行结果

显示运行结果如下:

 

  

此帖出自无线连接论坛

最新回复

测试步骤比较详细,运行结果还行   详情 回复 发表于 2024-2-26 07:35
点赞 关注
 

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

测试步骤比较详细,运行结果还行

此帖出自无线连接论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表