Sisukord:

ESP8266 kasutamine veebiserverina: 5 sammu
ESP8266 kasutamine veebiserverina: 5 sammu

Video: ESP8266 kasutamine veebiserverina: 5 sammu

Video: ESP8266 kasutamine veebiserverina: 5 sammu
Video: Nextion LCD kasutamine Arduino UNO-l [EST] 2024, November
Anonim
Kuidas kasutada ESP8266 veebiserverina
Kuidas kasutada ESP8266 veebiserverina

Tere, ma kasutan praegu aknaid 10, NodeMCU 1.0 ja siin on kasutatud tarkvara loend ja installijuhendid, mida järgisin:

  • Arduino IDE
  • Täiendavad tahvlid esp8266 jaoks
  • Spiff

Kasutatud raamatukogu:

Veebipistik

Kasutasin NodeMCU -d serverina, et teenida HTML -faili, mille tegin sellest juhendist. Selle faili esitamiseks laadisin faili Spiffsi abil üles nodemcu failisüsteemi. HTML -fail saadab andmed nodemcu -le, kasutades selleks veebipõhiseid pistikupesasid, mida selle jaoks seeriamonitorile printida. Kiire kahesuunaline side serveri ja kliendi veebipistikute kaudu võimaldas seda kaugjuhtimispuldina kasutada. Järgmistes sammudes ei selgita ma, kuidas minu kood töötab

Tarvikud

NodeMCU

Samm: pange see tööle

Pane see tööle
Pane see tööle
Pane see tööle
Pane see tööle
Pane see tööle
Pane see tööle

Siin on sammud, kuidas see toimib

  1. Laadige alla lisatud fail ja avage fail mousebot.ino
  2. Minge visandile> kuva visandikaust ja looge uus kaust nimega andmed
  3. Salvestage selle õpetuse html -fail nimega kausta. Ma nimetasin enda nimeks "Joystick"
  4. Veenduge, et teie spiff on juba funktsionaalne, minnes tööriistadesse ja nähes esk8266 eskiisandmete üleslaadimist
  5. Laadige html -fail üles nodemcu, klõpsates "esp8266 eskiisandmete üleslaadimine"
  6. Pärast faili üleslaadimist laadige nodemcu üles hiirebot.ino fail, avades arduino IDE ja vajutades ctrl U

Samm: kuidas kood töötab

Esiteks kaasame teegid, mida see kood kasutab

// lubamaks ESP8266 ühendada WIFI -ga

#include #include #include // Võimaldab ESP8266 -l toimida serverina #include // võimaldab suhtlemist serveri ja kliendiga (teie ühendatud seadmega) #include #include // Üleslaetud faili avamiseks nodemcu #include

Seadistage esp8266 porti 80 avatud veebiserveriks. Pordid on teed, millest andmed läbi lähevad. Serveripordina saadab see HTML -faili kliendile (sellega ühendatud seadmed).

Lisab veebipesa ühenduse pordi 81 abil, et kuulata kliendi sõnumeid

Veebipesadel on parameeter num, WStype_t, kasulik koormus ja suurus. Number määrab kliendi numbri, kasulik koormus on sõnum, mille ta saadab, suurus on sõnumi pikkus ja WStype_t on erinevate sündmuste jaoks, näiteks

  • WStype_DISCONNECTED - kliendi lahtiühendamisel.
  • WStype_CONNECTED: - kui klient loob ühenduse
  • WStype_TEXT - saadud andmed kliendilt

Sõltuvalt sündmuse tüübist tehakse erinevaid toiminguid ja neid kommenteeritakse siin

