Përmbajtje:

Si të përdorni ESP8266 si server në internet: 5 hapa
Si të përdorni ESP8266 si server në internet: 5 hapa

Video: Si të përdorni ESP8266 si server në internet: 5 hapa

Video: Si të përdorni ESP8266 si server në internet: 5 hapa
Video: Si të ndryshoni një Printer nga Offline në Online 2024, Dhjetor
Anonim
Si të përdorni ESP8266 si server në internet
Si të përdorni ESP8266 si server në internet

Përshëndetje, aktualisht po përdor Windows 10, NodeMCU 1.0 dhe këtu është lista e Softuerëve që kam përdorur dhe udhëzuesit e instalimit që kam ndjekur:

  • Arduino IDE
  • Pllaka shtesë për esp8266
  • Spiff

Biblioteka e përdorur:

Uebfaqe

Kam përdorur NodeMCU si një server për të shërbyer një skedar HTML që kam bërë nga mësuesi. Për t'i shërbyer këtij skedari, e ngarkova skedarin në sistemin e skedarëve nodemcu duke përdorur Spiffs. Skedari HTML dërgon të dhëna në nodemcu duke përdorur rrjeta në internet për t'u shtypur në monitorin serik për këtë. Komunikimi i shpejtë dypalësh përmes rrjetave të uebit të serverit dhe klientit mundësoi që kjo të përdoret si telekomandë. Në hapat e mëposhtëm, nuk do të shpjegoj se si funksionon kodi im

Furnizimet

NodeMCU

Hapi 1: Bëjeni që të funksionojë

Bëni që të funksionojë
Bëni që të funksionojë
Bëni që të funksionojë
Bëni që të funksionojë
Bëni që të funksionojë
Bëni që të funksionojë

Këtu janë hapat se si funksionon

  1. Shkarkoni skedarin e bashkangjitur dhe hapni skedarin mousebot.ino
  2. Shkoni te skica> shfaqni skedarin e skicës dhe krijoni një dosje të re të quajtur të dhëna
  3. Ruani skedarin html nga ky tutorial në dosjen me emrin. Unë e quaj timen si "Joystick"
  4. Sigurohuni që gryka juaj është tashmë funksionale duke shkuar te mjetet dhe duke parë "ngarkimin e të dhënave të skicës esp8266"
  5. Ngarko skedarin html në nodemcu duke klikuar "ngarkimi i të dhënave të skicës esp8266"
  6. Pas ngarkimit të skedarit, ngarkoni në nodemcu skedarin mousebot.ino duke hyrë në arduino IDE dhe duke shtypur ctrl U

Hapi 2: Si funksionon Kodi

Së pari, ne përfshijmë bibliotekat që ky kod do të përdorë

// për të mundësuar që ESP8266 të lidhet me WIFI

#include #include #include // Mundëson që ESP8266 të veprojë si një server #include // mundëson komunikimin me serverin dhe klientin (pajisja juaj e lidhur) #include #include // Për të hapur skedarin e ngritur në nodemcu #include

Vendosni esp8266 si një server në internet i hapur në portën 80. Portet janë rrugë nëpër të cilat do të kalojnë të dhënat. Si një port server, do t'i dërgojë skedarin HTML klientit (deivimet e lidhura me të).

Shton një lidhje websocket duke përdorur portën 81 për të dëgjuar mesazhet nga klienti

Rrjetat e uebit kanë parametrin num, WStype_t, ngarkesën dhe madhësinë. Numri përcakton numrin numërues të klientit, ngarkesa është mesazhi që ai dërgon, madhësia është gjatësia e mesazhit dhe WStype_t është për ngjarje të ndryshme si p.sh.

  • WStype_DISCONNECTED - në shkyçjen e një klienti.
  • WStype_CONNECTED: - kur një klient lidhet
  • WStype_TEXT - Marrë të dhëna nga klienti

Në varësi të llojit të ngjarjes, veprime të ndryshme bëhen dhe komentohen këtu

