Taula de continguts:

Punt d'accés (AP) ESP8266 NodeMCU per a servidor web amb sensor de temperatura DT11 i temperatura i humitat d'impressió al navegador: 5 passos
Punt d'accés (AP) ESP8266 NodeMCU per a servidor web amb sensor de temperatura DT11 i temperatura i humitat d'impressió al navegador: 5 passos

Vídeo: Punt d'accés (AP) ESP8266 NodeMCU per a servidor web amb sensor de temperatura DT11 i temperatura i humitat d'impressió al navegador: 5 passos

Vídeo: Punt d'accés (AP) ESP8266 NodeMCU per a servidor web amb sensor de temperatura DT11 i temperatura i humitat d'impressió al navegador: 5 passos
Vídeo: Pr#87 - Crear Servidor ESP8266 | Control Arduino por Internet (cualquier sitio del mundo) 2024, Desembre
Anonim
Punt d'accés (AP) ESP8266 NodeMCU per a servidor web amb sensor de temperatura DT11 i temperatura i humitat d'impressió al navegador
Punt d'accés (AP) ESP8266 NodeMCU per a servidor web amb sensor de temperatura DT11 i temperatura i humitat d'impressió al navegador

Hola nois a la majoria de projectes que fem servir ESP8266 i a la majoria de projectes fem servir ESP8266 com a servidor web perquè es pugui accedir a les dades des de qualsevol dispositiu mitjançant wifi accedint al servidor web allotjat per ESP8266, però l’únic problema és que necessitem un router això i el nostre dispositiu també necessiten connectar-se al router i hem de posar les nostres credencials de wifi al codi, de manera que si canvieu de wifi, heu de canviar les credencials del codi i heu de tornar a carregar-lo. Així que bàsicament tenim dos problemes aquí: 1- necessitem una connexió wifi per allotjar el servidor web (enrutador) 2- cada vegada que s’hagi de canviar la connexió wifi, haurem d’introduir credencials i tornar a penjar el codi. Per evitar tot aquest problema, el que podem fer és en lloc de donar una Accés wifi podem crear l’ESP8266 per crear una connexió wifi pròpia, de manera que si ens connectem a aquesta connexió wifi podrem accedir al servidor web d’ESP8266. Així, bàsicament, allotjarem un servidor web amb ESP8266 amb punt d’accés. anirà creant un servidor web que utilitza Access Point amb ESP8266 i connectarem un sensor DHT11 i la temperatura i humitat d’impressió a la pàgina del servidor web.

Pas 1: coses que necessiteu

Coses que necessiteu
Coses que necessiteu
Coses que necessiteu
Coses que necessiteu

1x ESP 8266 Nodemcu: 1x DHT11: 1x tauler de suport:.: Pocs saltadors:

Pas 2: Obteniu les biblioteques DHT11

Obteniu les biblioteques DHT11
Obteniu les biblioteques DHT11
Obteniu les biblioteques DHT11
Obteniu les biblioteques DHT11

Obriu el vostre ID Arduino i aneu a Sketch> Inclou biblioteca> Gestiona biblioteques. El gestor de biblioteques s'hauria d'obrir. Cerqueu "DHT" al quadre de cerca i instal·leu la biblioteca DHT d'Adafruit. Després d'instal·lar la biblioteca DHT d'Adafruit, escriviu "Adafruit Unified Sensor" al quadre de cerca. Desplaceu-vos fins a trobar la biblioteca i instal·leu-la. Després d’instal·lar-les, reinicieu l’Arduino IDE.

Pas 3: connexions

Connexions
Connexions

El circuit és molt fàcil connectar-ho tot segons es mostra en els esquemàtics

Pas 4: Codi del punt d’accés

Codi de punt d'accés
Codi de punt d'accés

Dels meus instructables anteriors modificaré el codi del servidor web d’aquests instructables:

I convertiu-lo en codi de servidor web de punt d’accés. Copieu el codi que es proporciona a continuació:

#include "Arduino.h" #include "ESP8266WiFi.h"

#include "Hash.h"

#include "ESPAsyncTCP.h"

#include "ESPAsyncWebServer.h"

#include "Adafruit_Sensor.h"

#include "DHT.h"

