0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用ESP32创建一个Web服务器 并将其连接到Wi-Fi获取IP地址

454398 ? 来源:工程师吴畏 ? 2019-07-26 09:15 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

入门

客户端与客户端之间的连接webserver是使用HTTP协议建立的。 HTTP协议如下所示:HTTP/1.1 200 OK r nContent-Type:text/html r n r n“。

”HTTP/1.1 200 OK“表示服务器已接受请求并已回复“200 OK”,这是状态代码,后跟“ r n”,这是HTTP协议的约束。

“Content-Type:text/html r n“表示响应内容类型为HTML格式,后跟” r n“

在HTTP协议结束时,网络服务器将返回显示”Hello world“的网页。

代码

#include

const char* wifi_name = “Tenda_31BC98”; //Your Wifi name

const char* wifi_pass = “barcelona”; //Your Wifi password

WiFiServer server(80); //Port 80

void setup()

{

Serial.begin(115200);

// Let‘s connect to wifi network

Serial.print(“Connecting to ”);

Serial.print(wifi_name);

WiFi.begin(wifi_name, wifi_pass); //Connecting to wifi network

while (WiFi.status() != WL_CONNECTED) { //Waiting for the responce of wifi network

delay(500);

Serial.print(“。”);

}

Serial.println(“”);

Serial.println(“Connection Successful”);

Serial.print(“IP address: ”);

Serial.println(WiFi.localIP()); //Getting the IP address at which our webserver will be created

Serial.println(“Put the above IP address into a browser search bar”);

server.begin(); //Starting the server

}

void loop()

{

WiFiClient client = server.available(); //Checking for incoming clients

if (client)

{

Serial.println(“new client”);

String currentLine = “”; //Storing the incoming data in the string

while (client.connected())

{

if (client.available()) //if there is some client data available

{

char c = client.read(); //read a byte

Serial.print(c);

if (c == ’ ‘) //check for newline character,

{

if (currentLine.length() == 0) //if line is blank it means its the end of the client HTTP request

{

client.print(“”);

client.print(“

Hello World

”);

break; //Going out of the while loop

}

else

{

currentLine = “”; //if you got a newline, then clear currentLine

}

}

else if (c != ’ ‘)

{

currentLine += c; //if you got anything else but a carriage return character,

}

}

}

}

delay(2000);

}

代码说明

首先,我们加入了Wi-Fi库,它将帮助我们创建网络服务器。然后我们存储了Wi-Fi名称和密码,以便我们可以连接到这个Wi-Fi网络。之后,我们定义了我们要将数据发送到的端口

const char* wifi_name = “Tenda_31BC98”; //Your Wifi name

const char* wifi_pass = “barcelona”; //Your Wifi password

WiFiServer server(80); //Port 80

在setu中p功能,我们使用上面提供的Wi-Fi信息将ESP32连接到我们的Wi-Fi网络。如果与Wi-Fi网络的连接成功,则“连接成功”将显示在串行监视器上。否则,它将继续尝试,直到它将连接到Wi-Fi网络。

Serial.print(“Connecting to ”);

Serial.print(wifi_name);

WiFi.begin(wifi_name, wifi_pass); //Connecting to wifi network

while (WiFi.status() != WL_CONNECTED) { //Waiting for the responce of wifi network

delay(500);

Serial.print(“。”);

}

Serial.println(“”);

Serial.println(“Connection Successful”);

以下命令将获取IP地址,我们将在串行监视器上显示它。

Serial.println(WiFi.localIP());

然后我们启动了服务器,以便我们可以获取数据并将数据发送到浏览器。

server.begin( );

在循环函数中,我们检查了是否有客户端发送了http请求。如果有任何客户端请求可用,它将存储在字符中并显示在串行监视器上。在请求结束时,我们将发送HTML命令,它将在网页上打印“Hello world”。

WiFiClient client = server.available(); //Checking for incoming clients

if (client)