i pavlefshëm webSocketEvent (uint8_t num, lloji WStype_t, uint8_t * ngarkesa, madhësia_t gjatësia) {

switch (type) {case WStype_DISCONNECTED: Serial.printf ("

Hapi 3: Vendosni NODEMCU si Server

vendos ssid dhe fjalëkalimin që do të përdorni për t'u lidhur me të më vonë

const char *ssid = "Provo";

const char *fjalëkalim = "12345678";

në ngritjen, ne specifikojmë shkallën me të cilën do të komunikojë nodemcu dhe kompjuteri ynë, e cila është 115200.

konfigurimi i pavlefshëm (i pavlefshëm) {

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

e vendosur në true gjithashtu shihni daljen diagnostikuese wifi në terminalin serila

Serial.setDebugOutput (e vërtetë);

initalizoni sistemin e skedarëve

SPIFFS.filloj ();

Konfiguroni nodemcu si një pikë aksesi me ssid dhe defiend të fjalëkalimit më herët dhe printon ip e nodemcu me të cilën do të lidheni më herët. si parazgjedhje është 192.168.4.1

Serial.print ("Konfigurimi i pikës së hyrjes …");

Modaliteti WiFi (WIFI_AP); WiFi.softAP (ssid, fjalëkalim); IPAdresa myIP = WiFi.softAPIP (); Serial.print ("Adresa IP e AP:"); Serial.println (myIP);

Iniconi rrjetën në internet në nodemcu, i cili është server pur

webSocket.begin ();

Thërret funksionin webSocketEvent kur ndodh një ngjarje websocket.

webSocket.onEvent (webSocketEvent);

Për korrigjimin, printoni "WebSocket server filloi" në një linjë të re. Kjo është për të përcaktuar linjën e kodit që nodemcu po përpunon

Serial.println ("Serveri WebSocket filloi.");

kur një klient viziton 192.168.4.1, ai do të thërrasë funksionin handleFileRead dhe do të dërgojë me të parametrin URI të serverit i cili në këtë rast është informacioni ynë nodemcu. Funksioni handleFileRead do t'i shërbejë skedarit html nga sistemi i skedarëve nodemcu

server.onNotFound ( () {

nëse (! handleFileRead (server.uri ()))

nëse nuk mund të gjendet do të shfaqë "FileNotFound"

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

});

Fillon serveri dhe serveri i printimit HTTP filloi.

server.filloj (); Serial.println ("Serveri HTTP filloi");

Në lakun tonë të pavlefshëm, ne i mundësojmë serverit të trajtojë me kontinuitet klientin dhe komunikimet e tij në ueb, si më poshtë:

lak void (i pavlefshëm) {

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

Hapi 4: Ngarko skedarin HTML

ne do të përdorim një funksion të quajtur handleFileRead për të hapur dhe skedarin html nga sistemi i skedarëve nodemcu. do të kthejë një vlerë boolean për të përcaktuar nëse është ngarkuar apo jo.

Kur "192.168.4.1/" është hapur nga klienti, ne vendosim rrugën e skedarit në "/Joystick.html, emri i skedarit tonë në dosjen e të dhënave

bool handleFileRead (String path) {

Serial.println ("handleFileRead:" + shteg); if (path.endsWith ("/")) path += "Joystick.html"; if (SPIFFS.exists (path)) {File file = SPIFFS.open (path, "r"); size_t dërguar = server.streamFile (skedar, "tekst/html"); file.close (); kthehet e vërtetë; } kthimi false; }

Kontrolloni nëse ekziston rruga e skedarit "/Joystick.html"

nëse (SPIFFS.existon (shtegu)) {

Nëse ekziston, hapni shtegun me qëllim që ta lexoni atë të specifikuar me "r". Shkoni këtu për më shumë qëllime.

Skedari i skedarit = SPIFFS.open (rruga, "r");

Dërgon skedarin në server si me një lloj përmbajtje të "tekstit/html"

size_t dërguar = server.streamFile (skedar, "tekst/html");

mbyll dosjen

file.close ();

funksioni handleFileRead kthen true

kthehu e vërtetë;}

nëse shtegu i skedarit nuk ekziston, funksioni handleFileRead kthen false

kthehet e vërtetë; }

Hapi 5: Provojeni

Image
Image

Lidhuni me nodeMCU dhe shkoni te "192.168.4.1" dhe provojeni!:)

Recommended: