99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

454398 ? 來(lái)源:工程師吳畏 ? 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“表示服務(wù)器已接受請(qǐng)求并已回復(fù)“200 OK”,這是狀態(tài)代碼,后跟“ r n”,這是HTTP協(xié)議的約束。

“Content-Type:text/html r n“表示響應(yīng)內(nèi)容類型為HTML格式,后跟” r n“

在HTTP協(xié)議結(jié)束時(shí),網(wǎng)絡(luò)服務(wù)器將返回顯示”Hello world“的網(wǎng)頁(yè)。

代碼

#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);

}

代碼說(shuō)明

首先,我們加入了Wi-Fi庫(kù),它將幫助我們創(chuàng)建網(wǎng)絡(luò)服務(wù)器。然后我們存儲(chǔ)了Wi-Fi名稱和密碼,以便我們可以連接到這個(gè)Wi-Fi網(wǎng)絡(luò)。之后,我們定義了我們要將數(shù)據(jù)發(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網(wǎng)絡(luò)。如果與Wi-Fi網(wǎng)絡(luò)的連接成功,則“連接成功”將顯示在串行監(jiān)視器上。否則,它將繼續(xù)嘗試,直到它將連接到Wi-Fi網(wǎng)絡(luò)。

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());

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

server.begin( );

在循環(huán)函數(shù)中,我們檢查了是否有客戶端發(fā)送了http請(qǐng)求。如果有任何客戶端請(qǐng)求可用,它將存儲(chǔ)在字符中并顯示在串行監(jiān)視器上。在請(qǐng)求結(jié)束時(shí),我們將發(fā)送HTML命令,它將在網(wǎng)頁(yè)上打印“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

}

如何運(yùn)行代碼

使用您的Wi-Fi名稱和密碼更改代碼中的Wi-Fi名稱和密碼。然后上傳代碼并打開串行監(jiān)視器。串行監(jiān)視器將顯示IP地址,如下圖所示。在瀏覽器中輸入此IP地址。

輸入IP地址后,網(wǎng)頁(yè)將如下所示。

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

    關(guān)注

    0

    文章

    139

    瀏覽量

    24872
  • ESP32
    +關(guān)注

    關(guān)注

    21

    文章

    1020

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    CY8CPROTO-062S2-43439無(wú)法連接到ThingSpeak服務(wù)器怎么解決?

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

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

    問(wèn)題:連接到 WPA3_WPA2_PSK 或 WPA3_SAE Wi-Fi 網(wǎng)絡(luò)時(shí)系統(tǒng)掛起 我遇到個(gè)問(wèn)題,當(dāng)我嘗試連接啟用了CY_WCM_
    發(fā)表于 06-05 07:23

    基于 Wi-Fi 的定位服務(wù)

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

    nRF Cloud Wi-Fi 定位服務(wù)

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

    Wi-Fi 定位服務(wù)

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

    ESP32運(yùn)行網(wǎng)頁(yè)服務(wù)器 (Web-Server)-入門篇

    什么是ESP32WebServer?ESP32WebServer是在ESP32微控制上運(yùn)行的個(gè)
    的頭像 發(fā)表于 03-09 14:24 ?4365次閱讀
    <b class='flag-5'>ESP32</b>運(yùn)行網(wǎng)頁(yè)<b class='flag-5'>服務(wù)器</b> (<b class='flag-5'>Web</b>-Server)-入門篇

    樂鑫ESP32調(diào)試Wi-Fi常用調(diào)試API

    在使用ESP32調(diào)試Wi-Fi功能時(shí),由于場(chǎng)景和各種因素的影響,難免會(huì)遇到各種連接不上,Wi-Fi斷連等問(wèn)題。下面介紹些API,方便新手調(diào)
    的頭像 發(fā)表于 02-07 18:10 ?2631次閱讀
    樂鑫<b class='flag-5'>ESP32</b>調(diào)試<b class='flag-5'>Wi-Fi</b>常用調(diào)試API

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

    今天將介紹ESP32如何"芯兩",既做人體檢測(cè)傳感也做Wi-Fi數(shù)據(jù)傳輸模塊;對(duì)于使用ESP32
    的頭像 發(fā)表于 12-18 18:12 ?3971次閱讀
    原來(lái)<b class='flag-5'>ESP32</b>竟可《<b class='flag-5'>一</b>“芯”兩<b class='flag-5'>用</b>》既做人體檢測(cè)傳感<b class='flag-5'>器</b>也做<b class='flag-5'>Wi-Fi</b>數(shù)據(jù)傳輸

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

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

    基于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 ?674次閱讀
    基于<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技術(shù)支持】ESP32無(wú)線Wi-Fi常用調(diào)試API

    Wi-Fi常用調(diào)試API在使用esp32調(diào)試Wi-Fi功能時(shí),由于場(chǎng)景和各種因素的影響,難免會(huì)遇到各種連接不上,Wi-Fi斷連等問(wèn)題。下面介
    的頭像 發(fā)表于 10-26 08:00 ?1829次閱讀
    【AI技術(shù)支持】<b class='flag-5'>ESP32</b>無(wú)線<b class='flag-5'>Wi-Fi</b>常用調(diào)試API

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

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

    esp32什么軟件編程

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

    服務(wù)器集群中 IP 地址管理混亂

    服務(wù)器集群為各種關(guān)鍵業(yè)務(wù)提供強(qiáng)大的計(jì)算和存儲(chǔ)能力。但如果服務(wù)器集群的 IP 地址管理混亂會(huì)給服務(wù)的部署和維護(hù)帶來(lái)影響。
    的頭像 發(fā)表于 08-01 14:45 ?531次閱讀

    IR900 Wi-Fi聯(lián)網(wǎng)的配置過(guò)程

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