Sadržaj:

Kako koristiti ESP8266 kao web server: 5 koraka
Kako koristiti ESP8266 kao web server: 5 koraka

Video: Kako koristiti ESP8266 kao web server: 5 koraka

Video: Kako koristiti ESP8266 kao web server: 5 koraka
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Decembar
Anonim
Kako koristiti ESP8266 kao web server
Kako koristiti ESP8266 kao web server

Zdravo, trenutno koristim Windows 10, NodeMCU 1.0 i evo popisa softvera koji sam koristio i vodiča za instalaciju koje sam slijedio:

  • Arduino IDE
  • Dodatne ploče za esp8266
  • Spiff

Korištena biblioteka:

Websocket

Koristio sam NodeMCU kao poslužitelj za posluživanje HTML datoteke koju sam napravio od ovog vodiča. Da bih poslužio ovu datoteku, postavio sam je u sistem datoteka nodemcu koristeći Spiffs. HTML datoteka šalje podatke nodemcu -u koristeći web -utičnice za ispis na serijskom monitoru. Brza dvosmjerna komunikacija putem web -utičnica servera i klijenta omogućila je da se to koristi kao daljinsko upravljanje. U sljedećim koracima ne bih objašnjavao kako moj kod funkcionira

Supplies

NodeMCU

Korak 1: Neka to funkcionira

Neka to funkcionira
Neka to funkcionira
Neka to funkcionira
Neka to funkcionira
Neka to funkcionira
Neka to funkcionira

Evo koraka kako to funkcionira

  1. Preuzmite priloženu datoteku i otvorite datoteku mousebot.ino
  2. Idite na skicu> prikaži mapu skice i napravite novu mapu s imenom data
  3. Spremite html datoteku iz ovog vodiča u nazivnu mapu. Moju sam nazvao "Joystick"
  4. Uvjerite se da je vaš ispis već funkcionalan tako što ćete otići do alata i vidjeti "esp8266 prijenos podataka o skici"
  5. Otpremite html datoteku na nodemcu klikom na "esp8266 prijenos podataka o skici"
  6. Nakon otpremanja datoteke, otpremite datoteku mousebot.ino na nodemcu tako što ćete otići u arduino IDE i pritisnuti ctrl U

Korak 2: Kako kôd funkcionira

Prvo, uključujemo biblioteke koje će ovaj kôd koristiti

// za omogućavanje ESP8266 povezivanja na WIFI

#include #include #include // Omogućava ESP8266 da djeluje kao poslužitelj #include // omogućava komunikaciju s poslužiteljem i klijentom (vašim povezanim uređajem) #include #include // Za otvaranje datoteke s opcijama na nodemcu #include

Postavite esp8266 kao web poslužitelj otvoren na portu 80. Portovi su putevi kroz koje će podaci prolaziti. Kao port poslužitelja, on će poslati HTML datoteku klijentu (uređaji povezani s njim).

Dodaje websocket vezu koristeći port 81 za preslušavanje poruka od klijenta

Websockets ima parametar num, WStype_t, korisni teret i veličinu. Broj određuje broj klijenta, korisni teret je poruka koju šalje, veličina je dužina poruke, a WStype_t je za različite događaje, kao što je

  • WStype_DISCONNECTED - o isključenju klijenta.
  • WStype_CONNECTED: - kada se klijent poveže
  • WStype_TEXT - Primljeni podaci od klijenta

Ovisno o vrsti događaja, rade se različite radnje i ovdje se komentira

