Innehållsförteckning:
- Tillbehör
- Steg 1: Få det att fungera
- Steg 2: Hur koden fungerar
- Steg 3: Ställ in NODEMCU som server
- Steg 4: Ladda HTML -fil
- Steg 5: Prova
Video: Så här använder du ESP8266 som webbserver: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
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
Här är stegen om hur det fungerar
- Ladda ner den bifogade filen och öppna filen mousebot.ino
- Gå till skiss> visa skissmapp och skapa en ny mapp med namnet data
- Spara html -filen från den här självstudien i mappen med namnet. Jag kallade min som "joystick"
- Se till att din spiff redan är funktionell genom att gå till verktyg och se "esp8266 sketch data upload"
- Ladda upp html -filen till nodemcu genom att klicka på "esp8266 sketch data upload"
- 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
Anslut till nodenMCU och gå till "192.168.4.1" och prova det!:)
Rekommenderad:
Handledning: Hur man använder ESP32-CAM i videostreaming webbserver: 3 steg
Handledning: Hur man använder ESP32-CAM i videostreaming-webbserver: Beskrivning: ESP32-CAM är en ESP32 Wireless IoT Vision Development Board i en mycket liten formfaktor, utformad för att användas i olika IoT-projekt, till exempel smarta enheter för hemmet, industriella trådlös kontroll, trådlös övervakning, trådlös QR -identifiering
Visuino Hur man använder en knapp som ingång för att styra saker som LED: 6 steg
Visuino Hur man använder en knapp som ingång för att styra saker som LED: I denna handledning lär vi oss att slå på och stänga av lysdioden med en enkel knapp och Visuino. Se en demonstrationsvideo
Så här använder du kontroller som inte stöds med en IOS 9.3.5 -enhet: 23 steg
Så här använder du kontroller som inte stöds med en IOS 9.3.5 -enhet: Nödvändigt material: PlayStation 4 -kontroller Lightning -laddningskabel Bärbar dator med Windows 10 iPod Touch 5: e generationens bärbar mus Mus bärbar laddningskabel
Så här använder du den interna PS3 -minneskortläsaren som en USB -enhet på din dator: 6 steg
Så här använder du den interna PS3 -minneskortläsaren som en USB -enhet på din dator: Först och främst är detta min första instruerbara (yippie!), Jag är säker på att det kommer att komma mycket. Så jag hade en trasig PS3 och ville utnyttja arbetskomponenterna. Det första jag gjorde var att dra databladet för omvandlarchipet på PS3 -kortet
Så här använder du Nokia Bl-5c-batteriet som ditt Htc-genbatteri: 10 steg
Så här använder du Nokia Bl-5c-batteriet som ditt Htc-genbatteri: killar, det här är min första handledning … så snälla ha med mig;) min 2 år gamla gen behövde ett batteribyte eftersom det bara kunde ge en säkerhetskopia på 15 minuter. … och det nya batteriet kostade runt INR 1000 ….. medan jag gick igenom mina junkar hittade jag en Nokia -mobil som jag