Obsah:
- Zásoby
- Krok 1: Nechajte to fungovať
- Krok 2: Ako kód funguje
- Krok 3: Nastavte NODEMCU ako server
- Krok 4: Načítajte súbor HTML
- Krok 5: Skúste to
Video: Ako používať ESP8266 ako webový server: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Ahoj, v súčasnosti používam Windows 10, NodeMCU 1.0 a tu je zoznam softvéru, ktorý som použil, a návod na inštaláciu, podľa ktorého som sa riadil:
- Arduino IDE
- Ďalšie dosky pre esp8266
- Spiff
Použitá knižnica:
Websocket
Použil som NodeMCU ako server na obsluhu súboru HTML, ktorý som vytvoril z tohto tutoriálu. Aby tento súbor slúžil, nahral som ho do systému súborov nodemcu pomocou programu Spiffs. Súbor HTML odosiela údaje na server nodemcu pomocou webových zásuviek, ktoré sa majú vytlačiť na sériovom monitore. Rýchla obojsmerná komunikácia prostredníctvom webových zásuviek servera a klienta umožnila toto použiť ako diaľkové ovládanie. V nasledujúcich krokoch vám vysvetlím, ako môj kód funguje
Zásoby
NodeMCU
Krok 1: Nechajte to fungovať
Tu sú kroky, ako to funguje
- Stiahnite si priložený súbor a otvorte súbor mousebot.ino
- Prejdite na skicu> zobraziť priečinok so skicami a vytvorte nový priečinok s názvom údaje
- Uložte súbor html z tohto tutoriálu do priečinka s názvom. Svoju som pomenoval ako „joystick“
- Uistite sa, že je váš nástroj už funkčný, a to tak, že prejdete na nástroje a pozri si „nahrávanie údajov skici esp8266“
- Odošlite súbor html do nodemcu kliknutím na „nahrávanie údajov skici esp8266“
- Po nahraní súboru nahrajte do súboru nodemcu súbor mousebot.ino tak, že prejdete na arduino IDE a stlačíte kláves ctrl U
Krok 2: Ako kód funguje
Najprv zahrneme knižnice, ktoré tento kód použije
// aby sa ESP8266 umožnilo pripojiť sa k WIFI
#include #include #include // Umožňuje ESP8266 fungovať ako server #include // umožňuje komunikáciu so serverom a klientom (vašim pripojeným zariadením) #include #include // Na otvorenie aktualizovaného súboru na nodemcu #include
Nastavte esp8266 ako webový server otvorený na porte 80. Porty sú cesty, ktorými budú dáta prechádzať. Ako port servera odošle súbor HTML klientovi (zariadenia, ktoré sú k nemu pripojené).
Pridá pripojenie websocket pomocou portu 81 na počúvanie správ od klienta
Webové zásuvky majú parameter num, WStype_t, užitočné zaťaženie a veľkosť. Číslo určuje číslo klienta, užitočné zaťaženie je správa, ktorú odosiela, veľkosť je dĺžka správy a WStype_t je pre rôzne udalosti, ako napr.
- WStype_DISCONNECTED - pri odpojení klienta.
- WStype_CONNECTED: - keď sa klient pripojí
- WStype_TEXT - prijaté údaje od klienta
V závislosti od typu udalosti sa vykonávajú rôzne akcie a sú tu komentované
void webSocketEvent (uint8_t num, WStype_t type, uint8_t * payload, size_t length) {
prepínač (typ) {case WStype_DISCONNECTED: Serial.printf ("[%u] Disconnected! / n", num); // vytlačí údaje na prerušenie sériového monitora; prípad WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // získa IP klienta Serial.printf ("[%u] Pripojené z%d.%d.%d.%d URL:%s / n", num, ip [0], ip [1], ip [2], ip [3], užitočné zaťaženie); webSocket.sendTXT (počet, „Pripojené“); // pošle „conencted“do konzoly prehliadača} break; prípad WStype_TEXT: Serial.printf ("[%u] Údaje: %s / n", počet, užitočné zaťaženie); // vytlačí číslo klienta v %u a údaje prijaté ako reťazce v %s / n prestávke;}}
Krok 3: Nastavte NODEMCU ako server
nastaví ssid a heslo, ktoré použijete na neskoršie pripojenie
const char *ssid = "Skúste";
const char *heslo = "12345678";
pri nastavení špecifikujeme rýchlosť, ktorou budú komunikovať naše uzly a počítač, čo je 115 200.
void setup (void) {
Serial.begin (115200); Serial.print ("\ n");
nastavené na hodnotu true, pozrite si aj diagnostický výstup wifi na termináli serila
Serial.setDebugOutput (true);
inicializujte súborový systém
SPIFFS.begin ();
Nastavte nodemcu ako prístupový bod pomocou servera ssid a hesla definovaného skôr a vytlačí adresu IP uzla, s ktorým sa spojíte skôr. štandardne je to 192.168.4.1
Serial.print ("Konfigurácia prístupového bodu …");
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, heslo); IPAddress myIP = WiFi.softAPIP (); Serial.print („IP adresa AP:“); Serial.println (myIP);
Inicializujte webovú zásuvku na nodemcu, ktorá je pur serverom
webSocket.begin ();
Volá funkciu webSocketEvent, keď dôjde k udalosti websocket.
webSocket.onEvent (webSocketEvent);
Na ladenie vytlačte na nový riadok „Server WebSocket spustený“. Toto má určiť riadok kódu, ktorý nodemcu spracováva
Serial.println ("Server WebSocket spustený.");
keď klient navštívi 192.168.4.1, zavolá funkciu handleFileRead a odošle s ňou identifikátor URI servera parametrov, čo sú v tomto prípade naše informácie o nodemcu. Funkcia handleFileRead bude obsluhovať súbor html zo súborového systému nodemcu
server.onNotFound ( () {
if (! handleFileRead (server.uri ()))
ak sa nedá nájsť, zobrazí sa „FileNotFound“
server.send (404, "text/plain", "FileNotFound");
});
Začína sa server a spustí sa tlač servera
server.begin (); Serial.println ("Server HTTP spustený");
V našej prázdnej slučke umožňujeme serveru kontinuálne spracovávať komunikáciu s klientom a jeho webovými soketmi nasledovne:
prázdna slučka (prázdna) {
server.handleClient (); webSocket.loop ();}
Krok 4: Načítajte súbor HTML
na otvorenie použijeme funkciu s názvom handleFileRead a html súbor zo systému súborov nodemcu. vráti logickú hodnotu, aby zistil, či je načítaný alebo nie.
Keď klient otvorí „192.168.4.1/“, nastavíme cestu k súboru na „/Joystick.html, názov nášho súboru v priečinku s údajmi.
bool handleFileRead (cesta k reťazcu) {
Serial.println ("handleFileRead:" + cesta); if (cesta.endsWith ("/")) cesta += "Joystick.html"; if (SPIFFS.exists (cesta)) {Súbor súboru = SPIFFS.open (cesta, "r"); size_t sent = server.streamFile (súbor, "text/html"); file.close (); návrat true; } return false; }
Skontrolujte, či existuje cesta k súboru „/Joystick.html“
if (SPIFFS.exists (cesta)) {
Ak existuje, otvorte cestu za účelom jej prečítania, ktorá je určená písmenom „r“. Prejdite sem pre ďalšie účely.
Súbor súboru = SPIFFS.open (cesta, "r");
Odošle súbor na server ako pri type obsahu „text/html“
size_t sent = server.streamFile (súbor, "text/html");
zatvorte súbor
file.close ();
funkcia handleFileRead vracia hodnotu true
návrat true;}
ak cesta k súboru neexistuje, funkcia handleFileRead vráti hodnotu false
návrat true; }
Krok 5: Skúste to
Pripojte sa k nodeMCU a prejdite na „192.168.4.1“a vyskúšajte to!:)
Odporúča:
ESP8266 a Visuino: Webový server s teplotou a vlhkosťou DHT11: 12 krokov
ESP8266 a Visuino: Teplotný a vlhkostný webový server DHT11: Moduly ESP8266 sú skvelé nízkonákladové samostatné ovládače so vstavaným Wi-Fi pripojením a už som o nich vyrobil množstvo inštrukcií. DTH11/DTH21/DTH22 a AM2301 sú veľmi obľúbené kombinované teploty a senzory vlhkosti Arduino a urobil som množstvo
ESP8266 s výukovým programom Thingspeak a DHT11 - Webový server: 7 krokov
ESP8266 s výukovým programom Thingspeak a DHT11 | Web Server: Hej, čo sa deje, chlapci! Akarsh tu z CETech. Tento môj projekt je skôr krivkou učenia sa, aby ste pochopili platformu thingspeak spolu s myšlienkou MQTT a potom pomocou Thingspeak s ESP8266. Na konci článku budeme spolupracovať
Ako používať webový nástroj vo Fusion 360: 5 krokov
Ako používať webový nástroj vo Fusion 360: Je to jeden z tých podceňovaných nástrojov, ktoré pravdepodobne nepoužívate, ale pokračujte v čítaní a uvidíte, prečo musíte začať využívať výhody webového nástroja vo Fusion 360. Webový nástroj poskytuje rýchly a super efektívny spôsob, ako pridať priečne výstuhy do
Ako používať terminál Mac a ako používať kľúčové funkcie: 4 kroky
Ako používať terminál Mac a ako používať kľúčové funkcie: Ukážeme vám, ako otvoriť terminál MAC. V termináli vám tiež ukážeme niekoľko funkcií, ako napríklad ifconfig, zmena adresárov, prístup k súborom a arp. Ifconfig vám umožní skontrolovať vašu IP adresu a vašu MAC adresu
Ako vytvoriť expresný webový server s Raspberry Pi: 10 krokov
Ako vytvoriť expresný webový server s Raspberry Pi: Táto príručka vám povie, ako dosiahnuť, aby váš Raspberry Pi hostil webový server, ktorý je možné použiť na hosťovanie webových stránok, a dokonca ho mierne upraviť tak, aby hostil mnoho ďalších online služieb, ako napr. ako herné servery alebo servery na streamovanie videa. Budeme iba kryť