Turinys:
- Prekės
- 1 žingsnis: priverskite tai veikti
- 2 veiksmas: kaip veikia kodas
- 3 veiksmas: nustatykite NODEMCU kaip serverį
- 4 veiksmas: įkelkite HTML failą
- 5 žingsnis: Išbandykite
Video: Kaip naudoti ESP8266 kaip žiniatinklio serverį: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Sveiki, šiuo metu naudoju „Windows 10“, „NodeMCU 1.0“ir čia yra mano naudojamos programinės įrangos sąrašas ir diegimo vadovai, kurių laikiausi:
- „Arduino IDE“
- Papildomos plokštės, skirtos esp8266
- Spiffas
Naudota biblioteka:
Websocket
Naudojau „NodeMCU“kaip serverį, kad galėčiau pateikti HTML failą, kurį sukūriau iš šios pamokos. Norėdami pateikti šį failą, įkėliau failą į „nodemcu“failų sistemą naudodami „Spiffs“. HTML failas siunčia duomenis į „nodemcu“, naudodamas žiniatinklio lizdus, kurie bus atspausdinti serijiniame monitoriuje. Greitas dvikryptis ryšys per serverio ir kliento žiniatinklio lizdus leido tai naudoti kaip nuotolinio valdymo pultą. Atlikdami šiuos veiksmus, nepaaiškinsiu, kaip veikia mano kodas
Prekės
NodeMCU
1 žingsnis: priverskite tai veikti
Štai kaip tai veikia
- Atsisiųskite pridėtą failą ir atidarykite failą mousebot.ino
- Eikite į eskizą> rodyti eskizų aplanką ir sukurkite naują aplanką pavadinimu data
- Išsaugokite šios instrukcijos html failą aplanke pavadinimu. Aš pavadinau savo „vairasvirte“
- Įsitikinkite, kad jūsų spiff jau veikia, eikite į įrankius ir pamatę „esp8266 eskizo duomenų įkėlimą“
- Įkelkite html failą į „nodemcu“spustelėdami „esp8266 eskizo duomenų įkėlimas“
- Įkėlę failą, įkelkite į „nodemcu“failą mousebot.ino, eidami į „arduino IDE“ir paspausdami „Ctrl U“
2 veiksmas: kaip veikia kodas
Pirmiausia įtraukiame bibliotekas, kurias naudos šis kodas
// kad ESP8266 galėtų prisijungti prie WIFI
#include #include #include // Leidžia ESP8266 veikti kaip serveriui #include // įgalina ryšį su serveriu ir klientu (jūsų prijungtu įrenginiu) #include #include // Norėdami atidaryti pakeistą failą nodemcu #include
Nustatykite esp8266 kaip žiniatinklio serverį, atidarytą 80 prievade. Uostai yra keliai, kuriais duomenys bus perduoti. Kaip serverio prievadas, jis nusiųs HTML failą klientui (prie jo prijungtoms sistemoms).
Pridedamas žiniatinklio lizdo ryšys naudojant 81 prievadą, kad būtų galima klausytis pranešimų iš kliento
„Websockets“turi parametrą num, WStype_t, naudingąją apkrovą ir dydį. Numeris nustato kliento numerį, naudingoji apkrova yra jo siunčiamas pranešimas, dydis - pranešimo ilgis, o „WStype_t“- skirtingiems įvykiams, pvz.
- WStype_DISCONNECTED - atjungus klientą.
- WStype_CONNECTED: - kai klientas prisijungia
- WStype_TEXT - Gauti duomenys iš kliento
Priklausomai nuo įvykio tipo, atliekami įvairūs veiksmai, kurie čia komentuojami
void webSocketEvent (uint8_t num, WStype_t tipas, uint8_t * naudingoji apkrova, size_t ilgis) {
switch (type) {case WStype_DISCONNECTED: Serial.printf ("[%u] Atsijungta! / n", num); // spausdina duomenis į serijinio monitoriaus pertrauką; atvejis WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // gauna kliento IP Serial.printf ("[%u] Prisijungta iš%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], naudingoji apkrova); webSocket.sendTXT (num, „Prisijungta“); // siunčia "conencted" į naršyklės konsolę} break; atvejis WStype_TEXT: Serial.printf ("[%u] Duomenys: %s / n", num, naudingoji apkrova); // išspausdina kliento numerį %u, o duomenis, gautus kaip eilutes, %s / n pertrauka;}}
3 veiksmas: nustatykite NODEMCU kaip serverį
nustato SSID ir slaptažodį, kuriuos naudosite prisijungdami prie jo vėliau
const char *ssid = "Pabandyk";
const char *slaptažodis = "12345678";
sąrankoje mes nurodome greitį, kuriuo mūsų nodemcu ir kompiuteris bendraus, kuris yra 115200.
void setup (void) {
Serial.begin (115200); Serial.print ("\ n");
nustatykite taip pat į true, žiūrėkite „Wi -Fi“diagnostikos išvestį serilos terminale
Serial.setDebugOutput (tiesa);
įjunkite failų sistemą
SPIFFS.begin ();
Anksčiau nustatykite „nodemcu“kaip prieigos tašką su „ssid“ir slaptažodžio pažeidimais ir išspausdinkite „nodemcu“, su kuriuo prisijungsite anksčiau, IP. pagal nutylėjimą jis yra 192.168.4.1
Serial.print ("Prieigos taško konfigūravimas …");
„WiFi.mode“(WIFI_AP); WiFi.softAP (ssid, slaptažodis); IPAddress myIP = WiFi.softAPIP (); Serial.print („AP IP adresas:“); Serial.println (myIP);
Inicijuokite žiniatinklio lizdą „nodemcu“, kuris yra pur serveris
webSocket.begin ();
Iškviečia funkciją webSocketEvent, kai įvyksta žiniatinklio lizdo įvykis.
webSocket.onEvent (webSocketEvent);
Norėdami atlikti derinimą, ant naujos eilutės išspausdinkite „WebSocket server started“. Taip nustatoma kodo eilutė, kurią „nodemcu“apdoroja
Serial.println („Paleistas„ WebSocket “serveris“);
kai klientas apsilanko 192.168.4.1, jis iškvies funkciją „handleFileRead“ir atsiųs su juo parametrų serverio URI, kuris šiuo atveju yra mūsų „nodemcu“informacija. Funkcija handleFileRead pateiks html failą iš failų sistemos „nodemcu“
server.onNotFound ( () {
if (! handleFileRead (server.uri ()))
jei jo nepavyksta rasti, bus rodoma „FileNotFound“
server.send (404, "text/plain", "FileNotFound");
});
Pradeda serverį ir prasideda spausdinimo HTTP serveris.
server.begin (); Serial.println („HTTP serveris paleistas“);
Mūsų tuštumos cikle mes leidžiame serveriui nuolat tvarkyti kliento ir jo žiniatinklio lizdų ryšius taip:
void loop (void) {
server.handleClient (); webSocket.loop ();}
4 veiksmas: įkelkite HTML failą
mes naudosime funkciją, pavadintą handleFileRead, kad atidarytume html failą iš failų sistemos „nodemcu“. jis grąžins loginę vertę, kad nustatytų, ar ji įkelta, ar ne.
Kai klientas atidaro „192.168.4.1/“, mes nustatome failo kelią į „/Joystick.html, mūsų failo pavadinimą duomenų aplanke
bool handleFileRead (eilutės kelias) {
Serial.println ("handleFileRead:" + kelias); if (path.endsWith ("/")) path += "Joystick.html"; if (SPIFFS.egzistuoja (kelias)) {Failo failas = SPIFFS.open (kelias, „r“); size_t send = server.streamFile (failas, "text/html"); file.close (); grįžti tiesa; } return false; }
Patikrinkite, ar yra failo kelias „/Joystick.html“
if (SPIFFS.exists (kelias)) {
Jei jis yra, atidarykite kelią, kad jį perskaitytumėte, nurodytą „r“. Eikite čia daugiau tikslų.
Failo failas = SPIFFS.open (kelias, "r");
Siunčia failą į serverį kaip turinio tipas „text/html“
size_t send = server.streamFile (failas, "text/html");
uždaryti failą
file.close ();
funkcija handleFileRead grąžina true
grįžti tiesa;}
jei failo kelias neegzistuoja, funkcija handleFileRead grąžina klaidingą
grįžti tiesa; }
5 žingsnis: Išbandykite
Prisijunkite prie „nodeMCU“ir eikite į „192.168.4.1“ir išbandykite!:)
Rekomenduojamas:
Garažo durų atidarytuvas su atsiliepimais naudojant „Esp8266“kaip žiniatinklio serverį .: 6 žingsniai
Garažo durų atidarytuvas, naudodamas „Esp8266“kaip žiniatinklio serverį: Sveiki, aš jums parodysiu, kaip padaryti paprastą būdą padaryti garažo durų atidarytuvą.-ESP8266 yra užkoduotas kaip žiniatinklio serveris, durys gali būti atidarytos visur pasaulyje atsiliepimai, jūs žinosite, ar durys yra atidarytos arba uždarytos realiu laiku-paprasta, tik vienas spartusis klavišas
Pamoka: Kaip naudoti ESP32-CAM vaizdo srautinio perdavimo žiniatinklio serveryje: 3 veiksmai
Pamoka: Kaip naudoti ESP32-CAM vaizdo srautinio perdavimo žiniatinklio serveryje: Aprašymas: ESP32-CAM yra labai mažos formos ESP32 belaidžio interneto vizijos kūrimo lenta, skirta naudoti įvairiuose daiktų interneto projektuose, pvz., Namų išmaniuosiuose įrenginiuose, pramonėje belaidis valdymas, belaidis stebėjimas, belaidis QR identifikavimas
7 segmentų LED ekrano valdymas naudojant ESP8266 žiniatinklio serverį: 8 žingsniai (su paveikslėliais)
7 segmentų LED ekrano valdymas naudojant ESP8266 žiniatinklio serverį: mano projekte yra „Nodemcu ESP8266“, kuris valdo 7 segmentų ekraną per http serverį, naudojant html formą
Pakartotinis HP WebCam 101 Aka 679257-330 žiniatinklio kameros modulio naudojimas kaip bendroji USB žiniatinklio kamera: 5 veiksmai
Pakartotinai naudokite „HP WebCam 101 Aka“679257-330 internetinės kameros modulį kaip bendrą USB žiniatinklio kamerą: noriu pagyvinti savo 14 metų amžiaus „Panasonic CF-18“visiškai nauja internetine kamera, tačiau „Panasonic“nebepalaiko to nuostabaus įrenginio, todėl turiu naudokite pilkąją medžiagą kažkam lengviau nei b & b (alus ir mėsainiai). Tai pirmoji dalis
Kaip sukurti „Express“žiniatinklio serverį naudojant „Raspberry Pi“: 10 žingsnių
Kaip sukurti „Express“žiniatinklio serverį naudojant „Raspberry Pi“: Šis vadovas jums pasakys, kaip priversti „Raspberry Pi“priglobti žiniatinklio serverį, kuris gali būti naudojamas svetainėms priglobti ir net šiek tiek modifikuoti, kad priglobtų daugelį kitų internetinių paslaugų, pvz. kaip žaidimų serveriai arba vaizdo transliacijos serveriai. Būsime tik priedanga