连接到 Wi-Fi
本教程将引导您完成将 Arduino 板连接到 Wi-Fi 网络的基本步骤。您将学习如何初始化 Wi-Fi 模块、验证其固件,以及使用 SSID 和密码安全地加入网络。连接后,您将发现如何直接从串行控制台监控重要的网络详细信息,例如设备的 IP 和 MAC 地址以及网络的信号强度。本教程既是 Wi-Fi 连接的实用指南,也是使用 Arduino 进行网络监控的介绍,帮助您建立并维护可靠的 Wi-Fi 连接。
1. 上传代码
打开路径 elite-explorer-kit-main\r4_new_feature\01-wifi_connect 下的 01-wifi_connect.ino 文件,或将此代码复制到 Arduino IDE 中。
备注
通过随 Arduino UNO R4 Core 一起提供的内置 WiFiS3 库启用 Wi-Fi 支持。安装该核心会自动安装 WiFiS3 库。
您仍然需要创建或修改 arduino_secrets.h,将 SECRET_SSID 和 SECRET_PASS 替换为您要连接的 WiFi 的名称和密码。该文件应包含:
//arduino_secrets.h header file
#define SECRET_SSID "yournetwork"
#define SECRET_PASS "yourpassword"
打开串口监视器,您将看到类似如下内容。Arduino 将输出您设备的 IP 和 MAC 地址,以及网络的信号强度。
2. 代码说明
包含库和密钥数据
#include <WiFiS3.h> #include "arduino_secrets.h"
WiFiS3是一个提供 Wi-Fi 连接功能的库。安装 R4 核心会自动安装 WiFiS3 库。arduino_secrets.h是一个单独的文件,您可以在其中保存 SSID 和密码,这样它们就不会暴露在主代码中。将网络和密码分开存储可减少意外共享 Wi-Fi 凭据的风险。
声明全局变量
char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; int status = WL_IDLE_STATUS;
ssid和pass包含您的网络名称和密码。status将存储您的 Wi-Fi 连接的当前状态。
setup()函数串行接口以 9600 的波特率初始化。
while (!Serial);行确保程序等待直到串行连接建立。void setup() { //Initialize serial and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } ... }
然后,代码检查 Wi-Fi 模块是否可用。如果不可用,程序将停止,有效地阻止任何进一步的执行。
... // check for the WiFi module: if (WiFi.status() == WL_NO_MODULE) { Serial.println("Communication with WiFi module failed!"); // don't continue while (true); } ...
在代码的这一部分,我们检查 uno R4 wifi 的固件版本是否是最新的。如果不是最新版本,将显示升级提示。您可以参考 更新UNO R4 WiFi板上的无线电模块固件 进行固件升级。
... String fv = WiFi.firmwareVersion(); if (fv < WIFI_FIRMWARE_LATEST_VERSION) { Serial.println("Please upgrade the firmware"); } ...
loop()函数void loop() { // check the network connection once every 10 seconds: delay(10000); printCurrentNet(); }
每 10 秒,调用
printCurrentNet()函数打印当前的网络详情。
参考