void webSocketEvent (broj uint8_t, tip WStype_t, uint8_t * korisni teret, veličina_t dužina) {

prekidač (tip) {slučaj WStype_DISCONNECTED: Serial.printf ("[%u] Prekinuto! / n", broj); // ispisuje podatke na prekid serijskog monitora; slučaj WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (broj); // dobiva IP klijenta Serial.printf ("[%u] Povezano s%d.%d.%d.%d. url URL:%s / n", num, ip [0], ip [1], ip [2], ip [3], korisni teret); webSocket.sendTXT (broj, "Povezano"); // šalje "conencted" na konzolu pretraživača} break; slučaj WStype_TEXT: Serial.printf ("[%u] Podaci: %s / n", broj, korisni teret); // ispisuje broj klijenta u %u i podatke primljene kao nizove u %s / n break;}}

Korak 3: Postavite NODEMCU kao server

postavlja ssid i lozinku koje ćete koristiti za kasnije povezivanje s njim

const char *ssid = "Pokušaj";

const char *password = "12345678";

pri postavljanju specificiramo brzinu kojom će naši nodemcu i računar komunicirati, a to je 115200.

void setup (void) {

Serial.begin (115200); Serial.print ("\ n");

postavljeno na true također pogledajte dijagnostički izlaz WiFi na terminalu serila

Serial.setDebugOutput (true);

inicializirati datotečni sistem

SPIFFS.begin ();

Postavite nodemcu kao pristupnu točku sa ssid -om i lozinkom definiranim ranije i ispisuje ip nodemcu -a s kojim ćete se ranije povezati. po defaultu je 192.168.4.1

Serial.print ("Konfigurisanje pristupne tačke …");

WiFi.mode (WIFI_AP); WiFi.softAP (ssid, lozinka); IP adresa myIP = WiFi.softAPIP (); Serial.print ("AP IP adresa:"); Serial.println (myIP);

Inicijalizirajte websocket na nodemcu -u, koji je pur server

webSocket.begin ();

Poziva funkciju webSocketEvent kada dođe do websocket događaja.

webSocket.onEvent (webSocketEvent);

Za otklanjanje pogrešaka ispišite "WebSocket server pokrenut" na novom retku. Ovo služi za određivanje reda koda koji nodemcu obrađuje

Serial.println ("WebSocket server pokrenut.");

kada klijent posjeti 192.168.4.1, pozvat će funkciju handleFileRead i poslati s njim parametar poslužitelja URI koji je u ovom slučaju naša informacija nodemcu. Funkcija handleFileRead posluživat će html datoteku iz datotečnog sistema nodemcu

server.onNotFound ( () {

if (! handleFileRead (server.uri ()))

ako se ne može pronaći, prikazat će se "FileNotFound"

server.send (404, "text/plain", "FileNotFound");

});

Pokreće poslužitelj i pokreće HTTP server za ispis.

server.begin (); Serial.println ("HTTP poslužitelj pokrenut");

U našoj void petlji omogućavamo serveru da kontinuirano upravlja klijentom i njegovim websockets komunikacijama na sljedeći način:

void loop (void) {

server.handleClient (); webSocket.loop ();}

Korak 4: Učitajte HTML datoteku

koristit ćemo funkciju pod nazivom handleFileRead za otvaranje i html datoteku iz datotečnog sistema nodemcu. vratit će boolean vrijednosti kako bi utvrdio je li učitan ili nije.

Kada klijent otvori "192.168.4.1/", mi postavljamo putanju datoteke na "/Joystick.html, naziv naše datoteke u mapi podataka"

bool handleFileRead (String path) {

Serial.println ("handleFileRead:" + putanja); if (path.endsWith ("/")) path += "Joystick.html"; if (SPIFFS.exists (path)) {File file = SPIFFS.open (path, "r"); size_t sent = server.streamFile (datoteka, "tekst/html"); file.close (); return true; } return false; }

Provjerite postoji li datoteka "/Joystick.html"

if (SPIFFS.exists (path)) {

Ako postoji, otvorite putanju sa svrhom čitanja koja je navedena sa "r". Idite ovdje u više svrha.

Datoteka datoteke = SPIFFS.open (putanja, "r");

Šalje datoteku na poslužitelj s vrstom sadržaja "text/html"

size_t sent = server.streamFile (datoteka, "text/html");

zatvorite datoteku

file.close ();

funkcija handleFileRead vraća true

vrati true;}

ako putanja datoteke ne postoji, funkcija handleFileRead vraća false

return true; }

Korak 5: Isprobajte

Image
Image

Povežite se na nodeMCU i idite na "192.168.4.1" i isprobajte!:)

Preporučuje se: