Sadržaj:

Kako koristiti ESP8266 kao web poslužitelj: 5 koraka
Kako koristiti ESP8266 kao web poslužitelj: 5 koraka

Video: Kako koristiti ESP8266 kao web poslužitelj: 5 koraka

Video: Kako koristiti ESP8266 kao web poslužitelj: 5 koraka
Video: КАК НАСТРОИТЬ L4D2 2024, Studeni
Anonim
Kako koristiti ESP8266 kao web poslužitelj
Kako koristiti ESP8266 kao web poslužitelj

Bok, 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 s ovog vodiča. Da bih poslužio ovu datoteku, prenio sam je u datotečni sustav nodemcu koristeći Spiffs. HTML datoteka šalje podatke nodemcuu pomoću web -utičnica za ispis na serijskom monitoru. Brza dvosmjerna komunikacija putem web -utičnica poslužitelja i klijenta omogućila je da se to koristi kao daljinsko upravljanje. U sljedećim koracima ne bih objašnjavao kako moj kôd radi

Pribor

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 mapu s imenom. Svoju sam nazvao "Joystick"
  4. Uvjerite se da je vaš ispis već funkcionalan, idite na alate i pogledajte "esp8266 prijenos podataka o skici"
  5. Prenesite html datoteku na nodemcu klikom na "esp8266 prijenos podataka o skici"
  6. Nakon prijenosa datoteke prenesite datoteku mousebot.ino na nodemcu tako što ćete otići na arduino IDE i pritisnuti ctrl U

Korak 2: Kako kod funkcionira

Prvo, uključujemo knjižnice koje će ovaj kôd koristiti

// za omogućavanje povezivanja ESP8266 na WIFI

#include #include #include // Omogućuje ESP8266 da djeluje kao poslužitelj #include // omogućuje 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 priključku 80. Portovi su putevi kroz koje će podaci prolaziti. Kao poslužiteljski port, poslat će HTML datoteku klijentu (uređaji povezani s njim).

Dodaje websocket vezu pomoću priključka 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 duljina poruke, a WStype_t za različite događaje, kao što je

  • WStype_DISCONNECTED - o prekidu veze s klijentom.
  • WStype_CONNECTED: - kada se klijent poveže
  • WStype_TEXT - Primljeni podaci od klijenta

Ovisno o vrsti događaja, poduzimaju se različite radnje koje se ovdje komentiraju

void webSocketEvent (uint8_t num, tip WStype_t, uint8_t * korisni teret, size_t duljina) {

switch (type) {case WStype_DISCONNECTED: Serial.printf ("[%u] Prekinuto! / n", broj); // ispisuje podatke u prekid serijskog monitora; slučaj WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (broj); // dobiva IP klijenta Serial.printf ("[%u] Povezan s%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], korisni teret); webSocket.sendTXT (broj, "Povezano"); // šalje "conencted" na konzolu preglednika} 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 poslužitelj

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

const char *ssid = "Pokušaj";

const char *lozinka = "12345678";

pri postavljanju navodimo brzinu kojom će naši nodemcu i računalo 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 serila terminalu

Serial.setDebugOutput (true);

poništiti datotečni sustav

SPIFFS.begin ();

Postavite nodemcu kao pristupnu točku sa ssid -om i lozinkom definiranom ranije i ispisuje ip nodemcu -a s kojim ćete se ranije povezati. prema zadanim postavkama to je 192.168.4.1

Serial.print ("Konfiguriranje pristupne toč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, koji je pur poslužitelj

webSocket.begin ();

Poziva funkciju webSocketEvent kada se dogodi događaj websocket -a.

webSocket.onEvent (webSocketEvent);

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

Serial.println ("WebSocket poslužitelj pokrenut.");

kada klijent posjeti 192.168.4.1, pozvat će funkciju handleFileRead i poslati s njim URI poslužitelja parametara koji je u ovom slučaju naša informacija nodemcu. Funkcija handleFileRead posluživat će html datoteku iz datotečnog sustava 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 pokrenut je HTTP poslužitelj ispisa.

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

U našoj petlji void, poslužitelju omogućujemo da kontinuirano upravlja klijentom i njegovim web -utičnicama na sljedeći način:

void loop (void) {

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

Korak 4: Učitajte HTML datoteku

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

Kad klijent otvori "192.168.4.1/", put datoteke postavimo na "/Joystick.html, naziv naše datoteke u podatkovnoj mapi"

bool handleFileRead (String path) {

Serial.println ("handleFileRead:" + put); 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 stazu sa svrhom čitanja koja je navedena s "r". Idite ovdje u više svrha.

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

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

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

zatvorite datoteku

file.close ();

funkcija handleFileRead vraća vrijednost true

vrati true;}

ako put do datoteke ne postoji, funkcija handleFileRead vraća false

return true; }

Korak 5: Isprobajte

Image
Image

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

Preporučeni: