INHOUDSOPGAWE:
- Voorrade
- Stap 1: Laat dit werk
- Stap 2: Hoe die kode werk
- Stap 3: Stel die NODEMCU as bediener in
- Stap 4: Laai HTML -lêer
- Stap 5: Probeer dit
Video: Hoe om ESP8266 as webbediener te gebruik: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Hallo, ek gebruik tans Windows 10, NodeMCU 1.0 en hier is die lys van sagteware wat ek gebruik het en installasiegidse wat ek gevolg het:
- Arduino IDE
- Bykomende borde vir esp8266
- Spiff
Biblioteek gebruik:
Websocket
Ek het NodeMCU as 'n bediener gebruik om 'n HTML -lêer te bedien wat ek uit die tutoriaal gemaak het. Om hierdie lêer te bedien, het ek die lêer met Spiffs na die nodemcu -lêerstelsel opgelaai. Die HTML -lêer stuur data na die nodemcu met behulp van websockets om hiervoor op die seriële monitor gedruk te word. Die vinnige tweerigtingkommunikasie via websockets van die bediener en kliënt het dit moontlik gemaak om dit as afstandsbediening te gebruik. In die volgende stappe sal ek u verduidelik hoe my kode werk
Voorrade
NodeMCU
Stap 1: Laat dit werk
Hier is die stappe oor hoe dit werk
- Laai die aangehegte lêer af en maak die lêer mousebot.ino oop
- Gaan na skets> wys sketsmap en maak 'n nuwe gids met die naam data
- Stoor die html -lêer uit hierdie tutoriaal in die gids met die naam. Ek het myne as 'joystick' genoem
- Maak seker dat u spiff reeds funksioneel is deur na die gereedskap te gaan en die 'esp8266 sketsdata oplaai' te sien
- Laai die html -lêer op na nodemcu deur op "esp8266 sketch data upload" te klik
- Na die oplaai van die lêer, laai die mousebot.ino -lêer na die nodemcu op deur na die arduino IDE te gaan en op ctrl U te druk
Stap 2: Hoe die kode werk
Eerstens bevat ons die biblioteke wat hierdie kode sal gebruik
// om die ESP8266 in staat te stel om aan te sluit by die WIFI
#include #include #include // Stel die ESP8266 in staat om as 'n bediener op te tree #include // maak kommunikasie met die bediener en die kliënt moontlik (u gekoppelde toestel)
Stel die esp8266 in as 'n webbediener wat op poort 80 oopgemaak is. Poorte is paaie waardeur die data sal gaan. As 'n bedienerspoort, stuur dit die HTML -lêer na die kliënt (die toestelle wat daaraan gekoppel is).
Voeg 'n websocket -verbinding by met poort 81 om na boodskappe van die kliënt te luister
Die websockets het die parameter num, WStype_t, loonvrag en grootte. Die nommer bepaal die kliënt se nommer, die vrag is die boodskap wat dit stuur, die grootte is die lengte van die boodskap en WStype_t is vir verskillende gebeurtenisse, soos
- WStype_DISCONNECTED - by ontkoppeling van 'n kliënt.
- WStype_CONNECTED: - wanneer 'n kliënt aansluit
- WStype_TEXT - Ontvang data van die kliënt
Afhangende van die tipe gebeurtenis word verskillende aksies uitgevoer en word hier kommentaar gelewer
void webSocketEvent (uint8_t num, WStype_t type, uint8_t * payload, size_t length) {
skakelaar (tipe) {saak WStype_DISCONNECTED: Serial.printf ("[%u] Ontkoppel! / n", num); // druk data af na die reeksmonitorbreuk; saak WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // kry die IP van die kliënt Serial.printf ("[%u] Verbind van%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], loonvrag); webSocket.sendTXT (num, "verbind"); // stuur "conencted" na die blaaierkonsole} break; saak WStype_TEXT: Serial.printf ("[%u] Data: %s / n", num, laai); // druk die kliëntnommer in %u af en die data ontvang as stringe in %s / n breek;}}
Stap 3: Stel die NODEMCU as bediener in
stel die ssid en wagwoord in wat u later sal gebruik om aan te sluit
const char *ssid = "Probeer";
const char *wagwoord = "12345678";
Op die opstel spesifiseer ons die tempo waarmee ons nodemcu en rekenaar sal kommunikeer, wat 115200 is.
ongeldige opstelling (ongeldig) {
Serial.begin (115200); Serial.print ("\ n");
ook ingestel op waar, sien die wifi -diagnostiese uitset op die serila -terminale
Serial.setDebugOutput (waar);
die lêerstelsel initaliseer
SPIFFS.begin ();
Stel die nodemcu op as 'n toegangspunt met ssid en wagwoord defiend vroeër en druk die ip van die nodemcu af waarmee u vroeër sal skakel. standaard is dit 192.168.4.1
Serial.print ("Toegangspunt instel …");
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, wagwoord); IPAddress myIP = WiFi.softAPIP (); Serial.print ("AP IP -adres:"); Serial.println (myIP);
Initialiseer die websocket op die nodemcu, wat die bediener is
webSocket.begin ();
Noem die funksie webSocketEvent wanneer 'n websocket -gebeurtenis plaasvind.
webSocket.onEvent (webSocketEvent);
Druk vir ontfouting 'WebSocket -bediener begin' op 'n nuwe reël. Dit is om die kodelyn te bepaal wat die nodemcu verwerk
Serial.println ("WebSocket -bediener begin.");
as 'n kliënt 192.168.4.1 besoek, bel die funksie handleFileRead en stuur die parameter bediener URI saam, wat in hierdie geval ons nodemcu -inligting is. Die funksie handleFileRead sal die html -lêer van die nodemcu -lêerstelsel bedien
server.onNotFound ( () {
as (! handleFileRead (server.uri ()))
as dit nie gevind kan word nie, sal dit 'FileNotFound' wys
server.send (404, "text/plain", "FileNotFound");
});
Begin die bediener en druk die HTTP -bediener begin.
bediener.begin (); Serial.println ("HTTP -bediener begin");
Op ons leemte -lus stel ons die bediener in staat om die kliënt en sy webwerwe -kommunikasie voortdurend soos volg te hanteer:
leegte -lus (leegte) {
server.handleClient (); webSocket.loop ();}
Stap 4: Laai HTML -lêer
ons sal 'n funksie met die naam handleFileRead gebruik om die html -lêer van die nodemcu -lêerstelsel oop te maak. dit sal 'n boolean waarde gee om te bepaal of dit gelaai is of nie.
As "192.168.4.1/" deur die kliënt oopgemaak is, stel ons die lêerpad op "/Joystick.html, die naam van ons lêer in die datamap
bool handleFileRead (String pad) {
Serial.println ("handleFileRead:" + pad); if (path.endsWith ("/")) pad += "Joystick.html"; as (SPIFFS.exists (pad)) {File file = SPIFFS.open (pad, "r"); size_t gestuur = server.streamFile (lêer, "text/html"); file.close (); terugkeer waar; } vals terugkeer; }
Kontroleer of die lêerpad "/Joystick.html" bestaan
as (SPIFFS.exists (pad)) {
As dit bestaan, maak die pad oop met die doel om dit te lees wat deur die "r" gespesifiseer word. Gaan hier vir meer doeleindes.
Lêer lêer = SPIFFS.open (pad, "r");
Stuur die lêer na die bediener soos met die inhoudstipe "teks/html"
size_t gestuur = server.streamFile (lêer, "text/html");
maak die lêer toe
file.close ();
die funksie handleFileRead gee waar terug
terugkeer waar;}
as die lêerpad nie bestaan nie, gee die funksie handleFileRead onwaar terug
terugkeer waar; }
Stap 5: Probeer dit
Koppel aan die nodeMCU en gaan na "192.168.4.1" en probeer dit!:)
Aanbeveel:
Garagedeuropener met terugvoer met behulp van Esp8266 as webbediener: 6 stappe
Garagedeuropener met terugvoer met behulp van Esp8266 as webbediener: Hallo, ek sal u wys hoe u 'n eenvoudige deur oopmaak vir 'n garagedeur.-ESP8266 is gekodeer as 'n webbediener, die deur kan oral in die wêreld oop wees-Met terugvoer, u sal weet dat die deur intyds oop of toe is-eenvoudig, slegs een kortpad om
Tutoriaal: hoe om ESP32-CAM te gebruik in video-streaming webbediener: 3 stappe
Tutoriaal: Hoe om ESP32-CAM te gebruik in video-streaming webbediener: Beskrywing: ESP32-CAM is 'n ESP32 draadlose IoT Vision Development Board in 'n baie klein vormfaktor, wat ontwerp is om gebruik te word in verskillende IoT-projekte, soos tuis slim toestelle, industriële draadlose beheer, draadlose monitering, draadlose QR -identifikasie
Hoe om Wemos ESP-Wroom-02 D1 Mini WiFi-module ESP8266 + 18650 te gebruik deur Blynk te gebruik: 10 stappe
Hoe om Wemos ESP-Wroom-02 D1 Mini WiFi-module ESP8266 + 18650 te gebruik deur Blynk te gebruik: Spesifikasie: Versoenbaar met nodemcu 18650 laaistelselintegrasie aansluiting kan gebruik word vir slaapmodus · 1 voeg by
Hoe om Mac Terminal te gebruik en hoe om sleutelfunksies te gebruik: 4 stappe
Hoe om Mac Terminal te gebruik en hoe om belangrike funksies te gebruik: Ons sal u wys hoe u die MAC Terminal kan oopmaak. Ons sal u ook 'n paar funksies in die Terminal wys, soos ifconfig, veranderende gidse, toegang tot lêers en arp. Met Ifconfig kan u u IP -adres en u MAC -advertensie nagaan
Hoe om Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -versoenbare bord te gebruik deur Blynk te gebruik: 10 stappe
Hoe om Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -versoenbare bord te gebruik deur Blynk te gebruik: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -versoenbare bord Beskrywing: WiFi ESP8266 Development Board WEMOS D1. WEMOS D1 is 'n WIFI -ontwikkelingsbord gebaseer op ESP8266 12E. Die funksionering is soortgelyk aan dié van NODEMCU, behalwe dat die hardeware gebou is