[编辑:2021 年 7 月 9 日] 该项目已得到改进、修复并从 ArduinoIDE 移植到 platformio。以下评论中的问题应该已经修复。
通常连接的项目具有某种 Web 或移动 UI。如果您想通过另一件事来控制一件事,尤其是在低延迟和通过互联网上很难实现。这就是我创建这个项目的原因。这是一个 Arduino 框架模板,向您展示如何通过 Internet 连接两个基于 ESP32 的板,在Wi-Fi 连接断开或连接板之一临时断电的情况下,通过自动恢复功能最大限度地减少延迟。很酷的是,如果 ESP32 板在同一个 Wi-Fi 网络中并且如果在不同的网络中,它就可以工作。即使在不同的大陆。
我们在此处描述的模板可以作为您基于 ESP32 项目的各种酷接口的基础,例如:
还有很多很多。
模板的默认功能是通过对面 ESP32 板的按钮对 LED 进行双向控制。您还可以将此模板视为摩尔斯电码 Internet 通信器:)。随意替换代码以通过您需要的任何输入/输出操作来控制按钮和 LED。
ESPAsyncWebServer
库)又充当 HTTP 客户端(基于AsyncTCP
)如果当前连接断开,则写入 Wi-Fi 任务以自动切换到另一个 Wi-Fi 网络。在配置部分,您可以对多个 Wi-Fi 网络凭据进行硬编码 - 这是一种舒适的解决方案,因为如果您在不同位置打开电路板,您无需重新编程它们。
基本上,ESP32 设备之间的虚拟 LAN 网络是通过以下两条线创建的:
Husarnet.join(husarnetJoinCode, hostNameX);
Husarnet.start();
连接也是完全加密、安全和私密的。它不仅可以在 LAN 中工作,还可以通过 Internet 工作,因为连接由Husarnet提供支持- 一个开源 P2P VPN 客户端,它不仅可以在普通计算机上工作,而且可以在 ESP32 微控制器上工作。Husarnet 仅有助于通过 Internet 建立连接,并且其服务器不会转发用户数据。由于延迟较低。
// A dummy web server (see index.html)
server.on("/", HTTP_GET, [](AsyncWebServerRequest* request) {
request->send(200, "text/html", html);
});
// Send a GET request to /led//state/<0 or 1>
server.on("^\\/led\\/([0-9]+)\\/state\\/([0-9]+)$", HTTP_GET,
[] (AsyncWebServerRequest *request) {
String ledNumber = request->pathArg(0);
String state = request->pathArg(1);
digitalWrite(LED_PIN, state.toInt());
request->send(200, "text/plain", "LED: " + ledNumber + ", with state: " + state);
});
从 GitHub 存储库克隆项目并按照以下步骤操作:
1.打开项目
2. 配置你的项目(ESP32-to-ESP32.ino 文件)
您将在https://app.husarnet.com
找到您的加入代码-> 单击所需的网络
->按钮->选项卡Add element
Join Code
const char *husarnetJoinCode = "fc94:b01d:1803:8dd8:b293:5c7d:7639:932a/xxxxxxxxxxxxxxxxxxxxxx
// WiFi credentials
const char* wifiNetworks[][2] = {
{"wifi-ssid-one", "wifi-pass-one"},
{"wifi-ssid-two", "wifi-pass-two"},
}
#define ENABLE_TFT 1 //tested on TTGO T Display
就这样!我希望你会喜欢。很高兴看到您的反馈。
干杯!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !