ESP8266 Gegevens van de uitvoersensor op de website

 

Gisteren lieten we zien hoe eenvoudig onze ESP8266 met de MAX6675-temperator sensor werkt.

Vandaag willen we graag uitbreiden met de Schets een beetje, de WiFi mogelijkheid van de module om te profiteren van.

Voor dit integreren we de bibliotheek "ESP8266WiFi". Hierbij wordt uitgegaan van de registratie naar een bestaand Wi-Fi, en verzorgt het Verzenden en Ontvangen van data naar de Client.

Met behulp van de "wifi-server(80);" zullen we beginnen met een Server op Poort 80 is uitgevoerd.

 

 

#zijn <ESP8266WiFi.h>
#include <max6675.h>
const char* ssid = "Wi-Fi-Naam (SSID)";
const char* wachtwoord = "Wlan-toets";

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

wifi-server server(80); // We zetten de webserver op Poort 80, een

MAX6675 thermokoppel(thermoCLK, thermoCS, thermoDO); // We zetten de temperatuur sensor 

void setup()
{   Seriële.beginnen(115200);   Serial.. println();   naar Serieel.printf("verbinden met %s ", ssid);   WiFi.beginnen(ssid, wachtwoord); // Geprobeerd met Wi-Fi Naam en sleutel om verbinding te maken   terwijl de (WiFi -.status() != WL_CONNECTED)   {     vertraging(500);     Serieel.afdrukken(".");   }   Seriële.println(" aangesloten op");   server.beginnen();   Seriële.printf("web server, open %s in een web browser\n", WiFi.localIP().toString().c_str());
}

// inhoud van de website voor het genereren van
een String van het bereiden HtmlPage()
{   String htmlPage =      String("HTTP/1.1 200 OK\r\n") +             "Content-Type: text/html\r\n" - +             "- Aansluiting: sluit\r\n" +  // De verbinding nadat de Transmissie is gesloten             "Refresh: 5\r\n" +  // Automatisch om de 5 seconden te herladen             "\r\n" +             "<!DOCTYPE HTML>" +             ""<html>"" +             "temperatuur in &deg;C: " + String(thermokoppel.lees celsius()) + //output van de temperatuur             "</html>" +             "\r\n";   terugkeer htmlPage;
}

void loop()
{   wifi-client client = - server.beschikbaar();   // wacht voor verbinding van de Client (browser)   als (de client)   {     Serieel.. println("\n [- Client die is aangesloten]");     terwijl de (opdrachtgever.verbonden())     {       // regel voor regel te lezen van wat de Client (webbrowser) vraagt       als (client is.beschikbaar -())       {         String line = - client aan.het lezen van een string tot('\r ' te);         Serieel.afdrukken(lijn);         // tot het einde van het verzoek om te wachten (=lege regel)         als (lijn.lengte,() == 1 && lijn,[0] == '\n')         {           client.println(bereiden HtmlPage()); // het antwoord terug naar           de break;         }       }     }     - in delay(1000); // de Browser, de tijd te geven om het antwoord te ontvangen     // sluiten van De verbinding:     de client.stoppen();     Seriële.println("[Cliënt heeft de verbinding verbroken]");     Serieel.afdrukken("C = ");      Seriële.println(thermokoppel.lees Celsius());     vertraging(10);   }
}

 

in de uitvoer van De temperatuur in de serial Monitor is alleen voor debugging. Op de Serial Monitor zien we nu:

Seriële uitgang van de

 

De output in de Browser ziet er als volgt uit:

 Browser-weergave

 

Wie een beetje met de basis van HTML bezig (ik adviseer een kijkje op https://selfhtml.org/) in de sectie bereiden HtmlPage() om het uiterlijk te veranderen en de inhoud van de pagina welke aanpassen.

Dan, een veelvoud van sensor data op een pagina wordt weergegeven.

De ESP8266 kan dienen zowel als een web-server, maar ook van de Client. Dus, de micro-controller biedt veel nieuwe benaderingen om een oplossing en zorgt voor een kosteneffectieve spannende nieuwe projecten.

 

 

Esp-8266Projekte für fortgeschritteneSensorenSmart home

10 Kommentare

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?

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert

Aanbevolen blog berichten

  1. Installeer ESP32 nu van de raad van bestuur
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP Programmeren via Wi-Fi