前言
ESP32是一款集成Wi-Fi和蓝牙的开发板,它可以轻松地和其他设备进行网络和TCP/IP通信
提示:以下是本篇文章正文内容,下面案例可供参考
esp32网络学习路线
ESP32网络学习:
了解网络协议:
在了解ESP32的网络功能之前,需要了解一些基本的网络协议,例如TCP,IP,DNS和HTTP等。这可以帮助您更深入地了解如何使用ESP32与其他设备进行通信。
配置Wi-Fi:
可以通过在代码中编写Wi-Fi网络的SSID和密码来配置ESP32连接到Wi-Fi网络。您需要通过WiFi.begin()函数初始化Wi-Fi连接。该函数返回一个值,表示设备是否成功连接到网络。
获取IP地址:
一旦ESP32连接到Wi-Fi,您可以使用WiFi.localIP()函数获取ESP32的IP地址。此IP地址将用于与其他设备进行通信。
使用ping测试连接:
您可以使用ping命令测试您的ESP32是否可以与其他设备进行连接。只需要键入ping后跟ESP32的IP地址即可。
进行HTTP请求:
您可以使用HTTP请求库(例如ArduinoHttpClient)在ESP32和应用程序之间进行通信。使用HTTP的一个优点是它是面向Web的,因此它非常适用于与Web API进行通信。
使用WebSocket:
WebSocket可以让ESP32与其他设备进行双向通信,这对于实时应用程序非常有用。您需要使用一个WebSocket客户端库(例如ArduinoWebSocket)。
ESP32连接网络
配置Wi-Fi
使用ESP32连接到Wi-Fi网络有多种方式。可以通过在代码中编写Wi-Fi网络的SSID和密码、通过SoftAP模式创建一个热点以及使用WiFiManager库等方式。以下是通过代码配置ESP32连接到Wi-Fi网络的步骤:
- 包含Wi-Fi库。
#include <WiFi.h>
- 指定要连接的Wi-Fi网络的SSID和密码。
const char* ssid = "SSID";
const char* 密码 = "...";
- 在setup()函数中初始化Wi-Fi连接。
WiFi.begin(ssid, password);//开始WiFi连接
// 等待Wi-Fi连接
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
在第二步中,我们可以定义变量去存储wifi名称和密码,也可以在WiFi.begin的参数里直接添加我们需要的名称和密码。
WiFi.begin(ssid, password);//开始wifi连接
WiFi.status()获取wifi状态
获取IP地址:
String ip = WiFi.localIP();
Serial.print("IP address: ");
Serial.println(ip);
我们可以使用WiFi.localIP();函数获取ip,返回值为String
我们可以通过串口打印出来。
ESP32 TCP/IP通信
包含头文件:
#include <WiFiClient.h>
#include <WiFiServer.h>
创建服务端并指定端口:
使用WiFiServer类开启tcp服务端
WiFiServer server(80); //使用TCP端口80创建一个WiFi服务器
server.begin(); //开启服务器
接收响应,进行判断是否为合法的客户端:
WiFiClient client = server.available(); //检查是否有新的客户机连接
if (client) {
//如果为真,则代表有客户端了
}
使用server.available();返回一个WiFiClient,他是其他的客户端 的类。
接收客户端的信息:
char c = client.read();
我们也可以使用下面的读取字符串:
String rea = client.readStringUntil('\n');
client.readStringUntil(‘\n’);直到读到’\n’时才停止读取
给客户端发信息:
我们可以直接使用print或println函数进行发送信息:
client.println(变量);
client.print("Message");
停止与客户端的通信:
client.stop();
示例程序
发送LedOn时d0亮,LedOff则相反。
发送RelaysOn时继电器吸气磁铁,RelaysOff则相反。
发送BeepOn时,响一次。
发送quit时退出
代码分析:文章来源:https://www.toymoban.com/news/detail-444492.html
- 先连接wifi
- 定义WiFiServer
- 打开客户端
- loop函数中看是否有客户端连接
- 如果有客户端发信息,则使用readStringUntil,直到\n时才停止
- 判断字符串,执行对应操作
如果不知道ip,可以使用localIP()获取,并打印到串口.文章来源地址https://www.toymoban.com/news/detail-444492.html
#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiServer.h>
#define Led 2
#define Relays 5
#define beep 7
WiFiServer server(8080);
void setup() {
// 设置串口通信
Serial.begin(115200);
pinMode(Led,OUTPUT);
pinMode(Relays,OUTPUT);
pinMode(beep,OUTPUT);
// 连接到Wi-Fi
WiFi.begin("wifi", "12345678");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("连接到Wi-Fi...");
}
Serial.println("连接到Wi-Fi成功!");
server.begin();
}
void loop() {
WiFiClient client = server.available();
if(client)
{
String rea = client.readStringUntil('\n');
if(rea == "LedOn")
{
digitalWrite(Led,HIGH);
}
else if(rea == "LedOff")
{
digitalWrite(Led,LOW);
}
else if(rea == "RelaysOn")
{
digitalWrite(Relays,HIGH);
}
else if(rea == "RelaysOff")
{
digitalWrite(Relays,LOW);
}
else if(rea == "Beep")
{
for(char i = 0;i<10;i++)
digitalWrite(beep,!digitalRead(beep));//读取现在的状态,并切换状态,响
}
else if(rea == "quit")
{
client.stop();
}
}
}
到了这里,关于【史上最全面esp32教程】网络篇和tcp/ip的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!