Sadržaj:
- Supplies
- Korak 1: Neka to funkcionira
- Korak 2: Kako kôd funkcionira
- Korak 3: Postavite NODEMCU kao server
- Korak 4: Učitajte HTML datoteku
- Korak 5: Isprobajte
Video: Kako koristiti ESP8266 kao web server: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Zdravo, trenutno koristim Windows 10, NodeMCU 1.0 i evo popisa softvera koji sam koristio i vodiča za instalaciju koje sam slijedio:
- Arduino IDE
- Dodatne ploče za esp8266
- Spiff
Korištena biblioteka:
Websocket
Koristio sam NodeMCU kao poslužitelj za posluživanje HTML datoteke koju sam napravio od ovog vodiča. Da bih poslužio ovu datoteku, postavio sam je u sistem datoteka nodemcu koristeći Spiffs. HTML datoteka šalje podatke nodemcu -u koristeći web -utičnice za ispis na serijskom monitoru. Brza dvosmjerna komunikacija putem web -utičnica servera i klijenta omogućila je da se to koristi kao daljinsko upravljanje. U sljedećim koracima ne bih objašnjavao kako moj kod funkcionira
Supplies
NodeMCU
Korak 1: Neka to funkcionira
Evo koraka kako to funkcionira
- Preuzmite priloženu datoteku i otvorite datoteku mousebot.ino
- Idite na skicu> prikaži mapu skice i napravite novu mapu s imenom data
- Spremite html datoteku iz ovog vodiča u nazivnu mapu. Moju sam nazvao "Joystick"
- Uvjerite se da je vaš ispis već funkcionalan tako što ćete otići do alata i vidjeti "esp8266 prijenos podataka o skici"
- Otpremite html datoteku na nodemcu klikom na "esp8266 prijenos podataka o skici"
- Nakon otpremanja datoteke, otpremite datoteku mousebot.ino na nodemcu tako što ćete otići u arduino IDE i pritisnuti ctrl U
Korak 2: Kako kôd funkcionira
Prvo, uključujemo biblioteke koje će ovaj kôd koristiti
// za omogućavanje ESP8266 povezivanja na WIFI
#include #include #include // Omogućava ESP8266 da djeluje kao poslužitelj #include // omogućava komunikaciju s poslužiteljem i klijentom (vašim povezanim uređajem) #include #include // Za otvaranje datoteke s opcijama na nodemcu #include
Postavite esp8266 kao web poslužitelj otvoren na portu 80. Portovi su putevi kroz koje će podaci prolaziti. Kao port poslužitelja, on će poslati HTML datoteku klijentu (uređaji povezani s njim).
Dodaje websocket vezu koristeći port 81 za preslušavanje poruka od klijenta
Websockets ima parametar num, WStype_t, korisni teret i veličinu. Broj određuje broj klijenta, korisni teret je poruka koju šalje, veličina je dužina poruke, a WStype_t je za različite događaje, kao što je
- WStype_DISCONNECTED - o isključenju klijenta.
- WStype_CONNECTED: - kada se klijent poveže
- WStype_TEXT - Primljeni podaci od klijenta
Ovisno o vrsti događaja, rade se različite radnje i ovdje se komentira
void webSocketEvent (broj uint8_t, tip WStype_t, uint8_t * korisni teret, veličina_t dužina) {
prekidač (tip) {slučaj WStype_DISCONNECTED: Serial.printf ("[%u] Prekinuto! / n", broj); // ispisuje podatke na prekid serijskog monitora; slučaj WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (broj); // dobiva IP klijenta Serial.printf ("[%u] Povezano s%d.%d.%d.%d. url URL:%s / n", num, ip [0], ip [1], ip [2], ip [3], korisni teret); webSocket.sendTXT (broj, "Povezano"); // šalje "conencted" na konzolu pretraživača} break; slučaj WStype_TEXT: Serial.printf ("[%u] Podaci: %s / n", broj, korisni teret); // ispisuje broj klijenta u %u i podatke primljene kao nizove u %s / n break;}}
Korak 3: Postavite NODEMCU kao server
postavlja ssid i lozinku koje ćete koristiti za kasnije povezivanje s njim
const char *ssid = "Pokušaj";
const char *password = "12345678";
pri postavljanju specificiramo brzinu kojom će naši nodemcu i računar komunicirati, a to je 115200.
void setup (void) {
Serial.begin (115200); Serial.print ("\ n");
postavljeno na true također pogledajte dijagnostički izlaz WiFi na terminalu serila
Serial.setDebugOutput (true);
inicializirati datotečni sistem
SPIFFS.begin ();
Postavite nodemcu kao pristupnu točku sa ssid -om i lozinkom definiranim ranije i ispisuje ip nodemcu -a s kojim ćete se ranije povezati. po defaultu je 192.168.4.1
Serial.print ("Konfigurisanje pristupne tačke …");
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, lozinka); IP adresa myIP = WiFi.softAPIP (); Serial.print ("AP IP adresa:"); Serial.println (myIP);
Inicijalizirajte websocket na nodemcu -u, koji je pur server
webSocket.begin ();
Poziva funkciju webSocketEvent kada dođe do websocket događaja.
webSocket.onEvent (webSocketEvent);
Za otklanjanje pogrešaka ispišite "WebSocket server pokrenut" na novom retku. Ovo služi za određivanje reda koda koji nodemcu obrađuje
Serial.println ("WebSocket server pokrenut.");
kada klijent posjeti 192.168.4.1, pozvat će funkciju handleFileRead i poslati s njim parametar poslužitelja URI koji je u ovom slučaju naša informacija nodemcu. Funkcija handleFileRead posluživat će html datoteku iz datotečnog sistema nodemcu
server.onNotFound ( () {
if (! handleFileRead (server.uri ()))
ako se ne može pronaći, prikazat će se "FileNotFound"
server.send (404, "text/plain", "FileNotFound");
});
Pokreće poslužitelj i pokreće HTTP server za ispis.
server.begin (); Serial.println ("HTTP poslužitelj pokrenut");
U našoj void petlji omogućavamo serveru da kontinuirano upravlja klijentom i njegovim websockets komunikacijama na sljedeći način:
void loop (void) {
server.handleClient (); webSocket.loop ();}
Korak 4: Učitajte HTML datoteku
koristit ćemo funkciju pod nazivom handleFileRead za otvaranje i html datoteku iz datotečnog sistema nodemcu. vratit će boolean vrijednosti kako bi utvrdio je li učitan ili nije.
Kada klijent otvori "192.168.4.1/", mi postavljamo putanju datoteke na "/Joystick.html, naziv naše datoteke u mapi podataka"
bool handleFileRead (String path) {
Serial.println ("handleFileRead:" + putanja); if (path.endsWith ("/")) path += "Joystick.html"; if (SPIFFS.exists (path)) {File file = SPIFFS.open (path, "r"); size_t sent = server.streamFile (datoteka, "tekst/html"); file.close (); return true; } return false; }
Provjerite postoji li datoteka "/Joystick.html"
if (SPIFFS.exists (path)) {
Ako postoji, otvorite putanju sa svrhom čitanja koja je navedena sa "r". Idite ovdje u više svrha.
Datoteka datoteke = SPIFFS.open (putanja, "r");
Šalje datoteku na poslužitelj s vrstom sadržaja "text/html"
size_t sent = server.streamFile (datoteka, "text/html");
zatvorite datoteku
file.close ();
funkcija handleFileRead vraća true
vrati true;}
ako putanja datoteke ne postoji, funkcija handleFileRead vraća false
return true; }
Korak 5: Isprobajte
Povežite se na nodeMCU i idite na "192.168.4.1" i isprobajte!:)
Preporučuje se:
Kako koristiti koračni motor kao rotacijski koder i OLED ekran za korake: 6 koraka
Kako koristiti koračni motor kao rotacijski koder i OLED zaslon za korake: U ovom ćemo vodiču naučiti kako pratiti korake koračnog motora na OLED zaslonu. Pogledajte demonstracijski video. Zasluge za originalni vodič idu korisniku youtube " sky4fly "
Kako koristiti Android telefon kao web kameru sa Skypeom: 5 koraka
Kako koristiti Android telefon kao web kameru sa Skypeom: Stara je izreka da slika vrijedi hiljadu riječi … a nova kaže da video vrijedi milijun. To bi sada moglo izgledati kao pretjerivanje, ali postoji velika razlika između razgovora s nekim na pozivu i razgovora s
Kako koristiti Mac terminal i kako koristiti ključne funkcije: 4 koraka
Kako koristiti Mac terminal i kako koristiti ključne funkcije: Pokazat ćemo vam kako otvoriti MAC terminal. Također ćemo vam prikazati nekoliko funkcija unutar Terminala, kao što su ifconfig, mijenjanje direktorija, pristup datotekama i arp. Ifconfig će vam omogućiti da provjerite svoju IP adresu i svoj MAC oglas
Kako koristiti Wiimote kao računalni miš koristeći svijeće kao senzor !!: 3 koraka
Kako koristiti Wiimote kao računalni miš koristeći svijeće kao senzor !!: Ovaj vodič će vam pokazati kako povezati Wii daljinski upravljač (Wiimote) sa računarom i koristiti ga kao miš
Kako koristiti kameru kao web kameru: 4 koraka
Kako koristiti kameru kao web kameru: Ako ste poput mene, imate mnogo prijatelja koji su se odselili od kuće, a žive hiljadama kilometara dalje, ili imate prijatelje s kojima ste išli na fakultet i svi oni žive različita mesta. Ja lično mrzim telefone i upute