Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Få det til at fungere
- Trin 2: Sådan fungerer koden
- Trin 3: Indstil NODEMCU som server
- Trin 4: Indlæs HTML -fil
- Trin 5: Prøv det
Video: Sådan bruges ESP8266 som webserver: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Hej, jeg bruger i øjeblikket Windows 10, NodeMCU 1.0, og her er listen over software, jeg brugte, og installationsvejledninger, jeg fulgte:
- Arduino IDE
- Ekstra tavler til esp8266
- Spiff
Brugt bibliotek:
Websocket
Jeg brugte NodeMCU som en server til at servere en HTML -fil, jeg lavede fra denne vejledning. For at servere denne fil uploadede jeg filen til nodemcu -filsystemet ved hjælp af Spiffs. HTML -filen sender data til nodemcu ved hjælp af websockets, der skal udskrives på den serielle skærm til dette. Den hurtige tovejskommunikation via websockets på serveren og klienten muliggjorde, at denne kunne bruges som fjernbetjening. På de følgende trin forklarer jeg dårligt, hvordan min kode fungerer
Forbrugsvarer
NodeMCU
Trin 1: Få det til at fungere
Her er trinene til, hvordan det fungerer
- Download den vedhæftede fil, og åbn filen mousebot.ino
- Gå til skitse> vis skitsemappe og lav en ny mappe med navnet data
- Gem html -filen fra denne vejledning i den navngivne mappe. Jeg kaldte mit som "joystick"
- Sørg for, at din spiff allerede er funktionel ved at gå til værktøjer og se "esp8266 sketch data upload"
- Upload html -filen til nodemcu ved at klikke på "esp8266 sketch data upload"
- Efter filoverførsel skal du uploade filen mousebot.ino til nodemcu ved at åbne arduino IDE og trykke på ctrl U
Trin 2: Sådan fungerer koden
Først inkluderer vi de biblioteker, denne kode vil bruge
// for at gøre det muligt for ESP8266 at oprette forbindelse til WIFI
#include #include #include // Aktiverer ESP8266 som server
Indstil esp8266 som en webserver, der er åbnet på port 80. Porte er veje, dataene vil passere igennem. Som en serverport sender den HTML -filen til klienten (enhederne forbundet til den).
Tilføjer en websocket -forbindelse ved hjælp af port 81 til at lytte efter meddelelser fra klienten
Websockets har parameteren num, WStype_t, nyttelast og størrelse. Nummeret bestemmer klientnummeret, nyttelast er den besked, den sender, størrelsen er meddelelsens længde, og WStype_t er for forskellige hændelser som f.eks.
- WStype_DISCONNECTED - ved afbrydelse af en klient.
- WStype_CONNECTED: - når en klient opretter forbindelse
- WStype_TEXT - Modtaget data fra klienten
Afhængigt af hændelsestypen udføres forskellige handlinger og kommenteres her
void webSocketEvent (uint8_t num, WStype_t type, uint8_t * nyttelast, size_t længde) {
switch (type) {case WStype_DISCONNECTED: Serial.printf ("[%u] Afbrudt! / n", num); // udskriver data til seriel skærmbrud; case WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // får IP -adressen til klienten Serial.printf ("[%u] Forbundet fra%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], nyttelast); webSocket.sendTXT (num, "Tilsluttet"); // sender "conencted" til browserkonsollen} pause; case WStype_TEXT: Serial.printf ("[%u] Data: %s / n", num, nyttelast); // udskriver klientnummeret i %u og de modtagne data som strenge i %s / n pause;}}
Trin 3: Indstil NODEMCU som server
indstiller ssid og adgangskode, du vil bruge til at oprette forbindelse til det senere
const char *ssid = "Prøv";
const char *password = "12345678";
på opsætningen specificerer vi den hastighed, hvormed vores nodemcu og pc vil kommunikere, hvilket er 115200.
void setup (void) {
Serial.begin (115200); Serial.print ("\ n");
indstillet til sand også se wifi -diagnostikoutput på serila -terminalen
Serial.setDebugOutput (true);
initalisere filsystemet
SPIFFS.begin ();
Konfigurer nodemcu som et adgangspunkt med ssid og password defiend tidligere og udskriver ip'en på nodemcu, som du vil oprette forbindelse til tidligere. som standard er det 192.168.4.1
Serial.print ("Konfiguration af adgangspunkt …");
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, adgangskode); IPAddress myIP = WiFi.softAPIP (); Serial.print ("AP IP -adresse:"); Serial.println (myIP);
Initialiser websocket på nodemcu, som er pur server
webSocket.begin ();
Opkalder funktionen webSocketEvent, når der opstår en websocket -hændelse.
webSocket.onEvent (webSocketEvent);
For fejlfinding skal du udskrive "WebSocket -server startet" på en ny linje. Dette er for at bestemme den kodelinje, nodemcu behandler
Serial.println ("WebSocket -server startet.");
når en klient besøger 192.168.4.1, vil den kalde funktionen handleFileRead og sende parameterserver -URI med den, som i dette tilfælde er vores nodemcu -information. Funktionen handleFileRead betjener html -filen fra nodemcu -filsystemet
server.onNotFound ( () {
hvis (! handleFileRead (server.uri ()))
hvis den ikke kan findes, viser den "FileNotFound"
server.send (404, "text/plain", "FileNotFound");
});
Starter serveren og udskriver HTTP -serveren startet.
server.begin (); Serial.println ("HTTP -server startet");
På vores tomrumssløjfe gør vi serveren i stand til løbende at håndtere klientens og dens websockets kommunikation som følger:
void loop (void) {
server.handleClient (); webSocket.loop ();}
Trin 4: Indlæs HTML -fil
vi vil bruge en funktion ved navn handleFileRead til at åbne og html -filen fra nodemcu -filsystemet. den returnerer en boolean af værdi for at afgøre, om den er indlæst eller ej.
Når "192.168.4.1/" er åbnet af klienten, sætter vi filstien til "/Joystick.html, navnet på vores fil i datamappen
bool handleFileRead (strengsti) {
Serial.println ("handleFileRead:" + sti); hvis (path.endsWith ("/")) sti += "Joystick.html"; hvis (SPIFFS.exists (sti)) {Filfil = SPIFFS.open (sti, "r"); size_t sendt = server.streamFile (fil, "tekst/html"); file.close (); vende tilbage sandt; } returner falsk; }
Kontroller, om filstien "/Joystick.html" findes
hvis (SPIFFS.exists (sti)) {
Hvis den findes, skal du åbne stien med det formål at læse den, som er angivet af "r". Gå her til flere formål.
Filfil = SPIFFS.open (sti, "r");
Sender filen til serveren som med en indholdstype "tekst/html"
size_t sendt = server.streamFile (fil, "tekst/html");
luk filen
file.close ();
funktionen handleFileRead returnerer true
return true;}
hvis filstien ikke findes, returnerer funktionen handleFileRead falsk
vende tilbage sandt; }
Trin 5: Prøv det
Opret forbindelse til nodeMCU og gå til "192.168.4.1" og prøv det!:)
Anbefalede:
Sådan bruges trinmotor som roterende encoder og OLED -display til trin: 6 trin
Sådan bruges trinmotor som roterende encoder og OLED -skærm til trin: I denne vejledning lærer vi, hvordan du sporer trinmotortrinene på OLED -skærmen. Se en demonstrationsvideo. Kredit for den originale vejledning går til youtube -bruger " sky4fly "
Sådan bruges en Android -telefon som et webcam med Skype: 5 trin
Sådan bruges en Android -telefon som et webcam med Skype: Der er et gammelt ordsprog om, at et billede er tusind ord værd … og der er et nyt ordsprog om, at en video er en million værd. Nu kan det virke som en overdrivelse, men der er en enorm forskel mellem at tale med nogen under et opkald og tale med
Visuino Sådan bruges en knap som input til at styre ting som LED: 6 trin
Visuino Sådan bruges en knap som input til at styre ting som LED: I denne vejledning lærer vi, hvordan man tænder og slukker LED'en ved hjælp af en simpel knap og Visuino. Se en demonstrationsvideo
Sådan bruges den interne PS3 -hukommelseskortlæser som en USB -enhed på din pc: 6 trin
Sådan bruges den interne PS3 -hukommelseskortlæser som en USB -enhed på din pc: Først og fremmest er dette min første instruerbare (yippie!), Jeg er sikker på, at der vil være masser at komme til. Så jeg havde en ødelagt PS3 og ville gøre brug af arbejdskomponenterne. Det første, jeg gjorde, var at trække databladet til konverterchippen på PS3 -kortet r
Sådan bruges Wiimote som computermus Brug af stearinlys som sensor !!: 3 trin
Sådan bruges Wiimote som computermus Brug af stearinlys som sensor !!: Denne vejledning viser dig, hvordan du forbinder din Wii -fjernbetjening (Wiimote) til din pc og bruger den som en mus