Obsah:
- Zásoby
- Krok 1: Zajistěte, aby to fungovalo
- Krok 2: Jak kód funguje
- Krok 3: Nastavte NODEMCU jako server
- Krok 4: Načtěte soubor HTML
- Krok 5: Zkuste to
Video: Jak používat ESP8266 jako webový server: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
Ahoj, aktuálně používám Windows 10, NodeMCU 1.0 a zde je seznam softwaru, který jsem použil, a instalační příručky, které jsem sledoval:
- Arduino IDE
- Další desky pro esp8266
- Spiff
Použitá knihovna:
Websocket
Použil jsem NodeMCU jako server k obsluze souboru HTML, který jsem vytvořil z tohoto výukového programu. Aby tento soubor sloužil, nahrál jsem soubor do systému souborů nodemcu pomocí Spiffs. Soubor HTML odesílá data do nodemcu pomocí webových socketů, které mají být vytištěny na sériovém monitoru. Rychlá obousměrná komunikace prostřednictvím webových soketů serveru a klienta umožnila toto použít jako dálkové ovládání. V následujících krocích vysvětlíme, jak můj kód funguje
Zásoby
NodeMCU
Krok 1: Zajistěte, aby to fungovalo
Zde jsou kroky, jak to funguje
- Stáhněte si přiložený soubor a otevřete soubor mousebot.ino
- Přejděte na skicu> zobrazit složku skici a vytvořte novou složku s názvem data
- Uložte soubor html z tohoto kurzu do složky s názvem. Svůj jsem pojmenoval „Joystick“
- Zajistěte, aby váš nástroj byl již funkční, přejděte na nástroje a podívejte se na „nahrání dat skici esp8266“
- Nahrajte soubor html do nodemcu kliknutím na „Odeslat data skici esp8266“
- Po nahrání souboru nahrajte do souboru nodemcu soubor mousebot.ino tak, že přejdete do arduino IDE a stisknete ctrl U
Krok 2: Jak kód funguje
Nejprve zahrneme knihovny, které tento kód použije
// pro povolení připojení ESP8266 k WIFI
#include #include #include // Umožňuje ESP8266 fungovat jako server #include // umožňuje komunikaci se serverem a klientem (vaším připojeným zařízením) #include #include // Chcete -li otevřít aktualizovaný soubor na nodemcu #include
Nastavte esp8266 jako webový server otevřený na portu 80. Porty jsou cesty, kterými budou data procházet. Jako port serveru odešle soubor HTML klientovi (zařízení, která jsou k němu připojena).
Přidá připojení websocket pomocí portu 81 pro naslouchání zpráv od klienta
Websockety mají parametr num, WStype_t, užitečné zatížení a velikost. Číslo určuje číslo klienta, užitečné zatížení je zpráva, kterou odesílá, velikost je délka zprávy a WStype_t je pro různé události, jako je
- WStype_DISCONNECTED - při odpojení klienta.
- WStype_CONNECTED: - když se klient připojí
- WStype_TEXT - přijatá data od klienta
V závislosti na typu události se provádějí různé akce, které jsou zde komentovány
neplatné webSocketEvent (uint8_t num, WStype_t typ, uint8_t * užitečné zatížení, size_t délka) {
switch (type) {case WStype_DISCONNECTED: Serial.printf ("[%u] Disconnected! / n", num); // vytiskne data na konec sériového monitoru; případ WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // získá IP klienta Serial.printf ("[%u] Připojeno z%d.%d.%d.%d URL:%s / n", num, ip [0], ip [1], ip [2], ip [3], užitečné zatížení); webSocket.sendTXT (num, "Connected"); // odešle "conencted" do konzoly prohlížeče} break; případ WStype_TEXT: Serial.printf ("[%u] Data: %s / n", počet, užitečné zatížení); // vytiskne číslo klienta v %u a data přijatá jako řetězce v %s / n break;}}
Krok 3: Nastavte NODEMCU jako server
nastaví ssid a heslo, které se k němu budete později připojovat
const char *ssid = "Zkuste";
const char *heslo = "12345678";
při nastavení specifikujeme rychlost, jakou budou naše nodemcu a pc komunikovat, což je 115200.
neplatné nastavení (neplatné) {
Serial.begin (115200); Serial.print ("\ n");
nastaveno na hodnotu true, podívejte se také na diagnostický výstup wifi na terminálu serila
Serial.setDebugOutput (true);
inicializujte souborový systém
SPIFFS.begin ();
Nastavte nodemcu jako přístupový bod s ssid a heslem defiend dříve a vytiskne IP nodemcu, se kterým se dříve spojíte. standardně je to 192.168.4.1
Serial.print ("Konfigurace přístupového bodu …");
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, heslo); IPAddress myIP = WiFi.softAPIP (); Serial.print ("IP IP adresa:"); Serial.println (myIP);
Inicializujte websocket na nodemcu, což je pur server
webSocket.begin ();
Volá funkci webSocketEvent, když dojde k události websocket.
webSocket.onEvent (webSocketEvent);
Pro ladění vytiskněte „WebSocket server spuštěn“na nový řádek. Toto má určit řádek kódu, který nodemcu zpracovává
Serial.println ("Server WebSocket spuštěn.");
když klient navštíví 192.168.4.1, zavolá funkci handleFileRead a odešle s ní identifikátor URI serveru parametrů, což jsou v tomto případě naše informace o nodemcu. Funkce handleFileRead bude obsluhovat soubor html ze systému souborů nodemcu
server.onNotFound ( () {
if (! handleFileRead (server.uri ()))
pokud jej nelze najít, zobrazí se „FileNotFound“
server.send (404, "text/plain", "FileNotFound");
});
Spustí server a spustí se tisk HTTP serveru.
server.begin (); Serial.println ("HTTP server spuštěn");
Na naší prázdné smyčce umožňujeme serveru nepřetržitě zpracovávat komunikaci s klienty a jeho webovými sokety následujícím způsobem:
void loop (void) {
server.handleClient (); webSocket.loop ();}
Krok 4: Načtěte soubor HTML
k otevření použijeme funkci s názvem handleFileRead a soubor html ze systému souborů nodemcu. vrátí logickou hodnotu, aby určil, zda je načten nebo ne.
Když klient otevře „192.168.4.1/“, nastavíme cestu k souboru na „/Joystick.html, název našeho souboru v datové složce
bool handleFileRead (cesta k řetězci) {
Serial.println ("handleFileRead:" + cesta); if (path.endsWith ("/")) path += "Joystick.html"; if (SPIFFS.exists (cesta)) {Soubor souboru = SPIFFS.open (cesta, "r"); size_t sent = server.streamFile (soubor, "text/html"); file.close (); return true; } return false; }
Zkontrolujte, zda existuje cesta k souboru „/Joystick.html“
if (SPIFFS.exists (cesta)) {
Pokud existuje, otevřete cestu za účelem jejího načtení, která je určena písmenem „r“. Přejděte sem pro další účely.
Soubor souboru = SPIFFS.open (cesta, "r");
Odešle soubor na server jako u typu obsahu „text/html“
size_t sent = server.streamFile (soubor, "text/html");
zavřete soubor
file.close ();
funkce handleFileRead vrací true
vrátit true;}
pokud cesta k souboru neexistuje, funkce handleFileRead vrací false
return true; }
Krok 5: Zkuste to
Připojte se k nodeMCU a přejděte na „192.168.4.1“a zkuste to!:)
Doporučuje:
Jak používat webový nástroj ve Fusion 360: 5 kroků
Jak používat webový nástroj ve Fusion 360: Je to jeden z podceňovaných nástrojů, které pravděpodobně nepoužíváte, ale pokračujte ve čtení a uvidíte, proč musíte začít využívat výhody webového nástroje ve Fusion 360. Webový nástroj poskytuje rychlý a super účinný způsob, jak přidat křížová rovnátka
Visuino Jak používat tlačítko jako vstup k ovládání věcí, jako je LED: 6 kroků
Visuino Jak používat tlačítko jako vstup pro ovládání věcí jako LED: V tomto tutoriálu se naučíme, jak zapnout a vypnout LED pomocí jednoduchého tlačítka a Visuina. Podívejte se na ukázkové video
Jak používat terminál Mac a jak používat klíčové funkce: 4 kroky
Jak používat terminál Mac a jak používat klíčové funkce: Ukážeme vám, jak otevřít terminál MAC. V Terminálu vám také ukážeme několik funkcí, jako je ifconfig, změna adresářů, přístup k souborům a arp. Ifconfig vám umožní zkontrolovat vaši IP adresu a vaši MAC adresu
Jak vytvořit expresní webový server s Raspberry Pi: 10 kroků
Jak vytvořit expresní webový server s Raspberry Pi: Tato příručka vám řekne, jak přimět váš Raspberry Pi k hostování webového serveru, který může být použit pro hostování webových stránek, a dokonce mírně upraven pro hostování mnoha dalších online služeb, jako je jako herní servery nebo servery pro streamování videa. Budeme pouze krýt
Jak používat Wiimote jako počítačovou myš pomocí svíček jako senzoru !!: 3 kroky
Jak používat Wiimote jako počítačovou myš pomocí svíček jako senzoru !!: Tato příručka vám ukáže, jak připojit Wii Remote (Wiimote) k počítači a používat jej jako myš