Tabla de contenido:

Punto de acceso (AP) NodeMCU ESP8266 para servidor web con sensor de temperatura DT11 y temperatura y humedad de impresión en el navegador: 5 pasos
Punto de acceso (AP) NodeMCU ESP8266 para servidor web con sensor de temperatura DT11 y temperatura y humedad de impresión en el navegador: 5 pasos

Video: Punto de acceso (AP) NodeMCU ESP8266 para servidor web con sensor de temperatura DT11 y temperatura y humedad de impresión en el navegador: 5 pasos

Video: Punto de acceso (AP) NodeMCU ESP8266 para servidor web con sensor de temperatura DT11 y temperatura y humedad de impresión en el navegador: 5 pasos
Video: Pr#87 - Crear Servidor ESP8266 | Control Arduino por Internet (cualquier sitio del mundo) 2024, Mes de julio
Anonim
Punto de acceso (AP) NodeMCU ESP8266 para servidor web con sensor de temperatura DT11 y temperatura y humedad de impresión en el navegador
Punto de acceso (AP) NodeMCU ESP8266 para servidor web con sensor de temperatura DT11 y temperatura y humedad de impresión en el navegador

Hola chicos, en la mayoría de los proyectos usamos ESP8266 y en la mayoría de los proyectos usamos ESP8266 como servidor web para que se pueda acceder a los datos en cualquier dispositivo a través de wifi accediendo al servidor web alojado en ESP8266, pero el único problema es que necesitamos un enrutador que funcione para eso y nuestro dispositivo también debe conectarse al enrutador y debemos poner nuestras credenciales de wifi en el código, por lo que si cambia el wifi, debe cambiar las credenciales en el código y debe volver a cargarlo. Así que, básicamente, tenemos dos problemas aquí: 1- Necesitamos una conexión wifi para alojar el servidor web (enrutador) 2- Siempre que sea necesario cambiar la conexión wifi, debemos ingresar las credenciales y volver a cargar el código, así que para evitar todo este problema lo que podemos hacer es en lugar de dar un acceso wifi podemos hacer que el ESP8266 cree una conexión wifi propia por lo que si nos conectamos a esa conexión wifi podemos acceder al servidor web de ESP8266, así que básicamente estaremos hospedando un servidor web con ESP8266 con punto de acceso. estaremos creando un servidor web que usa Access Point con ESP8266 y conectaremos un sensor DHT11 e imprimiremos la temperatura y la humedad en la página del servidor web.

Paso 1: Cosas que necesita

Cosas que necesitas
Cosas que necesitas
Cosas que necesitas
Cosas que necesitas

1x ESP 8266 Nodemcu: 1x DHT11: 1x placa de pruebas:.: Pocos saltadores:

Paso 2: Obtenga las bibliotecas DHT11

Obtenga las bibliotecas DHT11
Obtenga las bibliotecas DHT11
Obtenga las bibliotecas DHT11
Obtenga las bibliotecas DHT11

Abra su IDE de Arduino y vaya a Sketch> Incluir biblioteca> Administrar bibliotecas. El Administrador de bibliotecas debería abrirse. Busque "DHT" en el cuadro de búsqueda e instale la biblioteca DHT de Adafruit. Después de instalar la biblioteca DHT de Adafruit, escriba "Adafruit Unified Sensor" en el cuadro de búsqueda. Desplácese hacia abajo para encontrar la biblioteca e instálela. Después de instalar las bibliotecas, reinicie su IDE de Arduino.

Paso 3: Conexiones

Conexiones
Conexiones

El circuito es muy fácil de conectar todo según se muestra en schmatics

Paso 4: Código de punto de acceso

Código de punto de acceso
Código de punto de acceso

De mis instrucciones anteriores, voy a modificar el código del servidor web de estas instrucciones:

Y conviértalo en código de servidor web de punto de acceso. Copie el código que se proporciona a continuación:

