Innehållsförteckning:

Så här använder du ESP8266 som webbserver: 5 steg
Så här använder du ESP8266 som webbserver: 5 steg

Video: Så här använder du ESP8266 som webbserver: 5 steg

Video: Så här använder du ESP8266 som webbserver: 5 steg
Video: $5 WiFi Camera Setup | ESP32 Wifi Setup view on Mobile phone 2024, December
Anonim
Så här använder du ESP8266 som webbserver
Så här använder du ESP8266 som webbserver

Hej, jag använder för närvarande Windows 10, NodeMCU 1.0 och här är listan över programvara jag använde och installationsguider jag följde:

  • Arduino IDE
  • Ytterligare brädor för esp8266
  • Spiff

Bibliotek som används:

Websocket

Jag använde NodeMCU som en server för att servera en HTML -fil som jag gjorde från thistutorial. För att servera den här filen laddade jag upp filen till nodemcu -filsystemet med Spiffs. HTML -filen skickar data till nodemcu med hjälp av webbuttag för att skrivas ut på den seriella bildskärmen för detta. Den snabba dubbelriktade kommunikationen via webbuttag på servern och klienten möjliggjorde att denna kunde användas som fjärrkontroll. I följande steg kommer jag inte att förklara hur min kod fungerar

Tillbehör

NodeMCU

Steg 1: Få det att fungera

Få det att fungera
Få det att fungera
Få det att fungera
Få det att fungera
Få det att fungera
Få det att fungera

Här är stegen om hur det fungerar

  1. Ladda ner den bifogade filen och öppna filen mousebot.ino
  2. Gå till skiss> visa skissmapp och skapa en ny mapp med namnet data
  3. Spara html -filen från den här självstudien i mappen med namnet. Jag kallade min som "joystick"
  4. Se till att din spiff redan är funktionell genom att gå till verktyg och se "esp8266 sketch data upload"
  5. Ladda upp html -filen till nodemcu genom att klicka på "esp8266 sketch data upload"
  6. Efter filöverföring, ladda upp filen noduscu mousebot.ino genom att öppna arduino IDE och trycka på ctrl U

Steg 2: Hur koden fungerar

Först inkluderar vi biblioteken som denna kod kommer att använda

// för att göra det möjligt för ESP8266 att ansluta till WIFI

#include #include #include // Gör det möjligt för ESP8266 att fungera som en server #include // möjliggör kommunikation med servern och klienten (din anslutna enhet) #include #include // För att öppna den uppladdade filen på nodemcu #include

Ange esp8266 som en webbserver som öppnas på port 80. Portar är vägar som data kommer att passera. Som en serverport skickar den HTML -filen till klienten (enheterna anslutna till den).

Lägger till en websocket -anslutning med port 81 för att lyssna efter meddelanden från klienten

Webbsocklarna har parametern num, WStype_t, nyttolast och storlek. Numret bestämmer klientnumret, nyttolast är meddelandet det skickar, storleken är längden på meddelandet och WStype_t är för olika händelser som t.ex.

  • WStype_DISCONNECTED - vid frånkoppling av en klient.
  • WStype_CONNECTED: - när en klient ansluter
  • WStype_TEXT - Mottagna data från klienten

Beroende på händelsestyp utförs olika åtgärder och kommenteras här

void webSocketEvent (uint8_t num, WStype_t type, uint8_t * nyttolast, size_t length) {

switch (typ) {case WStype_DISCONNECTED: Serial.printf ("[%u] Disconnected! / n", num); // skriver ut data till seriell bildskärmsbrott; fall WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // får IP -adressen för klienten Serial.printf ("[%u] Ansluten från%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], nyttolast); webSocket.sendTXT (num, "Connected"); // skickar "conencted" till webbläsarkonsolen} paus; fall WStype_TEXT: Serial.printf ("[%u] Data: %s / n", num, nyttolast); // skriver ut klientnumret i %u och data som tas emot som strängar i %s / n -paus;}}

Steg 3: Ställ in NODEMCU som server

anger ssid och lösenord som du kommer att använda för att ansluta till det senare

const char *ssid = "Försök";

const char *password = "12345678";

på konfigurationen anger vi hur snabbt vår nodemcu och dator kommer att kommunicera, vilket är 115200.

void setup (void) {

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

inställd på true också se wifi -diagnostikutgången på serilaterminalen

Serial.setDebugOutput (true);

initalisera filsystemet

SPIFFS.begin ();

Ställ in nodemcu som en åtkomstpunkt med ssid och lösenord defiend tidigare och skriver ut IP: n för nodemcu som du kommer att ansluta till tidigare. som standard är det 192.168.4.1

Serial.print ("Konfigurera åtkomstpunkt …");

WiFi.mode (WIFI_AP); WiFi.softAP (ssid, lösenord); IPAddress myIP = WiFi.softAPIP (); Serial.print ("AP IP -adress:"); Serial.println (myIP);

Initiera websocket på nodemcu, som är pur server

webSocket.begin ();

Anropar funktionen webSocketEvent när en websocket -händelse inträffar.

webSocket.onEvent (webSocketEvent);

För felsökning, skriv ut "WebSocket -server startad" på en ny rad. Detta för att bestämma kodraden nodemcu bearbetar

Serial.println ("WebSocket -server startad.");

när en klient besöker 192.168.4.1, kommer den att kalla funktionen handleFileRead och skicka med den parameterservern URI som i detta fall är vår nodemcu -information. Funktionen handleFileRead kommer att visa html -filen från nodemcu -filsystemet

server.onNotFound ( () {

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

om det inte kan hittas kommer det att visa "FileNotFound"

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

});

Startar servern och skriver ut HTTP -servern startad.

server.begin (); Serial.println ("HTTP -server startad");

På vår tomrumsslinga gör vi det möjligt för servern att kontinuerligt hantera klienten och dess webbkontaktkommunikationer enligt följande:

void loop (void) {

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

Steg 4: Ladda HTML -fil

vi kommer att använda en funktion som heter handleFileRead för att öppna och html -filen från nodemcu -filsystemet. den kommer att returnera en boolean av värde för att avgöra om den är laddad eller inte.

När "192.168.4.1/" öppnas av klienten ställer vi in sökvägen till "/Joystick.html, namnet på vår fil i datamappen

bool handleFileRead (String sökväg) {

Serial.println ("handleFileRead:" + sökväg); if (path.endsWith ("/")) sökväg += "Joystick.html"; if (SPIFFS.exists (sökväg)) {Filfil = SPIFFS.open (sökväg, "r"); size_t sent = server.streamFile (fil, "text/html"); file.close (); återvända sant; } returnera falskt; }

Kontrollera om sökvägen "/Joystick.html" finns

if (SPIFFS.exists (sökväg)) {

Om den finns, öppna sökvägen med ett syfte att läsa den som anges av "r". Gå hit för fler ändamål.

Filfil = SPIFFS.open (sökväg, "r");

Skickar filen till servern som med en innehållstyp "text/html"

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

stäng filen

file.close ();

funktionen handleFileRead returnerar true

return true;}

om sökvägen inte finns, returnerar funktionen handleFileRead falskt

återvända sant; }

Steg 5: Prova

Image
Image

Anslut till nodenMCU och gå till "192.168.4.1" och prova det!:)

Rekommenderad: