Arduino Basics – Arduino IDE: Serieller Plotter

Die Arduino IDE bietet, neben dem seriellen Monitor, mit dem seriellen Plotter auch noch ein weiteres praktisches Tool zur seriellen Kommunikation. Der serielle Plotter bietet die Möglichkeit, Messdaten direkt grafisch auszugeben. Dies ist vor allem bei der Entwicklung mit Sensoren ein mächtiges Werkzeug.

Wo findet man den seriellen Plotter?

Während sich der serielle Monitor direkt über den Button oben links in der Arduino IDE aufrufen lässt, findet man den seriellen Plotter nur über das Menü. Hier versteckt er sich direkt neben dem bekannten seriellen Monitor (Werkzeuge -> Serieller Plotter).

Path zum seriellen Plotter
Seriellen Plotter öffnen

Syntax

Damit man den seriellen Plotter verwenden kann, müssen die Daten in einem festgelegten Format über die serielle Schnittstelle ausgegeben werden. Die Syntax hierfür ist allerdings ziemlich einfach. Wenn die Daten allerdings nicht in diesem Format ausgegeben werden, kann der serielle Plotter die Daten auch nicht interpretieren. Hierbei sollten folgende Bedingen beachtet werden:

  • Alle Werte müssen in einer “Nachricht” stehen. Das bedeutet, alle Werte, die ausgegeben werden, müssen in einer Zeile stehen. (Bei zwei Sensoren müssen beide Sensordaten also in einer Zeile ausgegeben werden)
  • Die Variablen werden mit “\t” getrennt.
  • Wenn eine Variable ein Label bekommen soll, wird dies mit der Syntax “Lable” : VARIABLE getan.

Beispiel mit Label

  • 1 Variable: “Label1 : ” variable1 “\n”
  • 2 Variablen: “Label1 : ” variable1 “\t” “Label2 :” variable2 “\n”
  • 3 Variablen: “Label1 : ” variable1 “\t” “Label2 :” variable2 “\t” “Label3 : ” variable3 “\n”

Beispiel ohne Lable

  • 1 Variable: variable1 “\n”
  • 2 Variablen: variable1 “\t” variable2 “\n”
  • 3 Variablen: variable1 “\t” variable2 “\t” variable3 “\n”

Beispiel mit DHT21

Als praktisches Beispiel benutze ich einen DHT21 Sensor welcher Temperatur und Luftfeuchtigkeit messen kann. Genauere Informationen zum DHT21 findest du im Beitrag: Arduino Basics – DHT11, DHT21 und DHT22

Code

// DHT library
#include "DHT.h"

// Datenleitung vom DHT an PIN 4 anschliessen
#define DATAPIN 4
// DHT Type angeben (z.B. DHT11 oder DHT22)
#define DHTTYPE DHT21

// Die gerade definierten Konstanten an die DHT-library uebergeben
// (Objekt initialisieren)
DHT dht(DATAPIN, DHTTYPE);

void setup() {
  // Serielle Verbindung starten
  Serial.begin(9600);
  // DHT starten
  dht.begin(); 
}

void loop() {
  // Temperatur lesen
  float temperatur = dht.readTemperature();
  // Luftfeuchtigkeit lesen
  float luftfeuchtigkeit = dht.readHumidity(); 

  // Temperatur ausgeben
  Serial.print("Temperatur ");
  Serial.print(temperatur);
  Serial.print("\t");
  
  //Luftfeuchtigkeit ausgeben
  Serial.print("Luftfeuchtigkeit:"); 
  Serial.print(luftfeuchtigkeit);
  Serial.println();
  
  // Eine Sekunde warten
  delay(1000);

}Code-Sprache: PHP (php)

Ausgabe

Ausgabe DHT21 mit seriellen Plotter
Ausgabe DHT21 mit seriellen Plotter

Zusehen ist der zeitliche Verlauf der Temperatur und der Luftfeuchtigkeit. An der Markierten stelle habe ich den DHT21 einmal angehaucht. Dort sieht man, dass beide Werte stark ansteigen und im Anschluss langsam wieder sinken.

Serieller Monitor mit Temperatur und Feuchtigkeit
Serieller Monitor mit Temperatur und Feuchtigkeit

Als Vergleich einmal die Ausgabe über den seriellen Monitor. Hier kann man feststellen das diese gut leserlich ist. Aus diesem Grund kannst Du dir überlegen, von Anfang an deine Ausgabe so zu schreiben, dass eine Ausgabe über den seriellen Plotter möglich ist. Dadurch kann man dann einfach zwischen seriellen Monitor und seriellen Plotter wechseln.

Hinweis: Bei Änderungen kann es oft helfen, den seriellen Plotter neu zu starten

Kommentare