#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 conectado al sensor DHT // Descomenta el tipo de sensor en uso: // # define DHTTYPE DHT11 // DHT 11 # define DHTTYPE DHT22 // DHT 22 (AM2302) // # define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // temperatura y humedad actuales, actualizado en loop () float t = 0.0; float h = 0.0; // Crea un objeto AsyncWebServer en el puerto 80AsyncWebServer server (80); // Generalmente, debes usar "unsigned long" para las variables que mantienen el tiempo // El valor se volverá rápidamente demasiado grande para que un int lo almacene = 0; // almacenará la última vez que se actualizó DHT // Actualiza las lecturas de DHT cada 10 segundos const long interval = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 DHT Server

Temperatura% TEMPERATURA% ° C

Humedad% HUMEDAD%%) rawliteral "; // Reemplaza el marcador de posición con valores DHT Procesador de cadenas (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} else if (var == "HUMEDAD") {return String (h);} return String ();} void setup () {// Puerto serie para fines de depuración Serial.begin (115200); dht.begin (); Serial.print ("Configuración de AP (Punto de acceso)… "); // Elimine el parámetro de contraseña, si desea que el AP (Punto de acceso) esté abierto WiFi.softAP (ssid, contraseña); IPAddress IP = WiFi.softAPIP (); Serial.print (" Dirección IP AP: "); Serial.println (IP); // Imprime la dirección IP local ESP8266 Serial.println (WiFi.localIP ()); // Ruta para la raíz / servidor de página web.on (" / ", HTTP_GET, (AsyncWebServerRequest * solicitud) {solicitud-> send_P (200, "texto / html", index_html, procesador);}); server.on ("/ temperatura", HTTP_GET, (AsyncWebServerRequest * solicitud) {solicitud- > send_P (200, "text / plain", String (t).c_str ());}); server.on ("/ humedad", HTTP_GET, (AsyncWebServerRequest * request) {request-> send_P (200, "Texto sin formato", Cadena (h).c_str ()); }); // Iniciar el servidor server.begin ();} void loop () {unsigned long currentMillis = millis (); if (currentMillis - previousMillis> = interval) {// guarda la última vez que actualizaste los valores de DHT previousMillis = currentMillis; // Lee la temperatura como Celsius (por defecto) float newT = dht.readTemperature (); // Lee la temperatura como Fahrenheit (isFahrenheit = true) // float newT = dht.readTemperature (true); // si la lectura de la temperatura falló, no cambie el valor t if (isnan (newT)) {Serial.println ("Failed para leer del sensor DHT! "); } else {t = newT; Serial.println (t); } // Leer humedad float newH = dht.readHumidity (); // si la lectura de humedad falla, no cambie el valor h if (isnan (newH)) {Serial.println ("¡Error al leer del sensor DHT!"); } else {h = newH; Serial.println (h); }}} Antes de cargar el código, asegúrese de poner lo siguiente: const char * ssid = "ESP8266"; // cualquier ssid de wifi que deseeconst char * password = "contraseña"; // pasar para conectarse al ssidSet anterior El ESP8266 como un punto de acceso: Para configurar el esp8266 como un punto de acceso, usaremos el comando softAP como se muestra a continuación; para crear un punto de acceso. WiFi.softAP (ssid, contraseña); También hay otros parámetros opcionales que puede pasar al método softAP (). Aquí están todos los parámetros: Si abre el monitor en serie, puede ver la IP del punto de acceso. Lo cual se hace siguiendo parte del código. IPAddress IP = WiFi.softAPIP (); Serial.print ("Dirección IP AP:"); Serial.println (IP); Por defecto, la dirección IP es: 192.168.4.1

Paso 5: Paso final: prueba

Paso final: prueba
Paso final: prueba

Después de cargar el código, abra su wifi móvil / pc y conéctese al wifi esp8266 (cualquier ssid y contraseña que ingresó en el código, haga uso de eso). Después de conectarse, simplemente abra la IP en su navegador que obtuvimos del monitor serial (https://192.168.4.1.) y podrás ver la temperatura y la humedad en tu navegador como la mía. Y no usamos ninguna red wifi para hacer esto, así es como funciona el punto de acceso de esp8266.

Recomendado: