Taula de continguts:
- Subministraments
- Pas 1: feu que funcioni
- Pas 2: Com funciona el codi
- Pas 3: configureu NODEMCU com a servidor
- Pas 4: carregueu el fitxer HTML
- Pas 5: proveu-ho
Vídeo: Com utilitzar ESP8266 com a servidor web: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Hola, actualment estic fent servir Windows 10, NodeMCU 1.0 i aquí teniu la llista de programari que he utilitzat i les guies d'instal·lació que he seguit:
- IDE Arduino
- Taulers addicionals per a esp8266
- Spiff
Biblioteca utilitzada:
Connexió web
He utilitzat NodeMCU com a servidor per publicar un fitxer HTML que he fet a partir d’aquest document. Per publicar aquest fitxer, el vaig penjar al sistema de fitxers nodemcu mitjançant Spiffs. El fitxer HTML envia dades al nodemcu mitjançant websockets que s’imprimiran al monitor sèrie per a això. La ràpida comunicació bidireccional a través de websockets del servidor i del client ha permès utilitzar-lo com a control remot. En els passos següents, no explicaré com funciona el meu codi
Subministraments
NodeMCU
Pas 1: feu que funcioni
A continuació es detallen els passos sobre com funciona
- Descarregueu el fitxer adjunt i obriu el fitxer mousebot.ino
- Aneu a croquis> mostra la carpeta de croquis i creeu una carpeta nova anomenada dades
- Deseu el fitxer html d’aquest tutorial a la carpeta anomenada. He anomenat el meu "Joystick"
- Assegureu-vos que el vostre spiff ja sigui funcional anant a les eines i veient la "càrrega de dades d'esbossos esp8266"
- Pengeu el fitxer html a nodemcu fent clic a "càrrega de dades d'esbossos esp8266"
- Després de la càrrega del fitxer, carregueu al nodemcu el fitxer mousebot.ino mitjançant l'ingrés a l'IDE arduino i prement Ctrl U
Pas 2: Com funciona el codi
En primer lloc, incloem les biblioteques que utilitzarà aquest codi
// per habilitar l’ESP8266 per connectar-se a la WIFI
#include #include #include // Activa l'ESP8266 com a servidor #include // habilita la comunicació amb el servidor i el client (el vostre dispositiu connectat) #include #include // Per obrir el fitxer ubicat al nodemcu #include
Establiu l'esp8266 com a servidor web obert al port 80. Els ports són vies per les quals passaran les dades. Com a port de servidor, enviarà el fitxer HTML al client (els elements connectats a aquest).
Afegeix una connexió de socket web mitjançant el port 81 per escoltar els missatges del client
Els websockets tenen el paràmetre num, WStype_t, càrrega útil i mida. El número determina el número de client, la càrrega útil és el missatge que envia, la mida és la longitud del missatge i WStype_t és per a esdeveniments diferents, com ara
- WStype_DISCONNECTED: en desconnectar un client.
- WStype_CONNECTED: quan es connecta un client
- WStype_TEXT: dades rebudes del client
Depenent del tipus d'esdeveniment es realitzen diferents accions que es comenten aquí
void webSocketEvent (uint8_t num, tipus WStype_t, uint8_t * càrrega útil, mida_t longitud) {
commutador (tipus) {case WStype_DISCONNECTED: Serial.printf ("[% u] Desconnectat! / n", num); // imprimeix dades al salt del monitor sèrie; case WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // obté la IP del client Serial.printf ("[% u] Connectat des de% d.% d.% d.% d url:% s / n", num, ip [0], ip [1], ip [2], ip [3], càrrega útil); webSocket.sendTXT (num, "Connectat"); // envia "connectat" a la consola del navegador} break; case WStype_TEXT: Serial.printf ("[% u] Dades:% s / n", num, càrrega útil); // imprimeix el número de client en% u i les dades rebudes com a cadenes en% s / n break;}}
Pas 3: configureu NODEMCU com a servidor
defineix el ssid i la contrasenya que utilitzarà per connectar-s’hi més endavant
const char * ssid = "Prova";
const char * password = "12345678";
a la configuració, especifiquem la velocitat amb què es comunicaran els nostres nodemcu i pc, que és 115200.
configuració nul·la (nul·la) {
Serial.begin (115200); Serial.print ("\ n");
establert a true també veureu la sortida de diagnòstic wifi al terminal Serila
Serial.setDebugOutput (true);
inicialitzar el sistema de fitxers
SPIFFS.begin ();
Configureu el nodemcu com a punt d'accés amb ssid i password defiend abans i imprimiu la IP del nodemcu amb la qual us connectareu anteriorment. per defecte és 192.168.4.1
Serial.print ("Configuració del punt d'accés …");
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, contrasenya); IPAddress myIP = WiFi.softAPIP (); Serial.print ("Adreça IP AP:"); Serial.println (myIP);
Inicialitzeu el websocket al nodemcu, que és el servidor pur
webSocket.begin ();
Crida a la funció webSocketEvent quan es produeix un esdeveniment de websocket.
webSocket.onEvent (webSocketEvent);
Per a la depuració, imprimiu "S'ha iniciat el servidor WebSocket" en una nova línia. Es tracta de determinar la línia de codi que el nodemcu està processant
Serial.println ("S'ha iniciat el servidor WebSocket.");
quan un client visita 192.168.4.1, cridarà a la funció handleFileRead i enviarà amb ell el paràmetre URI del servidor que en aquest cas és la nostra informació nodemcu. La funció handleFileRead servirà el fitxer html del sistema de fitxers nodemcu
server.onNotFound ( () {
if (! handleFileRead (server.uri ()))
si no es troba es mostrarà "FileNotFound"
server.send (404, "text / plain", "FileNotFound");
});
Comença el servidor i s'inicia el servidor HTTP d'impressió.
server.begin (); Serial.println ( S'ha iniciat el servidor
Al nostre bucle buit, permetem al servidor gestionar de manera contínua les comunicacions del client i de les seves websockets de la manera següent:
bucle buit (buit) {
server.handleClient (); webSocket.loop ();}
Pas 4: carregueu el fitxer HTML
utilitzarem una funció anomenada handleFileRead per obrir i el fitxer html del sistema de fitxers nodemcu. retornarà un valor booleà per determinar si està carregat o no.
Quan el client obre "192.168.4.1/", establim la ruta del fitxer a "/Joystick.html, el nom del nostre fitxer a la carpeta de dades
bool handleFileRead (camí de la cadena) {
Serial.println ("handleFileRead:" + ruta); if (path.endsWith ("/")) path + = "Joystick.html"; if (SPIFFS.exists (path)) {Fitxer de fitxer = SPIFFS.open (path, "r"); size_t sent = server.streamFile (fitxer, "text / html"); file.close (); tornar cert; } tornar fals; }
Comproveu si el camí del fitxer "/Joystick.html" existeix
if (SPIFFS.exists (ruta)) {
Si existeix, obriu el camí amb el propòsit de llegir-lo que especifica la "r". Aneu aquí per obtenir més informació.
Fitxer fitxer = SPIFFS.open (ruta, "r");
Envia el fitxer al servidor com amb un tipus de contingut "text / html"
size_t sent = server.streamFile (fitxer, "text / html");
tanqueu el fitxer
file.close ();
la funció handleFileRead torna cert
tornar cert;}
si el camí d'accés del fitxer no existeix, la funció handleFileRead retorna false
tornar cert; }
Pas 5: proveu-ho
Connecteu-vos al nodeMCU i aneu a "192.168.4.1" i proveu-ho.:)
Recomanat:
Obridor de portes de garatge amb comentaris mitjançant l'Esp8266 com a servidor web: 6 passos
Obridor de portes de garatge amb comentaris mitjançant l’ús d’Esp8266 com a servidor web.: Hola, us mostraré com fer una manera senzilla de fer un obridor de portes de garatge. -L’ESP8266 està codificat com a servidor web; retroalimentació, sabreu que la porta està oberta o tancada en temps real: simple, només hi ha una drecera per fer que
ESP8266 i Visuino: Servidor web de temperatura i humitat DHT11: 12 passos
ESP8266 i Visuino: Servidor web de temperatura i humitat DHT11: els mòduls ESP8266 són excel·lents controladors independents de baix cost amb Wi-Fi integrat, i ja he elaborat una sèrie d’instruccions sobre ells. i sensors Arduino d’humitat, i he fet un nombre
Tutorial: Com utilitzar ESP32-CAM al servidor web de transmissió de vídeo: 3 passos
Tutorial: Com utilitzar ESP32-CAM al servidor web de transmissió de vídeo: Descripció: ESP32-CAM és una placa de desenvolupament de visió sense fils ESP32 sense fils amb un factor de forma molt reduït, dissenyada per ser utilitzada en diversos projectes IoT, com ara dispositius intel·ligents domèstics, industrials control sense fils, monitorització sense fils, identificació sense fils QR
Circumvenció del servidor de tallafoc / servidor intermediari: 3 passos
Firewall / Servidor intermediari: Eludir molts altres estudiants i em van preguntar com passar pels tallafocs i els proxies. Les persones de TI a l’escola són cada cop més intel·ligents quant als estudiants que fan servir proxies. Vaig pensar en aquest tema durant un temps i tinc una solució. Per què no creeu les vostres pròpies pàgines web
Com iniciar un servidor web / lloc web: 5 passos
Com iniciar un servidor web / lloc web casolà: ho vaig fer durant el cap de setmana perquè m'he avorrit i gaudeix-ne