Obsah:

Ako používať ESP8266 ako webový server: 5 krokov
Ako používať ESP8266 ako webový server: 5 krokov

Video: Ako používať ESP8266 ako webový server: 5 krokov

Video: Ako používať ESP8266 ako webový server: 5 krokov
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, December
Anonim
Ako používať ESP8266 ako webový server
Ako používať ESP8266 ako webový server

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ť

Nech to funguje
Nech to funguje
Nech to funguje
Nech to funguje
Nech to funguje
Nech to funguje

Tu sú kroky, ako to funguje

  1. Stiahnite si priložený súbor a otvorte súbor mousebot.ino
  2. Prejdite na skicu> zobraziť priečinok so skicami a vytvorte nový priečinok s názvom údaje
  3. Uložte súbor html z tohto tutoriálu do priečinka s názvom. Svoju som pomenoval ako „joystick“
  4. 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“
  5. Odošlite súbor html do nodemcu kliknutím na „nahrávanie údajov skici esp8266“
  6. 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

Image
Image

Pripojte sa k nodeMCU a prejdite na „192.168.4.1“a vyskúšajte to!:)

Odporúča: