一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣用ESP32創(chuàng)建一個Web服務器 并將其連接到Wi-Fi獲取IP地址

454398 ? 來源:工程師吳畏 ? 2019-07-26 09:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

入門

客戶端與客戶端之間的連接webserver是使用HTTP協(xié)議建立的。 HTTP協(xié)議如下所示:HTTP/1.1 200 OK r nContent-Type:text/html r n r n“。

”HTTP/1.1 200 OK“表示服務器已接受請求并已回復“200 OK”,這是狀態(tài)代碼,后跟“ r n”,這是HTTP協(xié)議的約束。

“Content-Type:text/html r n“表示響應內容類型為HTML格式,后跟” r n“

在HTTP協(xié)議結束時,網絡服務器將返回顯示”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庫,它將幫助我們創(chuàng)建網絡服務器。然后我們存儲了Wi-Fi名稱和密碼,以便我們可以連接到這個Wi-Fi網絡。之后,我們定義了我們要將數(shù)據發(fā)送到的端口。

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網絡的連接成功,則“連接成功”將顯示在串行監(jiān)視器上。否則,它將繼續(xù)嘗試,直到它將連接到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地址,我們將在串行監(jiān)視器上顯示它。

Serial.println(WiFi.localIP());

然后我們啟動了服務器,以便我們可以獲取數(shù)據并將數(shù)據發(fā)送到瀏覽器。

server.begin( );

在循環(huán)函數(shù)中,我們檢查了是否有客戶端發(fā)送了http請求。如果有任何客戶端請求可用,它將存儲在字符中并顯示在串行監(jiān)視器上。在請求結束時,我們將發(fā)送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名稱和密碼。然后上傳代碼并打開串行監(jiān)視器。串行監(jiān)視器將顯示IP地址,如下圖所示。在瀏覽器中輸入此IP地址。

輸入IP地址后,網頁將如下所示。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Web服務器
    +關注

    關注

    0

    文章

    139

    瀏覽量

    24868
  • ESP32
    +關注

    關注

    21

    文章

    1017

    瀏覽量

    19278
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CY8CPROTO-062S2-43439無法連接到ThingSpeak服務器怎么解決?

    的 開發(fā)板上將數(shù)據發(fā)送到CY8CPROTO-062S2-43439 ThingSpeak 。我的主板成功連接到 Wi-Fi ,但無法連接到 ThingSpeak 服務器,并出現(xiàn)以下錯誤
    發(fā)表于 06-05 08:26

    連接到 WPA3_WPA2_PSK 或 WPA3_SAE Wi-Fi 網絡時系統(tǒng)掛起,為什么?

    問題:連接到 WPA3_WPA2_PSK 或 WPA3_SAE Wi-Fi 網絡時系統(tǒng)掛起 我遇到問題,當我嘗試連接啟用了CY_WCM_
    發(fā)表于 06-05 07:23

    基于 Wi-Fi 的定位服務

    GNSS 的低精度模式也會比 Wi-Fi 和蜂窩定位服務提供更好的定位精度,因此在測量中使用了低精度模式,我們可以看到 GNSS 與其他定位服務 “最接近 ”的功耗差異。結果確實證明了這
    發(fā)表于 04-17 15:16

    nRF Cloud Wi-Fi 定位服務

    、Predictive-GPS、Single-Cell、Multi-Cell 和 Wi-Fi 定位。通過利用 nRF Cloud 的優(yōu)化定位算法,基于 Nordic SoC 和 模組的產品可在定位
    發(fā)表于 04-17 15:07

    Wi-Fi 定位服務

    Wi-Fi種著名的無線網絡技術,用于設備的局域網和互聯(lián)網接入。Wi-Fi 通過 Wi-Fi 網絡為家庭、辦公室和學校等環(huán)境提供便捷的無線互聯(lián)網接入
    發(fā)表于 04-17 15:01

    ESP32運行網頁服務器 (Web-Server)-入門篇

    什么是ESP32WebServer?ESP32WebServer是在ESP32微控制上運行的
    的頭像 發(fā)表于 03-09 14:24 ?4326次閱讀
    <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,方便新手調
    的頭像 發(fā)表于 02-07 18:10 ?2619次閱讀
    樂鑫<b class='flag-5'>ESP32</b>調試<b class='flag-5'>Wi-Fi</b>常用調試API

    原來ESP32竟可《“芯”兩》既做人體檢測傳感也做Wi-Fi數(shù)據傳輸

    今天將介紹ESP32如何"芯兩",既做人體檢測傳感也做Wi-Fi數(shù)據傳輸模塊;對于使用ESP32
    的頭像 發(fā)表于 12-18 18:12 ?3948次閱讀
    原來<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>數(shù)據傳輸

    Wi-Fi 7與Wi-Fi 6E有什么區(qū)別

    也許很多人還在考慮是否要將使用的Wi-Fi設備升級到Wi-Fi 6或Wi-Fi 6E,而這些標準的繼任者卻已經開始“登堂入室”了。Wi-Fi 7是新
    的頭像 發(fā)表于 11-07 11:38 ?3494次閱讀

    基于ESP32-C3FN4為核心自主研發(fā)的Wi-Fi+BT模塊-RF-WM-ESP32B1

    WI-FI模組 - RF-WM-ESP32B1是基于ESP32-C3FN4為核心自主研發(fā)的Wi-Fi+BT模塊,支持IEEE 802.11b/g/n (2.4 GHz
    的頭像 發(fā)表于 11-07 09:45 ?662次閱讀
    基于<b class='flag-5'>ESP32</b>-C3FN4為核心自主研發(fā)的<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斷連等問題。下面介
    的頭像 發(fā)表于 10-26 08:00 ?1820次閱讀
    【AI技術支持】<b class='flag-5'>ESP32</b>無線<b class='flag-5'>Wi-Fi</b>常用調試API

    esp8266和esp32區(qū)別是什么

    以下是關于ESP8266和ESP32的主要區(qū)別: 處理和架構 : ESP8266 :使用T
    的頭像 發(fā)表于 08-19 18:16 ?7354次閱讀

    esp32什么軟件編程

    ESP32款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍牙雙模微控制,廣泛應用于物聯(lián)網、智能家居、智能穿戴等領域。要對ES
    的頭像 發(fā)表于 08-19 17:24 ?7012次閱讀

    服務器集群中 IP 地址管理混亂

    服務器集群為各種關鍵業(yè)務提供強大的計算和存儲能力。但如果服務器集群的 IP 地址管理混亂會給服務的部署和維護帶來影響。
    的頭像 發(fā)表于 08-01 14:45 ?528次閱讀

    IR900 Wi-Fi聯(lián)網的配置過程

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