Serieller Plotter funktioniert nicht

Hallo,

Ich würde gerne mit dem seriellen Plotter die Werte meines CO2-Sensors graphisch darstellen.
In dem Ursprungsprogramm ist auch die Auswertung anderer Werte vorgesehen. Diese sind jedoch nicht relevant für die graphische Darstellung. Sobald ich aber versuche nur den C02-Wert anzeigen zu lassen bleibt das Fenster des Plotters leer...
Hat jemand eine Idee?

[code]

#include "WiFi.h"
#include "ESPAsyncWebServer.h"
#include "MHZ19.h"                                        
#include "SoftwareSerial.h"                                    
#include "DHTesp.h"

const char*     ssid =  "...";
const char* password =  "...";
 

#define RX_PIN 33                                          // Rx pin which the MHZ19 Tx pin is attached tozh
#define TX_PIN 32                                          // Tx pin which the MHZ19 Rx pin is attached to
#define BAUDRATE 9600                                      // Device to MH-Z19 Serial baudrate (should not be changed)
#define LED_gruen 21
#define LED_gelb 19
#define LED_rot 18
#define dhtPin 4                                           // verbunden mit Data-Pin des DHT22

//#define test

AsyncWebServer server(80);                                 // http port 80
DHTesp dht;
MHZ19 myMHZ19;                                             // Constructor for library
SoftwareSerial mySerial(RX_PIN, TX_PIN);                   // create device to MH-Z19 serialh

void setup()
{
    Serial.begin(115200);                                   // Datenrate serieller Monitor
   
    dht.setup(dhtPin, DHTesp::DHT22);                       // am dhtPin ist ein DHT22 angeschlossen
    mySerial.begin(BAUDRATE);                               // (Uno example) device to MH-Z19 serial start   
    myMHZ19.begin(mySerial);                                // *Serial(Stream) refence must be passed to library begin(). 

    myMHZ19.autoCalibration(true);                              // Turn auto calibration ON (OFF autoCalibration(false))

    
  
    WiFi.begin(ssid, password);
    delay(1000);
    
  while (WiFi.status() != WL_CONNECTED){
   Serial.println("Mit dem Wlan verbinden...");
    Serial.println(WiFi.localIP());                          // Ausgabe der IP-Adr. über seriellen Monitor
  }
//Ausgänge definieren
 pinMode(LED_gruen,OUTPUT );
 pinMode(LED_gelb,OUTPUT );
 pinMode(LED_rot,OUTPUT );
   

  server.on("/temperature", HTTP_GET, [](AsyncWebServerRequest * request) { //temperature Route
    float temperature = dht.getTemperature();
    request->send(200, "text/plain", String(temperature) + " C");
  });
 
  server.on("/humidity", HTTP_GET, [](AsyncWebServerRequest * request) {    //humidity Route
    float humidity = dht.getHumidity();
    request->send(200, "text/plain", String(humidity) + " %");
  });

  server.on("/co2", HTTP_GET, [](AsyncWebServerRequest * request) {         //co2 Route 
    int co2 = myMHZ19.getCO2();
    request->send(200, "text/plain", String(co2) + " ppm");
  });

  server.begin();                        // Start des Servers

}

unsigned long getDataTimer = 0;
    
void loop()
{

  if (millis() - getDataTimer >= 2000)
    {
  float temperature = dht.getTemperature();
  float humidity = dht.getHumidity();
 // Serial.print("Temperatur: ");
  //Serial.print(temperature);
  //Serial.print(" °C  Feuchtigkeit: ");
  //Serial.println(humidity);
  int  CO2 = myMHZ19.getCO2();                             // Request CO2 (as ppm)
  Serial.print("CO2 (ppm): ");                      
  Serial.print(CO2);                                
  int8_t Temp = myMHZ19.getTemperature();                 // Request Temperature (as Celsius)
  //Serial.print("  Temperatur CO2Sens (°C): ");                  
  //  Serial.println(Temp);                               
  getDataTimer = millis();
    }


  if ( myMHZ19.getCO2() >= 2000)                              //über 2000 ppm
    {
   digitalWrite(LED_rot, HIGH);
    }
  else {
    digitalWrite(LED_rot, LOW);
    } 
    
 
  if (1000 <= myMHZ19.getCO2() && 2000 > myMHZ19.getCO2() ) // über 1000 ppm
    {
   digitalWrite(LED_gelb, HIGH);
    }
  else {
   digitalWrite(LED_gelb, LOW); 
    }
   

  if (myMHZ19.getCO2() < 1000 )                            // unter 1000 ppm
    {
   digitalWrite(LED_gruen, HIGH);
    }
  else {
   digitalWrite(LED_gruen, LOW);
    }
   











}
[/code]

Danke schonmal:)

Vermutlich fehlt ein nl bei/nach dem letzen print().

Hallo,
Du musst schon alles was an Texten ausgegeben wird weg lassen. Wenn Du mehrere Werte plotten willst kannst Du die mit einem tab trennen.

Serial.print(CO2); Serial.print("/t"); Serial.println(temeratur);
Heinz

Den Tab erzeuge ich immer mit '\t'.
Der Schrägstrich wird nicht funktionieren.

Hallo,
@wno158 ups verklimpert , du hast natürlich Recht
Heinz

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.