Kazalo:

Kako uporabljati ESP8266 kot spletni strežnik: 5 korakov
Kako uporabljati ESP8266 kot spletni strežnik: 5 korakov

Video: Kako uporabljati ESP8266 kot spletni strežnik: 5 korakov

Video: Kako uporabljati ESP8266 kot spletni strežnik: 5 korakov
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, December
Anonim
Kako uporabljati ESP8266 kot spletni strežnik
Kako uporabljati ESP8266 kot spletni strežnik

Pozdravljeni, trenutno uporabljam Windows 10, NodeMCU 1.0 in tukaj je seznam programske opreme, ki sem jo uporabil, in navodila za namestitev, ki sem jih upošteval:

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

Uporabljena knjižnica:

Websocket

NodeMCU sem uporabil kot strežnik za strežbo datotek HTML, ki sem jih naredil iz te vadnice. Za serviranje te datoteke sem jo s Spiffsom naložil v datotečni sistem nodemcu. Datoteka HTML pošlje podatke v nodemcu prek spletnih vtičnic, ki jih je treba natisniti na serijski monitor. Hitra dvosmerna komunikacija prek spletnih vtičnic strežnika in odjemalca je omogočila to uporabo kot daljinski upravljalnik. V naslednjih korakih ne bom razlagal, kako deluje moja koda

Zaloge

NodeMCU

1. korak: Naj deluje

Naj dela
Naj dela
Naj dela
Naj dela
Naj dela
Naj dela

Tukaj so koraki, kako deluje

  1. Prenesite priloženo datoteko in odprite datoteko mousebot.ino
  2. Pojdite na skico> pokaži mapo skice in ustvarite novo mapo z imenom data
  3. Shranite datoteko html iz te vadnice v imenovano mapo. Mojega sem poimenoval "Joystick"
  4. Prepričajte se, da je vaš spiff že funkcionalen, tako da odprete orodja in si ogledate »nalaganje podatkov skice esp8266«
  5. Naložite datoteko html v nodemcu s klikom na "esp8266 nalaganje podatkov skice"
  6. Po nalaganju datoteke naložite datoteko mousebot.ino v nodemcu tako, da se pomaknete do arduino IDE in pritisnete ctrl U

2. korak: Kako deluje koda

Najprej vključimo knjižnice, ki jih bo uporabljala ta koda

// omogočimo ESP8266 povezavo z WIFI

#include #include #include // Omogoča ESP8266, da deluje kot strežnik #include // omogoča komunikacijo s strežnikom in odjemalcem (vašo povezano napravo) #include #include // Za odpiranje uplitane datoteke na vozlišču #include

Nastavite esp8266 kot spletni strežnik, odprt na vratih 80. Vrata so poti, skozi katere bodo prehajali podatki. Kot vrata strežnika bo odjemalcu poslala datoteko HTML (z njo povezane naprave).

Doda povezavo spletnega vtičnice z vrati 81 za poslušanje sporočil odjemalca

Spletni vtičnice imajo parameter num, WStype_t, koristno obremenitev in velikost. Število določa številko odjemalca, koristna obremenitev je sporočilo, ki ga pošlje, velikost je dolžina sporočila, WStype_t pa za različne dogodke, kot so

  • WStype_DISCONNECTED - o odklopu odjemalca.
  • WStype_CONNECTED: - ko se odjemalec poveže
  • WStype_TEXT - Prejeti podatki od odjemalca

Odvisno od vrste dogodka se izvedejo različna dejanja in jih tukaj komentiramo

void webSocketEvent (uint8_t num, tip WStype_t, uint8_t * koristna obremenitev, size_t dolžina) {

stikalo (tip) {case WStype_DISCONNECTED: Serial.printf ("[%u] Odklopljen! / n", num); // natisne podatke na premor serijskega monitorja; primer WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // dobi IP odjemalca Serial.printf ("[%u] Povezano s%d.%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], koristna obremenitev); webSocket.sendTXT (num, "Connected"); // pošilja "conencted" na konzolo brskalnika} break; primer WStype_TEXT: Serial.printf ("[%u] Podatki: %s / n", število, koristna obremenitev); // natisne številko odjemalca v %u in podatke, prejete kot nize v %s / n prekinitvi;}}

3. korak: NODEMCU nastavite kot strežnik

nastavi ssid in geslo, s katerima se boste pozneje povezali

const char *ssid = "Poskusi";

const char *geslo = "12345678";

pri nastavitvi določimo hitrost, s katero bosta nodemcu in pc komunicirala, to je 115200.

void setup (void) {

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

nastavljeno na true, si oglejte diagnostični izhod wifi na terminalu serila

Serial.setDebugOutput (true);

inicializirajte datotečni sistem

SPIFFS.begin ();

Nodemcu nastavite kot dostopno točko s ssidom in geslom, ki je bila definirana prej, in natisne ip nodemcuja, s katerim se boste prej povezali. privzeto je 192.168.4.1

Serial.print ("Konfiguriranje dostopne točke …");

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

Inicializirajte websocket na nodemcu, ki je pur strežnik

webSocket.begin ();

Pokliče funkcijo webSocketEvent, ko pride do dogodka websocket.

webSocket.onEvent (webSocketEvent);

Za odpravljanje napak v novo vrstico natisnite "WebSocket server started". To je za določitev vrstice kode, ki jo nodemcu obdeluje

Serial.println ("Zagnan strežnik WebSocket.");

ko odjemalec obišče 192.168.4.1, bo poklical funkcijo handleFileRead in s tem poslal URI strežnika parametrov, ki je v tem primeru naša informacija o nodemcu. Funkcija handleFileRead bo služila datoteki html iz datotečnega sistema nodemcu

server.onNotFound ( () {

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

če ga ni mogoče najti, se prikaže "FileNotFound"

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

});

Zažene strežnik in zažene strežnik HTTP za tiskanje.

server.begin (); Serial.println ("strežnik HTTP se je zagnal");

V naši zanki void strežniku omogočamo, da dosledno obravnava odjemalca in njegove spletne vtičnice na naslednji način:

void loop (void) {

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

4. korak: Naložite datoteko HTML

za odpiranje bomo uporabili funkcijo handleFileRead in datoteko html iz datotečnega sistema nodemcu. vrnil bo logično vrednost, da ugotovi, ali je naložen ali ne.

Ko odjemalec odpre "192.168.4.1/", pot datoteke nastavimo na "/Joystick.html, ime naše datoteke v podatkovni mapi"

bool handleFileRead (String path) {

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

Preverite, ali obstaja datoteka »/Joystick.html«

if (SPIFFS.exists (pot)) {

Če obstaja, odprite pot z namenom, da jo preberete, kar je podano z "r". Pojdi sem za več namenov.

Datotečna datoteka = SPIFFS.open (pot, "r");

Pošlje datoteko strežniku kot z vrsto vsebine "besedilo/html"

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

zaprite datoteko

file.close ();

funkcija handleFileRead vrne true

vrni true;}

če pot do datoteke ne obstaja, funkcija handleFileRead vrne false

vrni true; }

5. korak: Poskusite

Image
Image

Povežite se z nodeMCU in pojdite na "192.168.4.1" in poskusite!:)

Priporočena: