資料介紹
描述
[編輯:2021 年 7 月 9 日] 該項(xiàng)目已得到改進(jìn)、修復(fù)并從 ArduinoIDE 移植到 platformio。以下評(píng)論中的問(wèn)題應(yīng)該已經(jīng)修復(fù)。
通常連接的項(xiàng)目具有某種 Web 或移動(dòng) UI。如果您想通過(guò)另一件事來(lái)控制一件事,尤其是在低延遲和通過(guò)互聯(lián)網(wǎng)上很難實(shí)現(xiàn)。這就是我創(chuàng)建這個(gè)項(xiàng)目的原因。這是一個(gè) Arduino 框架模板,向您展示如何通過(guò) Internet 連接兩個(gè)基于 ESP32 的板,在Wi-Fi 連接斷開(kāi)或連接板之一臨時(shí)斷電的情況下,通過(guò)自動(dòng)恢復(fù)功能最大限度地減少延遲。很酷的是,如果 ESP32 板在同一個(gè) Wi-Fi 網(wǎng)絡(luò)中并且如果在不同的網(wǎng)絡(luò)中,它就可以工作。即使在不同的大陸。
我們?cè)诖颂幟枋龅哪0蹇梢宰鳛槟?ESP32 項(xiàng)目的各種酷接口的基礎(chǔ),例如:
- 智能手套來(lái)控制你的遙控車(chē)
- 遠(yuǎn)程控制您的智能家居設(shè)備
- 到您家的安全和私人 Wi-Fi 密鑰(當(dāng)連接是 P2P 時(shí),沒(méi)有第 3 方可以訪問(wèn)加密密鑰)
- 一個(gè)非常快速的互聯(lián)網(wǎng)按鈕,您的東西
還有很多很多。
模板的默認(rèn)功能是通過(guò)對(duì)面 ESP32 板的按鈕對(duì) LED 進(jìn)行雙向控制。您還可以將此模板視為摩爾斯電碼 Internet 通信器:)。隨意替換代碼以通過(guò)您需要的任何輸入/輸出操作來(lái)控制按鈕和 LED。
這個(gè)怎么運(yùn)作
-
ESP32 既充當(dāng) HTTP 服務(wù)器(基于
ESPAsyncWebServer
庫(kù))又充當(dāng) HTTP 客戶(hù)端(基于AsyncTCP
) - ESP32 自動(dòng)檢測(cè)同一 Husarnet VPN 網(wǎng)絡(luò)中的所有對(duì)等點(diǎn)
- 當(dāng)按下按鈕時(shí),HTTP 請(qǐng)求被發(fā)送到所有其他對(duì)等點(diǎn)并打開(kāi) LED
- 釋放按鈕時(shí),向所有其他對(duì)等方發(fā)送 HTTP 請(qǐng)求并打開(kāi) LED
無(wú)線網(wǎng)絡(luò)任務(wù)
如果當(dāng)前連接斷開(kāi),則寫(xiě)入 Wi-Fi 任務(wù)以自動(dòng)切換到另一個(gè) Wi-Fi 網(wǎng)絡(luò)。在配置部分,您可以對(duì)多個(gè) Wi-Fi 網(wǎng)絡(luò)憑據(jù)進(jìn)行硬編碼 - 這是一種舒適的解決方案,因?yàn)槿绻诓煌恢么蜷_(kāi)電路板,您無(wú)需重新編程它們。
基本上,ESP32 設(shè)備之間的虛擬 LAN 網(wǎng)絡(luò)是通過(guò)以下兩條線創(chuàng)建的:
Husarnet.join(husarnetJoinCode, hostNameX);
Husarnet.start();
連接也是完全加密、安全和私密的。它不僅可以在 LAN 中工作,還可以通過(guò) Internet 工作,因?yàn)檫B接由Husarnet提供支持- 一個(gè)開(kāi)源 P2P VPN 客戶(hù)端,它不僅可以在普通計(jì)算機(jī)上工作,而且可以在 ESP32 微控制器上工作。Husarnet 僅有助于通過(guò) Internet 建立連接,并且其服務(wù)器不會(huì)轉(zhuǎn)發(fā)用戶(hù)數(shù)據(jù)。由于延遲較低。
HTTP 服務(wù)器
// 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);
});
組裝
- 在引腳P0和GND之間連接按鈕
- 在引腳27和GND之間串聯(lián) LED 二極管和電阻
- 將電池連接到基于 ESP32 的開(kāi)發(fā)板。在項(xiàng)目中,我們使用帶有內(nèi)置 LDO 的 ESP32 devkit。查看基于 ESP32 的電路板的最大輸入電壓電平以避免損壞。
準(zhǔn)備固件
從 GitHub 存儲(chǔ)庫(kù)克隆項(xiàng)目并按照以下步驟操作:
1.打開(kāi)項(xiàng)目
- 從安裝了 Platformio 擴(kuò)展的 Visual Studio Code 打開(kāi)項(xiàng)目文件夾
2. 配置你的項(xiàng)目(ESP32-to-ESP32.ino 文件)
- 獲取您的 Husarnet VPN 加入代碼(允許您將設(shè)備連接到同一個(gè) VPN 網(wǎng)絡(luò))
您將在https://app.husarnet.com
找到您的加入代碼-> 單擊所需的網(wǎng)絡(luò)
->按鈕->選項(xiàng)卡Add element
Join Code
- 將您的 Husarnet 加入代碼放在這里:
const char *husarnetJoinCode = "fc94:b01d:1803:8dd8:b293:5c7d:7639:932a/xxxxxxxxxxxxxxxxxxxxxx
- 在此處添加您的 Wi-Fi 網(wǎng)絡(luò)憑據(jù):
// WiFi credentials
const char* wifiNetworks[][2] = {
{"wifi-ssid-one", "wifi-pass-one"},
{"wifi-ssid-two", "wifi-pass-two"},
}
- 如果您的 ESP32 板是 ESP32 TTGO T Display,那么您可以通過(guò)第 14 行啟用 LCD/TFT 顯示:
#define ENABLE_TFT 1 //tested on TTGO T Display
- 將項(xiàng)目上傳到您的ESP32 板(所有板的代碼相同)。
- 為兩個(gè) ESP32 模塊供電并等待大約 15 秒,讓您的 ESP32 設(shè)備連接到 Wi-Fi 網(wǎng)絡(luò)并建立 P2P 連接(在 LAN 和 Internet 中均有效)。
就這樣!我希望你會(huì)喜歡。很高興看到您的反饋。
干杯!
- 基于ESP32的網(wǎng)絡(luò)電臺(tái) 9次下載
- 使用ESP8266或ESP32通過(guò)Alexa控制家用電器
- 樂(lè)鑫ESP32-MINI-1參考設(shè)計(jì)
- 樂(lè)鑫ESP32-MINI-1U參考設(shè)計(jì)
- 樂(lè)鑫ESP32-SenseKit參考設(shè)計(jì)
- 樂(lè)鑫ESP32-LyraTD-DSPG_用戶(hù)手冊(cè)
- 樂(lè)鑫ESP32-DevKitS-V1.1參考設(shè)計(jì)
- 樂(lè)鑫ESP32-PICO-MINI-02參考設(shè)計(jì)
- 樂(lè)鑫ESP32-LyraTD-SYNA_用戶(hù)手冊(cè)
- 樂(lè)鑫ESP32-PICO-MINI-02U參考設(shè)計(jì)
- 樂(lè)鑫ESP32-MeshKit-Light_使用指南
- ESP32系列芯片的規(guī)格 7次下載
- ESP32 SDIO 使用教程
- ESP32 開(kāi)發(fā)之旅② Arduino For ESP32說(shuō)明
- 使用ESP32-CAM板訪問(wèn)網(wǎng)絡(luò) 43次下載
- ESP32能取代STM32嗎?哪個(gè)更好? 1.3w次閱讀
- 淺析ESP32運(yùn)行MQTT客戶(hù)端進(jìn)行主題的發(fā)布和訂閱的方法 4081次閱讀
- 基于ESP32-S3的高性能開(kāi)發(fā)板介紹 1w次閱讀
- ESP32-C3 WIFI的工作模式 5207次閱讀
- 什么是ESP32-CAM攝像頭? 2.4w次閱讀
- 基于ESP32的簡(jiǎn)易web服務(wù)器設(shè)計(jì) 3990次閱讀
- 使用ESP32連接騰訊云實(shí)現(xiàn)遠(yuǎn)程控制 3745次閱讀
- 使用ESP32實(shí)現(xiàn)UDP通信的方法 6519次閱讀
- ESP32使用MiroPython編程環(huán)境搭建 3047次閱讀
- 基于ESP32制造有趣的超級(jí)馬里奧主題時(shí)鐘 4783次閱讀
- ESP8266/ESP32自動(dòng)下載原理 4742次閱讀
- 基于ESP-WROOM-32E專(zhuān)為IoT設(shè)計(jì)的FireBeetle ESP32-E主控板介紹 5025次閱讀
- ESP32的數(shù)字遙測(cè)實(shí)現(xiàn) 1779次閱讀
- 如何使用ESP32創(chuàng)建一個(gè)氣象站 4040次閱讀
- dfrobotBeetle-ESP32控制器簡(jiǎn)介 2974次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費(fèi)
- 2AD庫(kù)封裝庫(kù)安裝教程
- 0.49 MB | 1次下載 | 免費(fèi)
- 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費(fèi)
- 4網(wǎng)絡(luò)安全從業(yè)者入門(mén)指南
- 2.91 MB | 1次下載 | 免費(fèi)
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費(fèi)
- 6海川SM5701規(guī)格書(shū)
- 1.48 MB | 次下載 | 免費(fèi)
- 7H20PR5電磁爐IGBT功率管規(guī)格書(shū)
- 1.68 MB | 次下載 | 1 積分
- 8IP防護(hù)等級(jí)說(shuō)明
- 0.08 MB | 次下載 | 免費(fèi)
本月
- 1貼片三極管上的印字與真實(shí)名稱(chēng)的對(duì)照表詳細(xì)說(shuō)明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開(kāi)發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開(kāi)發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設(shè)計(jì)指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍(lán)牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費(fèi)
- 8蘋(píng)果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評(píng)論