精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

    文章

    138

    瀏覽量

    24371
  • ESP32
    +關注

    關注

    18

    文章

    958

    瀏覽量

    17098
收藏 人收藏

    評論

    相關推薦

    基于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 ?164次閱讀
    基于<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 ?258次閱讀
    【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 ?4432次閱讀

    IR900 Wi-Fi聯網的配置過程

    ”接口選擇Wi-Fi接口: dot11radio1類型選擇:動態地址( DHCP) 如果Wi-Fi路由沒有開DHCP,請選擇類型:靜
    發表于 07-25 06:09

    ESP8266如何為應用程序選擇正確的Wi-Fi模塊嗎?

    連接 4 站點 - 接入點/軟AP同時具有站點模式(使主機能夠在網絡上充當站點) - Zeroconf DNS服務發現 - 次打開4T
    發表于 07-19 16:56

    如何將多個ESP連接到ESP并向服務器發送數據?

    。 該站模式 ESP 連接了傳感。所有這些站模式 esp 收集傳感數據并將數據發送到主
    發表于 07-19 06:49

    AT 0.60.0.0看不到我的Wi-Fi網絡,為什么?

    Wi-Fi 網絡并連接到它。當然,我的路由AP SSID已啟用,我可以在其他設備上看到此網絡。這不是什么大問題,但我認為它仍然是錯誤
    發表于 07-18 08:31

    如何記住ESP8266中的Wi-Fi憑據?

    您好,我正在與ESP8266合作,在公司進行項目。在成功智能配置后,我無法記住 Wi-Fi 憑據。ESP8266軟件版本如下: 在GMR
    發表于 07-15 07:07

    為什么ESP8266沒有檢測到Wi-Fi的SSID?

    你好,我的ESP8266沒有檢測到我家Wi-Fi的SSID。我嘗試打開我的 iPhone 熱點,我可以正常查看和連接(我也成功連接到 MQTT)。相反,沒有辦法看到我家的
    發表于 07-09 06:44

    ESP826如何運行AP TCP服務器

    應該從平板電腦客戶端獲取命令進行進步處理。不涉及額外的路由。 現在,AP工作正常,平板電腦可以登錄WLAN并獲得正確的IP地址。但是客戶
    發表于 07-09 06:27

    使用的是esp32官方的Wi-Fi例程,一直連接不上Wi-Fi怎么解決?

    使用的是esp32官方的Wi-Fi例程 一直連接不上Wi-Fi 日志: ESP-ROM:esp8
    發表于 07-02 07:21

    ESP32-S2如何找到send函數的底層接口函數?

    你好,我正在用ESP32-S2做一個項目,當有Wi-Fi時,通過Wi-Fi連接服務器;當沒
    發表于 06-28 08:18

    請問ESP32-AT支持Wi-Fi漫游指令嗎?

    請問 ESP32-AT 支持 Wi-Fi 漫游指令嗎?我這邊在 ESP-IDF 下面看到有 roaming 的示例,但是在 esp-at 中沒有找到相關指令。
    發表于 06-27 07:13

    使用ESP32-C3的SoftAP模式創建Wi-Fi熱點,ESP32-C3不輸出任何日志,并且無法響應,為什么?

    問題描述: 我正在使用ESP32-C3的SoftAP模式創建Wi-Fi熱點,并使用手機連接到該熱點。當手機連接成功并熄屏
    發表于 06-07 08:26

    Wi-Fi HaLow和傳統Wi-Fi的區別

    Wi-Fi HaLow和傳統Wi-Fi的區別? Wi-Fi種無線網絡技術,可以連接到互聯網或局域網,為用戶提供無線上網的便利。隨著科技的
    的頭像 發表于 02-02 15:28 ?1119次閱讀