{

Serial.println(“new client”);

String currentLine = “”; //Storing the incoming data in the string

while (client.connected())

{

if (client.available()) //if there is some client data available

{

char c = client.read(); //read a byte

Serial.print(c);

if (c == ’ ‘) //check for newline character,

{

if (currentLine.length() == 0) //if line is blank it means it’s the end of the client HTTP request

{

client.print(“

”);

client.print(“

Hello World

”);

break; //Going out of the while loop

}

如何运行代码

使用您的Wi-Fi名称和密码更改代码中的Wi-Fi名称和密码。然后上传代码并打开串行监视器。串行监视器将显示IP地址,如下图所示。在浏览器中输入此IP地址。

输入IP地址后,网页将如下所示。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web服务器
    +关注

    关注

    0

    文章

    139

    浏览量

    24936
  • ESP32
    +关注

    关注

    21

    文章

    1028

    浏览量

    19526
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ESP32-运行网页服务器(Web Server)-实用篇

    在前篇文章《ESP32-运行网页服务器(WebServer)-入门篇》,我们介绍了ESP32运行网页服务器(WebServer)的原理,然
    的头像 发表于 07-28 18:05 ?568次阅读
    <b class='flag-5'>ESP32</b>-运行网页<b class='flag-5'>服务器</b>(<b class='flag-5'>Web</b> Server)-实用篇

    CY8CPROTO-062S2-43439无法连接到ThingSpeak服务器怎么解决?

    的 开发板上将数据发送到CY8CPROTO-062S2-43439 ThingSpeak 。我的主板成功连接到 Wi-Fi ,但无法连接到 ThingSpeak 服务器,并出现以下错误
    发表于 06-05 08:26

    连接到 WPA3_WPA2_PSK 或 WPA3_SAE Wi-Fi 网络时系统挂起,为什么?

    问题:连接到 WPA3_WPA2_PSK 或 WPA3_SAE Wi-Fi 网络时系统挂起 我遇到问题,当我尝试连接启用了CY_WCM_
    发表于 06-05 07:23

    Wi-Fi 6超值畅享|乐鑫ESP32-C61 SoC,启明云端乐鑫科技代理商

    乐鑫信息科技(688018.SH)推出新的Wi-Fi6+Bluetooth5(LE)SoCESP32-C61。这款芯片作为ESP32-C系列的新成员,旨在满足对Wi-Fi6技术不断增长
    的头像 发表于 04-22 18:00 ?605次阅读
    <b class='flag-5'>Wi-Fi</b> 6超值畅享|乐鑫<b class='flag-5'>ESP32</b>-C61 SoC,启明云端乐鑫科技代理商

    基于 Wi-Fi 的定位服务

    GNSS 的低精度模式也会比 Wi-Fi 和蜂窝定位服务提供更好的定位精度,因此在测量中使用了低精度模式,我们可以看到 GNSS 与其他定位服务 “最接近 ”的功耗差异。结果确实证明了这
    发表于 04-17 15:16

    nRF Cloud Wi-Fi 定位服务

    、Predictive-GPS、Single-Cell、Multi-Cell 和 Wi-Fi 定位。通过利用 nRF Cloud 的优化定位算法,基于 Nordic SoC 和 模组的产品可在定位
    发表于 04-17 15:07

    Wi-Fi 定位服务

    Wi-Fi种著名的无线网络技术,用于设备的局域网和互联网接入。Wi-Fi 通过 Wi-Fi 网络为家庭、办公室和学校等环境提供便捷的无线互联网接入
    发表于 04-17 15:01

    ESP32运行网页服务器 (Web-Server)-入门篇

    什么是ESP32WebServer?ESP32WebServer是在ESP32微控制上运行的
    的头像 发表于 03-09 14:24 ?4847次阅读
    <b class='flag-5'>ESP32</b>运行网页<b class='flag-5'>服务器</b> (<b class='flag-5'>Web</b>-Server)-入门篇

    乐鑫ESP32调试Wi-Fi常用调试API

    在使用ESP32调试Wi-Fi功能时,由于场景和各种因素的影响,难免会遇到各种连接不上,Wi-Fi断连等问题。下面介绍些API,方便新手调
    的头像 发表于 02-07 18:10 ?2846次阅读
    乐鑫<b class='flag-5'>ESP32</b>调试<b class='flag-5'>Wi-Fi</b>常用调试API

    原来ESP32竟可《“芯”两》既做人体检测传感也做Wi-Fi数据传输

    今天将介绍ESP32如何"芯两",既做人体检测传感也做Wi-Fi数据传输模块;对于使用ESP32
    的头像 发表于 12-18 18:12 ?4237次阅读
    原来<b class='flag-5'>ESP32</b>竟可《<b class='flag-5'>一</b>“芯”两<b class='flag-5'>用</b>》既做人体检测传感<b class='flag-5'>器</b>也做<b class='flag-5'>Wi-Fi</b>数据传输

    Wi-Fi 7与Wi-Fi 6E有什么区别

    也许很多人还在考虑是否要将使用的Wi-Fi设备升级到Wi-Fi 6或Wi-Fi 6E,而这些标准的继任者却已经开始“登堂入室”了。Wi-Fi 7是新
    的头像 发表于 11-07 11:38 ?3879次阅读

    基于ESP32-C3FN4为核心自主研发的Wi-Fi+BT模块-RF-WM-ESP32B1

    WI-FI模组 - RF-WM-ESP32B1是基于ESP32-C3FN4为核心自主研发的Wi-Fi+BT模块,支持IEEE 802.11b/g/n (2.4 GHz
    的头像 发表于 11-07 09:45 ?728次阅读
    基于<b class='flag-5'>ESP32</b>-C3FN4为核心自主研发的<b class='flag-5'>Wi-Fi</b>+BT模块-RF-WM-<b class='flag-5'>ESP32</b>B1

    【AI技术支持】ESP32无线Wi-Fi常用调试API

    Wi-Fi常用调试API在使用esp32调试Wi-Fi功能时,由于场景和各种因素的影响,难免会遇到各种连接不上,Wi-Fi断连等问题。下面介
    的头像 发表于 10-26 08:00 ?1922次阅读
    【AI技术支持】<b class='flag-5'>ESP32</b>无线<b class='flag-5'>Wi-Fi</b>常用调试API

    esp8266和esp32区别是什么

    以下是关于ESP8266和ESP32的主要区别: 处理和架构 : ESP8266 :使用T
    的头像 发表于 08-19 18:16 ?7545次阅读

    esp32什么软件编程

    ESP32款由乐鑫(Espressif)推出的低功耗、高性能的Wi-Fi和蓝牙双模微控制,广泛应用于物联网、智能家居、智能穿戴等领域。要对ES
    的头像 发表于 08-19 17:24 ?7554次阅读