用ESP8266创建ESP-MESH
概述
ESP-MESH是一个网络协议,这个协议建立在Wi-Fi协议之上。ESP-MESH是许多装置(通常定义为节点)在较大的物理区间上通过单一的WLAN交换数据。ESP-MESH允许多个节点通过无线局域网交换信息。这个网络支持ESP32和ESP8266板。这个项目将使用NodeMCU(ESP8266)板硬件和ESP-MESH软件协议对设备进行控制。
什么时mesh网络
MESH网络是一种本地网络拓扑,其中节点直接、动态且无层次地相互连接,并相互协作以有效地将数据从客户端路由到客户端。Mesh网络支持自动组网,这意味着当用户设置Mesh网络时,任何节点都可以扫描接入点并可以轻松连接。单个路由器可以连接87个节点。
ESP-MESH的架构
在这个架构中,一个节点不需要去连接特定的中心节点。节点的任务是对其他的信息传输进做出响应。这就使多数装置来扩大到更大的区域。这些节点可以自组织和动态的和其他的节点交互,保证信息帧可以传递到最终的节点,如果由任何的节点从网络中退出了,将保证系统可以建立起路径来完成到目的地的信息传递。ESP-MESH 网络的覆盖面积要大得多,因为节点无需在中心节点的范围内即可实现互联互通。
创建和为ESP-MESH网络编程
Step 1:Arduino IDE
需要安装5个库。分别是:
-
DHT
-
painlessMesh
-
ArduinJson
-
TaskScheduler
-
ESPAsyncTCP
-
安装传感器DHT
要安装这些库,打开Arduino IDE > go to Tools > Manage Libraries. -
安装DHT传感器库
-
安装painlessmesh库
-
安装ArduinoJson库
-
安装TaskScheduler库
-
安装ESPAsyncTCP库
Step 2: ESP8266开始设置
- 打开Arduino IDE,从文件 -> 首选项
- 添加板访问地址
http://arduino.esp8266.com/stable/package_esp8266com_index.json - 在开发板管理器中增加ESP8266
这以部分应该会多次才能完成。可能是外网的原因。谁要是卡脖子了就坏了。 - 安装好后在板子中就可以选择我们需要的板子了
Step 3:不同的节点都使用ESP8266
节点1
有一个LED和一个DHT11传感器,可以将温度和湿度数据传送到节点2和节点3.
连接:
DHT11 ==> NodeMCU
- GND ==> GND
- VCC ==> 3V3
- Data ==> D4
YellowLED ==> NodeMCU
- +VE ==> D5
- -VE ==> GND
节点2
有一个按钮控制节点1上的LED,1个LED显示数据传输了。
连接:
Pushbutton ==> NodeMCU
- +VE ==> D4
- -VE ==> GND
GreenLED ==> NodeMCU
- +VE ==> D5
- -VE &