ESP8266 Datos del sensor de salida en el sitio web

 

Ayer mostramos lo fácil que funciona nuestro ESP8266 con el sensor de temperatura MAX6675.

Hoy queremos ampliar el Sketch un poco para aprovechar la capacidad WiFi del módulo.

Para ello, incluimos la biblioteca "ESP8266WiFi". Esto asume el login a una red inalámbrica (WLAN) existente y asume el envío y la recepción de los datos al cliente.

Usando "WiFiServer server(80);" iniciamos un servidor que se ejecuta en el puerto 80.

 

 

#include <ESP8266WiFi.H>
#include <max6675.H>
Const Char* Ssid = "Nombre Wlan (SSID)";
Const Char* Contraseña = "Llave Wlan";

Int thermoDO = 12;
Int thermoCS = 13;
Int thermoCLK = 14;

WiFiServer Servidor(80); Configuramos el servidor web en el puerto 80

MAX6675 Termopar(thermoCLK, thermoCS, thermoDO); Configuramos el sensor de temperatura 

Vacío Configuración()
{   Serial.Comenzar(115200);   Serial.println();   Serial.Printf("Conectara a %s", Ssid);   Wifi.Comenzar(Ssid, Contraseña); Intentos de conectar el nombre y la clave con Wi-Fi   Mientras (Wifi.Estado() != WL_CONNECTED)   {     Retraso(500);     Serial.Impresión(".");   }   Serial.println("Conectado");   Servidor.Comenzar();   Serial.Printf("Servidor web iniciado, abrir %s en un navegador web", Wifi.localIP().Tostring().c_str());
}

Generar el contenido de la página femenina
Cadena prepareHtmlPage()
{   Cadena Htmlpage =      Cadena("HTTP/1.1 200 OK"") +             "Content-Type: text/html +             "Conexión: close-r-n" +  La conexión se cierra después de la transferencia             "Actualizar: 5-r"n" +  Recargar automáticamente cada 5 segundos             "A.R." +             "<! DOCTYPE HTML>" +             "<html>" +             "Temperatura en &deg; C: " + Cadena(Termopar.readCelsius()) + Salida de temperatura             "</html>" +             "A.R.";   devolución Htmlpage;
}

Vacío Bucle()
{   WiFiClient Cliente = Servidor.Disponible();   esperando la conexión desde el cliente (navegador web)   Si (Cliente)   {     Serial.println("[El cliente se ha conectado]");     Mientras (Cliente.Conectado())     {       Lea en línea lo que el cliente (navegador web) pide       Si (Cliente.Disponible())       {         Cadena Línea = Cliente.readStringUntil('A'r');         Serial.Impresión(Línea);         esperar hasta el final de la solicitud (línea vacía)         Si (Línea.Longitud() == 1 && Línea[0] == 'n')         {           Cliente.println(prepareHtmlPage()); Respuesta de salida           Romper;         }       }     }     Retraso(1000); dar al navegador tiempo para recibir la respuesta     Cierre la conexión:     Cliente.Parada();     Serial.println("[Cliente desconectado]");     Serial.Impresión("C ");      Serial.println(Termopar.readCelsius());     Retraso(10);   }
}

 

La salida de la temperatura en el monitor serie es solamente para la solución de problemas. En el monitor serie ahora vemos:

Salida serie

 

La salida en el navegador entonces se ve así:

 Vista del navegador

 

Si está un poco preocupado con los conceptos básicos de HTML (recomiendo mirar https://selfhtml.org/), puede personalizar el aspecto y el contenido de la página en la sección prepareHtmlPage(). 

A continuación, también se pueden generar varios datos de sensor en una página.

El ESP8266 puede actuar como un servidor web, así como desde un cliente. El microcontrolador ofrece así muchas soluciones nuevas y permite nuevos proyectos emocionantes a un precio razonable.

 

 

Precipitador electrostático - 8266Proyectos para avanzados.SensoresCasa inteligente

10 comentarios

Dimitrj Dirkes

Dimitrj Dirkes

Wie kann ich die temperatrur in einer anderen farbe und Größe ausgeben auf meinem webserver

rolf

rolf

Wie lege ich die IP Adresse des Webservers fest?

Weblint

Weblint

Gibt es eine reconnect Prozedur? Wenn ich den esp32 in einer anderen WiFi Umgebung einsetzen möchte soll sich der Bereich des neuen WLAN neu einrichten lassen. Gibt es schon so eine Routine?

Vielen Dank und frohes Fest

albin

albin

Sie schreiben “Gestern haben wir gezeigt wie einfach unser ESP8266 mit dem MAX6675-Temperatorsensor zusammenarbeitet.” Finde leider den ersten Teil von Gestern nicht auf Ihrer Page. Bitte um Link.

Ulrich Klaas

Ulrich Klaas

Hallo,
das ist doch echt nett hier das in diesem Block Programmierbeispiele gezeigt werden.
Aber programmieren Lernen sollte man schon selber oder sich in einschlägigen
Foren Rat holen.

C oder C++ lernen ist wirklich keine Zauberei.
Heute muss immer alles vorgekocht werden.
Ulli

4711engel

4711engel

Ich betreibe in Berlin eine von vielen Feinstaub-Sensor-Messstationene des “ESP-OK-LAB”.
Diese Station misst die Feinstaub-Belastung und liefert die Daten ins Internet, wo sie von einem Anbieter statistisch aufbereitet zur Verfügung gestellt wird.
Z.B. URL: http://www.madavi.de/sensor/graph.php?sensor=esp8266-306639-sds011

Da ich nicht immer mein Handy nutzen will, um mir die Auswertung zu laden, würde ich die Daten gerne mittels ESP8266 und einem ILI9341 TFT auf dem TFT automatisch alle Minute anzeigen lassen.
Z.B. die Grafik: http://www.madavi.de/sensor/images/sensor-esp8266-306639-sds011-1-day.png

Wie kann ich dieses realisieren? Ich bin leider kein großer Programmierer.

Bernd

Bernd

Hi,
habe den Quelltext unverändert in die Arduino IDE eingefügt und mit der ESP8266 Einstellung in den ESP geladen. Die Ausgaben im seriellen Monitor sind fast genauso wie oben gezeigt. Nur die Reihung ist verändert. Auch die Temperatur wird angezeigt. Rufe ich aber die im seriellen Monitor aufgeführte Adresse mit einem Explorer auf, erhalte ich eine Fehlermeldung. Die Adresse stimmt, denn im Router sehe ich den ESP genau unter dieser Adresse. Ich habe die Seite mit Firefox, Edge und dem alten Internetexplorer aufgerufen. Alle 3 können die Seite nicht aufbauen. Woran kann das liegen?

Hoschy

Hoschy

In Zeile 28 steht: " öffnen Sie %s in einem Webbrowser\n", WiFi.localIP "
das %s bezieht sich auf das Wifi.localIP, das ist die IP des webservers, des arduinos / mcu oder ähnliches wo die Webseite zum anzeigen drauf läuft.

Klaus

Klaus

Moin,
ein Anfänger sucht in selfhtml.org den Abschnit prepareHtmlPage – wünsche ein wenig mehr Hilfe.

michael

michael

Bin leider noch Anfänger:
Was bedeutet das Zeichen “%s” in der Zeile 28?

Mit was für einer Adresse rufe ich im Broser die Seite auf?

Deja un comentario

Todos los comentarios son moderados antes de ser publicados

Artículos de blog

  1. Ahora instalamos el esp32 a través de la administración.
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. Transporte Aéreo - programación de ESP mediante redes locales inalámbricas