void webSocketEvent (uint8_t number, WStype_t tüüp, uint8_t * kasulik koormus, size_t pikkus) {

switch (type) {case WStype_DISCONNECTED: Serial.printf ("[%u] Katkestatud! / n", number); // prindib andmed jadamonitori pausile; juhtum WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (number); // saab kliendi IP -aadressi Serial.printf ("[%u] Ühendatud%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], kasulik koormus); webSocket.sendTXT (number, "Ühendatud"); // saadab brauseri konsoolile "conencted"} break; case WStype_TEXT: Serial.printf ("[%u] Andmed: %s / n", number, kasulik koormus); // prindib kliendi numbri %u ja stringidena saadud andmed %s / n pausi;}}

Samm: määrake NODEMCU serveriks

määrab SSID ja parooli, mida kasutate sellega hiljem ühenduse loomiseks

const char *ssid = "Proovi";

const char *parool = "12345678";

seadistamisel määrame kindlaks kiiruse, millega meie nodemcu ja arvuti suhtlevad, mis on 115200.

tühine seadistus (tühine) {

Seriaalne algus (115200); Serial.print ("\ n");

seadistage ka tõele, vaadake serila terminali wifi diagnostikaväljundit

Serial.setDebugOutput (tõene);

initsialiseerida failisüsteem

SPIFFS.begin ();

Seadistage nodemcu varem juurdepääsupunktiks ssid -i ja parooli defiendiga ning prindige selle nodemcu ip, millega te varem ühenduse loote. vaikimisi on see 192.168.4.1

Serial.print ("Pöörduspunkti seadistamine …");

WiFi -režiim (WIFI_AP); WiFi.softAP (ssid, parool); IPAddress myIP = WiFi.softAPIP (); Serial.print ("AP IP -aadress:"); Serial.println (myIP);

Initsialiseerige nodemcu veebipistik, mis on pur server

webSocket.begin ();

Helistab funktsiooni webSocketEvent, kui ilmub veebipistiku sündmus.

webSocket.onEvent (webSocketEvent);

Silumiseks printige "WebSocket server start" uuele reale. Selle eesmärk on määrata koodirida, mida nodemcu töötleb

Serial.println ("WebSocket server käivitati.");

kui klient külastab aadressi 192.168.4.1, kutsub ta funktsiooni handleFileRead ja saadab koos sellega parameetriserveri URI, mis antud juhul on meie nodemcu teave. Funktsioon handleFileRead teenib html -faili nodemcu -failisüsteemist

server.onNotFound ( () {

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

kui seda ei leita, kuvatakse see "FileNotFound"

server.send (404, "tekst/tavaline", "FileNotFound");

});

Alustab serverit ja prindib HTTP -serverit.

server.begin (); Serial.println ("HTTP -server käivitati");

Oma tühjusahelas lubame serveril pidevalt käidelda kliendi ja selle veebipistikute suhtlust järgmiselt.

void loop (void) {

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

Samm: laadige HTML -fail

me kasutame funktsiooni nimega handleFileRead avamiseks ja html -faili nodemcu failisüsteemist. see tagastab väärtuse boolean, et teha kindlaks, kas see on laaditud või mitte.

Kui klient avab "192.168.4.1/", määrame faili tee "/Joystick.html, meie faili nime andmekaustas

bool handleFileRead (stringi tee) {

Serial.println ("handleFileRead:" + tee); if (path.endsWith ("/")) path += "Joystick.html"; if (SPIFFS. olemas (tee)) {Failifail = SPIFFS.open (tee, "r"); size_t saadetud = server.streamFile (fail, "tekst/html"); file.close (); tagastama tõene; } return false; }

Kontrollige, kas failitee "/Joystick.html" on olemas

if (SPIFFS.exists (path)) {

Kui see on olemas, avage tee selle lugemiseks, mille määrab r. Minge siia rohkem eesmärkidel.

Failifail = SPIFFS.open (tee, "r");

Saadab faili serverisse nagu sisutüübiga "text/html"

size_t saadetud = server.streamFile (fail, "tekst/html");

sulgege fail

file.close ();

funktsioon handleFileRead tagastab tõese

tagastama tõsi;}

kui failiteed pole olemas, tagastab funktsioon handleFileRead väärtuse false

tagastama tõene; }

Samm: proovige seda

Image
Image

Ühendage sõlmMCU -ga ja minge jaotisse "192.168.4.1" ja proovige seda!:)

Soovitan: