Sadržaj:
- Pribor
- Korak 1: Neka to funkcionira
- Korak 2: Kako kod funkcionira
- Korak 3: Postavite NODEMCU kao poslužitelj
- Korak 4: Učitajte HTML datoteku
- Korak 5: Isprobajte
Video: Kako koristiti ESP8266 kao web poslužitelj: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Bok, 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 s ovog vodiča. Da bih poslužio ovu datoteku, prenio sam je u datotečni sustav nodemcu koristeći Spiffs. HTML datoteka šalje podatke nodemcuu pomoću web -utičnica za ispis na serijskom monitoru. Brza dvosmjerna komunikacija putem web -utičnica poslužitelja i klijenta omogućila je da se to koristi kao daljinsko upravljanje. U sljedećim koracima ne bih objašnjavao kako moj kôd radi
Pribor
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 mapu s imenom. Svoju sam nazvao "Joystick"
- Uvjerite se da je vaš ispis već funkcionalan, idite na alate i pogledajte "esp8266 prijenos podataka o skici"
- Prenesite html datoteku na nodemcu klikom na "esp8266 prijenos podataka o skici"
- Nakon prijenosa datoteke prenesite datoteku mousebot.ino na nodemcu tako što ćete otići na arduino IDE i pritisnuti ctrl U
Korak 2: Kako kod funkcionira
Prvo, uključujemo knjižnice koje će ovaj kôd koristiti
// za omogućavanje povezivanja ESP8266 na WIFI
#include #include #include // Omogućuje ESP8266 da djeluje kao poslužitelj #include // omogućuje 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 priključku 80. Portovi su putevi kroz koje će podaci prolaziti. Kao poslužiteljski port, poslat će HTML datoteku klijentu (uređaji povezani s njim).
Dodaje websocket vezu pomoću priključka 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 duljina poruke, a WStype_t za različite događaje, kao što je
- WStype_DISCONNECTED - o prekidu veze s klijentom.
- WStype_CONNECTED: - kada se klijent poveže
- WStype_TEXT - Primljeni podaci od klijenta
Ovisno o vrsti događaja, poduzimaju se različite radnje koje se ovdje komentiraju
void webSocketEvent (uint8_t num, tip WStype_t, uint8_t * korisni teret, size_t duljina) {
switch (type) {case WStype_DISCONNECTED: Serial.printf ("[%u] Prekinuto! / n", broj); // ispisuje podatke u prekid serijskog monitora; slučaj WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (broj); // dobiva IP klijenta Serial.printf ("[%u] Povezan s%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], korisni teret); webSocket.sendTXT (broj, "Povezano"); // šalje "conencted" na konzolu preglednika} 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 poslužitelj
postavlja ssid i lozinku koje ćete koristiti za kasnije povezivanje s njim
const char *ssid = "Pokušaj";
const char *lozinka = "12345678";
pri postavljanju navodimo brzinu kojom će naši nodemcu i računalo 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 serila terminalu
Serial.setDebugOutput (true);
poništiti datotečni sustav
SPIFFS.begin ();
Postavite nodemcu kao pristupnu točku sa ssid -om i lozinkom definiranom ranije i ispisuje ip nodemcu -a s kojim ćete se ranije povezati. prema zadanim postavkama to je 192.168.4.1
Serial.print ("Konfiguriranje pristupne toč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, koji je pur poslužitelj
webSocket.begin ();
Poziva funkciju webSocketEvent kada se dogodi događaj websocket -a.
webSocket.onEvent (webSocketEvent);
Za otklanjanje pogrešaka ispišite "WebSocket server pokrenut" na novom retku. Ovo služi za određivanje linije koda koju nodemcu obrađuje
Serial.println ("WebSocket poslužitelj pokrenut.");
kada klijent posjeti 192.168.4.1, pozvat će funkciju handleFileRead i poslati s njim URI poslužitelja parametara koji je u ovom slučaju naša informacija nodemcu. Funkcija handleFileRead posluživat će html datoteku iz datotečnog sustava 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 pokrenut je HTTP poslužitelj ispisa.
server.begin (); Serial.println ("HTTP poslužitelj pokrenut");
U našoj petlji void, poslužitelju omogućujemo da kontinuirano upravlja klijentom i njegovim web -utičnicama na sljedeći način:
void loop (void) {
server.handleClient (); webSocket.loop ();}
Korak 4: Učitajte HTML datoteku
koristit ćemo funkciju imena handleFileRead za otvaranje i html datoteku iz datotečnog sustava nodemcu. vratit će boolean vrijednosti kako bi utvrdio je li učitan ili nije.
Kad klijent otvori "192.168.4.1/", put datoteke postavimo na "/Joystick.html, naziv naše datoteke u podatkovnoj mapi"
bool handleFileRead (String path) {
Serial.println ("handleFileRead:" + put); 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 stazu sa svrhom čitanja koja je navedena s "r". Idite ovdje u više svrha.
Datoteka datoteke = SPIFFS.open (put, "r");
Šalje datoteku na poslužitelj kao s vrstom sadržaja "text/html"
size_t sent = server.streamFile (datoteka, "tekst/html");
zatvorite datoteku
file.close ();
funkcija handleFileRead vraća vrijednost true
vrati true;}
ako put do datoteke ne postoji, funkcija handleFileRead vraća false
return true; }
Korak 5: Isprobajte
Povežite se s nodeMCU i idite na "192.168.4.1" i isprobajte!:)
Preporučeni:
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 tisuću riječi … a nova kaže da video vrijedi milijun. To bi se moglo činiti 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 značajki 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 Remote (Wiimote) s računalom 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 tisućama kilometara dalje, ili imate prijatelje s kojima ste išli na sveučilište u kojima svi živite razna mjesta. Osobno mrzim telefone i upute
FreeNAS kao poslužitelj za ispis: 11 koraka
FreeNAS Kao poslužitelj za ispis: FreeNAS je izvrsno rješenje za mrežnu pohranu dovoljno jednostavno da ga svatko može instalirati. Zahtjevi sustava i prostora smiješno su mali za ovu skraćenu verziju FreeBSD-a. Ima sve moguće značajke dostupne putem čistog