【史上最全面esp32教程】网络篇和tcp/ip的使用

您所在的位置:网站首页 根据域名查询ip和端口地址的区别 【史上最全面esp32教程】网络篇和tcp/ip的使用

【史上最全面esp32教程】网络篇和tcp/ip的使用

2024-07-09 19:42:20| 来源: 网络整理| 查看: 265

文章目录 前言esp32网络学习路线ESP32连接网络ESP32 TCP/IP通信示例程序

前言

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 指定要连接的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 #include

创建服务端并指定端口: 使用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时退出

代码分析:

先连接wifi定义WiFiServer打开客户端loop函数中看是否有客户端连接如果有客户端发信息,则使用readStringUntil,直到\n时才停止判断字符串,执行对应操作

如果不知道ip,可以使用localIP()获取,并打印到串口.

#include #include #include #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大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