const char * ssid = "ESP8266"; const char * password = "password"; # define DHTPIN 5 // Pin digital connectat al sensor DHT // Descomenta el tipus de sensor en ús: // # define DHTTYPE DHT11 // DHT 11 # define DHTTYPE DHT22 // DHT 22 (AM2302) // # define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // temperatura i humitat actuals, actualitzades al bucle () float t = 0,0; float h = 0,0; // Creeu un objecte AsyncWebServer al port 80 Servidor AsyncWebServer (80); // Generalment, heu d’utilitzar "sense signar llarg" per a les variables que mantenen el temps // El valor es convertirà ràpidament en massa gran per a una int que emmagatzemi sense signar molt abans = 0; // emmagatzemarà la darrera vegada que es va actualitzar DHT // Actualitza les lectures DHT cada 10 segons de llarg interval = 10000; const char index_html PROGMEM = R "rawliteral (Servidor DHT ESP8266

Temperatura% TEMPERATURA% ° C

Humitat% HUMITAT%%) rawliteral "; // Substitueix l'espai reservat per processador de cadena de valors DHT (const String & var) {//Serial.println(var); if (var ==" TEMPERATURA ") {return String (t);} else if (var == "HUMIDITY") {return String (h);} return String ();} void setup () {// Port sèrie per a la depuració Serial.begin (115200); dht.begin (); Serial.print ("Configuració AP (Punt d'accés) … "); // Traieu el paràmetre de contrasenya, si voleu que l'AP (punt d'accés) estigui obert WiFi.softAP (ssid, contrasenya); IPAddress IP = WiFi.softAPIP (); Serial.print (" Adreça IP AP: "); Serial.println (IP); // Imprimir ESP8266 Adreça IP local Serial.println (WiFi.localIP ()); // Ruta per a root / pàgina web server.on (" / ", HTTP_GET, (AsyncWebServerRequest * request) {request-> send_P (200, "text / html", index_html, processador);}); server.on ("/ temperature", HTTP_GET, (AsyncWebServerRequest * request) {request- > send_P (200, "text / plain", String (t).c_str ());}); server.on ("/ humiditat", HTTP_GET, (sol·licitud AsyncWebServerRequest *) {request-> send_P (200, "text / senzill", String (h).c_str ()); }); // Inici del servidor server.begin ();} void loop () {unsigned long currentMillis = millis (); if (currentMillis - previousMillis> = interval) {// deseu la darrera vegada que vau actualitzar els valors de DHT previousMillis = currentMillis; // Llegiu la temperatura com Celsius (per defecte) flotant newT = dht.readTemperature (); // Llegiu la temperatura com a Fahrenheit (isFahrenheit = true) // float newT = dht.readTemperature (true); // si la lectura de temperatura ha fallat, no canvieu el valor t si (isnan (newT)) {Serial.println ("Error per llegir des del sensor DHT! "); } else {t = newT; Serial.println (t); } // Llegir Humitat flotant newH = dht.readHumidity (); // si la lectura de la humitat ha fallat, no canvieu el valor h si (isnan (newH)) {Serial.println ("No s'ha pogut llegir del sensor DHT!"); } else {h = newH; Serial.println (h); }}} Abans de penjar el codi, assegureu-vos de posar les coses següents: const char * ssid = "ESP8266"; // qualsevol que sigui el ssid de wifi que vulgueuconst char * password = "password"; // passa per connectar-se a la part superior ssidSet L'ESP8266 com a punt d'accés: per configurar esp8266 com a punt d'accés, utilitzarem l'ordre softAP com es mostra a continuació; per crear un punt d’accés. WiFi.softAP (ssid, contrasenya); també hi ha altres paràmetres opcionals que podeu passar al mètode softAP (). A continuació, es detallen tots els paràmetres: si obriu el monitor sèrie, podreu veure la IP del punt d’accés. Això es fa seguint una part del codi. IPAddress IP = WiFi.softAPIP (); Serial.print ("Adreça IP AP:"); Serial.println (IP); Per defecte, l'adreça IP és: 192.168.4.1

Pas 5: Pas final: proves

Pas final: proves
Pas final: proves

Després de penjar el codi, obriu el vostre mòbil / pc wifi i connecteu-vos al wifi esp8266 (qualsevol ssid i contrasenya que hàgiu introduït al codi en facin ús). Després de connectar-vos, obriu la IP al navegador que obtenim des del monitor sèrie (https://192.168.4.1.) i podreu veure la temperatura i la humitat del vostre navegador com a meves. I no hem utilitzat cap xarxa wifi per fer-ho, de manera que funciona el punt d’accés d’esp8266.

Recomanat: