esp8266的wifi自组网

本文介绍了ESP8266在不同工作模式下的功能,包括AP模式(创建热点)、STA模式(接入热点)、AP+STA模式,以及在TCP和UDP协议下的数据发送方式,重点讨论了指令模式和透传模式的优缺点。
摘要由CSDN通过智能技术生成

一、三种模式

1.AP模式

AP模式就是ESP8266充当路由器的角色,理解为我们平常使用的热点,最多支持4台station设备接入

2.STA模式

wifi模块不再产生热点,它只作为一个可以接入其他热点的设备,通过输入热点的用户名和密码,ESP8266就能够接入到其他的热点网络中

3.AP+STA模式

AP+STA模式共存的意思是:ESP8266模块可以作为AP产生热点,同时又可以作为一个STA模式接入其他的热点

二、发送数据的模式

在局域网内的单连接通信
1.指令模式

->服务器(TCP调试助手)发送数据给客户端(ESP8266),直接发送给客户端即可

->客户端(ESP8266)发送数据给服务器(TCP调试),需要esp8266这边先发送AT指令,之后再发送数据

弊端:每次ESP8266 想要发送数据给客户端时,都需要先发送一次指令 AT+CIPSEND=<length> 然后才能发送数据

2.透传模式

Host 通过 uart 将数据发给 ESP8266,ESP8266 再通过无线网络将数据传出去;ESP8266 通过无线网络接收到的数据,同理通过uart 传到 Host

在局域网内的多连接通信

网络中有多个客户端可以连接到一个服务器上,服务器与各个客户端之间都可以互相通信

三、TCP/UDP

1.TCP

TCP是一种面向连接的,提供可靠性,但是速度比UDP慢,有效性降低,全双工通信的,TCP不提供广播或多播服务

2.UDP

UDP是一种无连接的,不确保可靠性,但是速度快,在发送数据之前不需要建立连接,但是长度有限

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ESP-MESH是一个用于创建自组织mesh网络的协议,可以在ESP8266和ESP32设备上运行。以下是使用ESP8266 01S和ESP8266开发板进行组网的步骤和示例代码: 1. 首先,需要将ESP-MESH固件烧录到ESP8266 01S和ESP8266开发板上。可以使用ESP8266 Flasher工具完成该过程。 2. 然后,在Arduino IDE中打开ESP-MESH库的示例代码:File -> Examples -> ESP-MESH -> Mesh_Kit_Light。 3. 在代码中,修改以下参数以适应你的网络环境: - WIFI_SSID - 你的WiFi网络名称 - WIFI_PASSWORD - 你的WiFi网络密码 - MESH_PREFIX - Mesh网络前缀名称 - MESH_PASSWORD - Mesh网络密码 4. 然后,将ESP8266 01S和ESP8266开发板连接到电脑上,并选择正确的开发板和端口。 5. 编译和上传代码到两个设备。 6. 当设备启动并连接到WiFi和Mesh网络时,它们将相互通信并自动组成一个mesh网络。 示例代码: ```C++ #include <ESP8266WiFi.h> #include <ESPAsyncUDP.h> #include <ESPAsyncTCP.h> #include <ESPAsyncWebServer.h> #include <Esp.h> #include <ESPAsyncWiFiManager.h> #include <DNSServer.h> #include <esp8266mesh.h> // WiFi网络名称和密码 #define WIFI_SSID "your_wifi_ssid" #define WIFI_PASSWORD "your_wifi_password" // Mesh网络前缀名称和密码 #define MESH_PREFIX "mesh_network_prefix" #define MESH_PASSWORD "mesh_network_password" // Mesh网络最大节点数 #define MAX_NODE 10 const uint8_t channel = 10; // Mesh网络的频道 esp8266mesh mesh; void setup() { Serial.begin(115200); Serial.println(); // 连接WiFi网络 WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } // 初始化Mesh网络 mesh.init(MESH_PREFIX, MESH_PASSWORD, channel, MAX_NODE); } void loop() { // 处理Mesh网络消息 mesh.update(); // Mesh网络状态 Serial.println("Mesh network status:"); Serial.println("Node ID: " + String(mesh.getNodeId())); Serial.println("Parent ID: " + String(mesh.getParentNodeId())); Serial.println("Root ID: " + String(mesh.getRootNodeId())); Serial.println("Layer: " + String(mesh.getLayer())); Serial.println("Nodes: " + String(mesh.getNodeCount())); Serial.println("Connections: " + String(mesh.getConnectionCount())); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值