Cuprins:
- Provizii
- Pasul 1: Faceți-o să funcționeze
- Pasul 2: Cum funcționează codul
- Pasul 3: Setați NODEMCU ca server
- Pasul 4: Încărcați fișierul HTML
- Pasul 5: Încercați
Video: Cum se folosește ESP8266 ca server web: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Bună, folosesc în prezent Windows 10, NodeMCU 1.0 și iată lista software-ului pe care l-am folosit și ghidurile de instalare pe care le-am urmat:
- IDE Arduino
- Plăci suplimentare pentru esp8266
- Spiff
Biblioteca utilizată:
Websocket
Am folosit NodeMCU ca server pentru a servi un fișier HTML realizat din acest tutorial. Pentru a servi acest fișier, am încărcat fișierul în sistemul de fișiere nodemcu folosind Spiffs. Fișierul HTML trimite date către nodemcu folosind websockets-uri pentru a fi tipărite pe monitorul serial. Comunicarea rapidă bidirecțională prin websockets a serverului și a clientului a permis ca acesta să fie utilizat ca telecomandă. La următorii pași, nu voi explica cum funcționează codul meu
Provizii
NodeMCU
Pasul 1: Faceți-o să funcționeze
Iată pașii despre modul în care funcționează
- Descărcați fișierul atașat și deschideți fișierul mousebot.ino
- Mergeți la schiță> afișați dosarul schiță și creați un dosar nou denumit date
- Salvați fișierul html din acest tutorial în folderul numit. L-am numit pe al meu drept „Joystick”
- Asigurați-vă că spiff-ul dvs. este deja funcțional accesând instrumentele și văzând „încărcarea datelor schiței esp8266”
- Încărcați fișierul html în nodemcu făcând clic pe "încărcare date schiță esp8266"
- După încărcarea fișierului, încărcați în nodemcu fișierul mousebot.ino prin oing la ID-ul arduino și apăsând ctrl U
Pasul 2: Cum funcționează codul
Mai întâi, includem bibliotecile pe care le va folosi acest cod
// pentru a permite ESP8266 să se conecteze la WIFI
#include #include #include // Activează ESP8266 să acționeze ca un server #include // permite comunicarea cu serverul și clientul (dispozitivul tău conectat) #include #include // Pentru a deschide fișierul uplaoded pe nodemcu #include
Setați esp8266 ca server web deschis pe portul 80. Porturile sunt căi prin care vor trece datele. Ca un port server, va trimite fișierul HTML către client (deivces conectat la acesta).
Adaugă o conexiune de socket web folosind portul 81 pentru a asculta mesajele de la client
Websocket-urile au parametrul num, WStype_t, sarcină utilă și dimensiune. Numărul determină numărul clientului, sarcina utilă este mesajul pe care îl trimite, dimensiunea este lungimea mesajului și WStype_t este pentru evenimente diferite, cum ar fi
- WStype_DISCONNECTED - la deconectarea unui client.
- WStype_CONNECTED: - când un client se conectează
- WStype_TEXT - Date primite de la client
În funcție de tipul evenimentului, se efectuează diferite acțiuni și sunt comentate aici
void webSocketEvent (uint8_t num, tip WStype_t, uint8_t * sarcină utilă, size_t lungime) {
switch (type) {case WStype_DISCONNECTED: Serial.printf ("[% u] Deconectat! / n", num); // tipărește date pe pauza monitorului serial; case WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // primește IP-ul clientului Serial.printf ("[% u] Conectat de la% d.% d.% d.% d url:% s / n", num, ip [0], ip [1], ip [2], ip [3], sarcină utilă); webSocket.sendTXT (num, "Conectat"); // trimite „conencted” la consola browserului} break; case WStype_TEXT: Serial.printf ("[% u] Date:% s / n", num, sarcină utilă); // tipărește numărul clientului în% u și datele primite ca șiruri în% s / n pauză;}}
Pasul 3: Setați NODEMCU ca server
setează ssid și parola pe care le veți folosi pentru a vă conecta mai târziu la acesta
const char * ssid = "Încearcă";
const char * password = "12345678";
la configurare, specificăm rata la care vor comunica nodemcu și computerul nostru, care este 115200.
configurare nulă (nulă) {
Serial.begin (115200); Serial.print ("\ n");
setați la adevărat și vedeți ieșirea de diagnostic wifi pe terminalul serila
Serial.setDebugOutput (adevărat);
inițializați sistemul de fișiere
SPIFFS.begin ();
Configurați nodemcu ca punct de acces cu ssid și password defiend mai devreme și tipăriți ip nodemcu cu care vă veți conecta mai devreme. implicit este 192.168.4.1
Serial.print ("Configurarea punctului de acces …");
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, parolă); IPAddress myIP = WiFi.softAPIP (); Serial.print ("Adresa IP AP:"); Serial.println (myIP);
Inițializați websocket-ul pe nodemcu, care este pur server
webSocket.begin ();
Apelează funcția webSocketEvent atunci când are loc un eveniment websocket.
webSocket.onEvent (webSocketEvent);
Pentru depanare, tipăriți „WebSocket server pornit” pe o nouă linie. Aceasta este pentru a determina linia de cod pe care nodemcu o procesează
Serial.println ("Server WebSocket pornit.");
când un client vizitează 192.168.4.1, acesta va apela funcția handleFileRead și va trimite cu acesta parametrul URI al serverului care în acest caz este informația noastră nodemcu. Funcția handleFileRead va servi fișierul html din sistemul de fișiere nodemcu
server.onNotFound ( () {
if (! handleFileRead (server.uri ()))
dacă nu poate fi găsit, va apărea „FileNotFound”
server.send (404, "text / simplu", "FileNotFound");
});
Începe serverul și se imprimă serverul HTTP de imprimare.
server.begin (); Serial.println ("Server HTTP pornit");
În bucla noastră nulă, permitem serverului să gestioneze în mod continuu comunicarea clientului și a portalurilor sale web, după cum urmează:
bucla void (nul) {
server.handleClient (); webSocket.loop ();}
Pasul 4: Încărcați fișierul HTML
vom folosi o funcție numită handleFileRead pentru a deschide și fișierul html din sistemul de fișiere nodemcu. va returna un boolean de valoare pentru a determina dacă este încărcat sau nu.
Când „192.168.4.1/” este deschis de client, setăm calea fișierului la „/Joystick.html, numele fișierului nostru din folderul de date
bool handleFileRead (String path) {
Serial.println ("handleFileRead:" + cale); if (path.endsWith ("/")) path + = "Joystick.html"; if (SPIFFS.exists (cale)) {Fișier fișier = SPIFFS.open (cale, "r"); size_t trimis = server.streamFile (fișier, "text / html"); file.close (); întoarcere adevărată; } returnează fals; }
Verificați dacă calea fișierului „/Joystick.html” există
if (SPIFFS.exists (cale)) {
Dacă există, deschideți calea cu scopul de a o citi, care este specificată de „r”. Mergeți aici pentru mai multe scopuri.
Fișier fișier = SPIFFS.open (cale, "r");
Trimite fișierul către server ca la un tip de conținut „text / html”
size_t trimis = server.streamFile (fișier, "text / html");
închideți fișierul
file.close ();
funcția handleFileRead returnează true
returnează adevărat;}
dacă calea fișierului nu există, funcția handleFileRead returnează false
întoarce-te adevărat; }
Pasul 5: Încercați
Conectați-vă la nodeMCU și accesați „192.168.4.1” și încercați-l!:)
Recomandat:
Cum se folosește un telefon Android ca cameră web cu Skype: 5 pași
Cum se folosește un telefon Android ca cameră web cu Skype: există o veche zicală conform căreia o imagine merită o mie de cuvinte … și există o nouă zicală conform căreia un videoclip valorează un milion. Acum ar putea părea o exagerare, dar există o diferență uriașă între a vorbi cu cineva la un apel și a vorbi cu
Cum se folosește instrumentul web în Fusion 360: 5 pași
Cum să utilizați instrumentul web în Fusion 360: este unul dintre acele instrumente subevaluate pe care probabil nu le utilizați, dar continuați să citiți și veți vedea de ce trebuie să începeți să profitați de instrumentul web din Fusion 360. Instrumentul web oferă o modalitate rapidă și super eficientă de a adăuga cruce la
Cum se folosește MQTT cu Raspberry Pi și ESP8266 / sonoff: 4 pași
Cum se folosește MQTT cu Raspberry Pi și ESP8266 / sonoff: Bună ziua! Astăzi vă voi arăta cum să configurați un comutator de releu wifi sonoff pe bază de raspberry pi și ESP8266 pentru a vă controla aparatele electrocasnice de oriunde din lume. din acest instructabil, dacă ai urmat cu atenție instrucțiunile mele
Cum se folosește Wemos ESP-Wroom-02 D1 Mini WiFi Module ESP8266 + 18650 folosind Blynk: 10 pași
Cum se folosește Wemos ESP-Wroom-02 D1 Mini WiFi Module ESP8266 + 18650 utilizând Blynk: Specificație: Compatibil cu integrarea nodemcu 18650 a sistemului de încărcare LED-ul indicator (verde înseamnă roșu complet înseamnă încărcare) poate fi utilizat în timpul încărcării Comutatorului Comutarea sursei de alimentare SMT conectorul poate fi folosit pentru modul de repaus · 1 adăugare
Cum se folosește placa compatibilă Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE utilizând Blynk: 10 pași
Cum se folosește placa compatibilă Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE folosind placa Blynk: Placă compatibilă Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE Descriere: Placă de dezvoltare WiFi ESP8266 WEMOS D1. WEMOS D1 este o placă de dezvoltare WIFI bazată pe ESP8266 12E. Funcționarea este similară cu cea a NODEMCU, cu excepția faptului că hardware-ul este construit