项目37 WiFi 测试#
1. 实验简介:
在本实验中,我们先使用ESP32的WiFi Station模式读取WiFi的IP地址,然后通过APP连接WiFi来读取APP上各功能按钮发送的字符。
2. 实验元件:
|
|
|
|---|---|---|
ESP32*1 |
USB 线*1 |
智能手机/平板电脑(自备)*1 |
3. 实验接线:
使用USB线将ESP32主板连接到电脑上的USB口。

4. 安装APP:
⚠️ 特别提醒:如果已经在手机/平板上安装好了APP,则这一步骤可以直接跳过;否则,需要参照以下步骤在手机/平板上来安装APP。

步骤1: 在手机/平板浏览器的搜索框中输入官网链接:www.keyes-robot.com

步骤2: 找到 “资料中心”,并且点击它。

步骤3: 在页面找到 “APP下载” 选项,并且点击它。

步骤4: 在 “APP下载” 页面,找到 “keyes wifi”。

步骤5: 根据自己的手机/平板系统选择对应的APP下载安装。选择如下:

安卓系统(Android)
a. 点击 “点击下载” 按钮,下载对应的 “keyes wifi.apk” 文件。

b. 按照安装提示进行下载安装。





c. 下载安装后,打开 keyes wifi APP,出现如下图界面。

苹果系统(IOS)
a. 点击 “跳转APP Store” 按钮,跳转到 APP Store

b. 在 APP Store 上的搜索框输入 keyes link,点击搜索,出现下载界面,点击 “
”,就可以下载安装 keyes link 的APP。接下来的操作和安卓系统类似的,可以参考上面安卓系统的步骤进行操作。
5. 项目代码:
特别注意:确保计算机网络,手机/平板的网络,ESP32主板,路由器,代码中输入你自己的WiFi名称和密码都必须是在同一个局域网(WiFi)下。

//**********************************************************************************
/*
* 文件名 : WIFI 测试
* 描述 : Wifi模块测试Wifi ip
*/
#include <Arduino.h>
#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiClient.h>
String item = "0";
const char* ssid = "ChinaNet-2.4G-0DF0";
const char* password = "ChinaNet@233";
WiFiServer server(80);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
Serial.println("TCP server started");
MDNS.addService("http", "tcp", 80);
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
while(client.connected() && !client.available()){
delay(1);
}
String req = client.readStringUntil('\r');
int addr_start = req.indexOf(' ');
int addr_end = req.indexOf(' ', addr_start + 1);
if (addr_start == -1 || addr_end == -1) {
Serial.print("Invalid request: ");
Serial.println(req);
return;
}
req = req.substring(addr_start + 1, addr_end);
item=req;
Serial.println(item);
String s;
if (req == "/")
{
IPAddress ip = WiFi.localIP();
String ipStr = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]);
s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>Hello from ESP32 at ";
s += ipStr;
s += "</html>\r\n\r\n";
Serial.println("Sending 200");
client.println(s);
}
//client.print(s);
client.stop();
}
//**********************************************************************************
特别注意:需要先将实验代码
中的用户Wifi名称和用户Wifi密码改成你们自己的Wifi名称和Wifi密码。
6. 实验现象
特别注意:确保计算机网络,手机/平板的网络,ESP32主板,路由器,代码中输入你自己的WiFi名称和密码都必须是在同一个局域网(WiFi)下。

确认程序代码中的Wifi名称和Wifi密码修改正确后,编译并上传代码到ESP32主板上。
打开串口监视器,设置波特率为 115200,这样,串口监视器打印检测到的WiFi IP地址,然后打开WiFi APP。 在WIFI按钮前面的文本框中输入检测到的WIFI IP地址(例如,下上面串口监视器检测到的IP地址:192.168.1.136),再点击WIFI按钮,“403 Forbidden” 或 “网页无法打开” 就会变成 “192.168.1.136”。这样,就说明APP已经连接上了WIFI。

用手分别点击APP上的各个功能按钮,然后串口监视器会打印接收到的对应字符。

注意: 如果打开串口监视器且设置波特率为115200之后,串口监视器窗口没有显示如下信息,可以按下ESP32的复位键 


