Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

TFT-Diagramme:Live-Verlaufsdiagramme

Komponenten und Verbrauchsmaterialien

Arduino Mega 2560
× 1
DHT11 Temperatur- und Feuchtigkeitssensor (4 Pins)
× 1
Elegoo 2,8-Zoll-TFT-LCD-Schild
× 1
Jumper (generisch)
× 1
Breadboard (generisch)
× 1

Apps und Onlinedienste

Arduino Web Editor

Über dieses Projekt

Übersicht

Wollten Sie schon immer Ihre Daten professionell auf einem TFT-LCD grafisch darstellen? Aber es gibt ein Problem, es ist besonders schwierig, einen Graphen wegen all der damit verbundenen Berechnungen zu erstellen.

Dieses Projekt zielt darauf ab, all diesen Stress von Ihren Schultern zu nehmen und Ihnen zu ermöglichen, Ihr eigenes personalisiertes Verlaufsdiagramm zu erstellen, das in Sekundenschnelle alles grafisch darstellt, was Sie wollen. Alles, was Sie tun müssen, ist 5 Variablen zu bearbeiten.

Video

Bild

Funktionalität

Dieses Projekt zielt darauf ab, das Zeichnen von Grafiken für alle einfach und unterhaltsam zu machen. Alle harten Berechnungen sind abgeschlossen, der Benutzer muss nur 2 Variablen bearbeiten und die Farbe für seine Grafik auswählen. Hier sind einige Beispiele, die die Vielfalt des Diagramms zeigen.

Das Diagramm zeigt die Temperatur live in Intervallen von 6 Sekunden an, der Wert wird durch einen Punkt angezeigt, der Punkt wird durch eine Linie mit anderen Punkten verbunden. Die seit dem Start des Codes verstrichenen Sekunden werden auf der x-Achse mit dem Wertebereich auf der y-Achse angezeigt.

Das Projekt funktioniert einfach, der Arduino Mega liest den Wert des DHT 11-Sensors und speichert die Temperatur in einer Variablen, dann stellt er den Wert in der benutzerdefinierten Grafik grafisch dar. Hier ist ein Diagramm, das die Funktionsübersicht veranschaulicht.

Hier ist ein Bild, das die Codeübersicht des Projekts zeigt.

  • Temperatur lesen liest die Temperatur vom Sensor
  • Prozessdaten verarbeitet den Sensormesswert und ordnet ihn dem Diagramm zu.
  • Grafikdaten zeigt die zugeordneten Werte im Diagramm an.

Alles, was Sie wissen müssen, um mit diesem Projekt fortfahren zu können, ist ein umfassendes Verständnis dafür, wie die Dinge auf dem TFT-LCD positioniert sind. Dies wird unten erklärt.

Ich bezeichne das gesamte LCD als Leinwand, hier wird alles gezeichnet, alle TFT-LCD-Bibliotheken funktionieren ziemlich ähnlich, daher sollten die Funktionen in diesem Code auch mit anderen Bibliotheken funktionieren. Unten sehen Sie eine Skizze eines Vierecks (ein Rechteck), das auf einem TFT-LCD gezeichnet wird.

In dieser Skizze wird ein Rechteck gezeichnet, jeder Punkt ist beschriftet, die Codezeile, die zum Zeichnen eines Rechtecks ​​verwendet wird, ist dies,

tft.fillRect(originX, originY, sizeX, sizeY, Colour); 
  • originX wird im obigen Diagramm durch 'z' dargestellt, dies ist der Abstand vom rechten Bildschirmrand zur Form.
  • Herkunft wird in der Skizze durch 'x' dargestellt, dies ist der Abstand vom oberen Rand des Bildschirms zur Form.
  • sizeX ist die Größe der Form auf der x-Achse, dies ist die Länge der Form.
  • sizeY ist die Größe der Form auf der y-Achse, dies ist die Höhe der Form.

Vorteile

Die Nutzer in Betrieb dieses Projekt wird Vorteil In:

  • Grafiksensordaten auf einem TFT-LCD
  • Tu dies in Sekunden

Das Projekt erstellen

Schritt 1: Erforderlich Gerät

Dieses Projekt verwendet einen DHT 11 Temperatur- und Feuchtigkeitssensor, um die Temperaturdaten zu empfangen, aber es kann jeder Sensor verwendet werden. Der Wechsel des Sensors wird weiter unten erklärt.

  • 1, Arduino Mega
  • 1, Elegoo 2,8' TFT-LCD
  • 1, DHT 11-Sensor
  • 1, Steckbrett
  • Überbrückungsdrähte

Schritt 2: Verbinden die Schaltung

Hier sind die Schaltpläne für das Projekt, befestigen Sie einfach den DHT 11-Sensor am Arduino Mega und Sie können loslegen.

Schritt 3:Den Code bestätigen

Der Code besteht aus 3 Hauptteilen:

  • Grafik einrichten
  • Temperatur lesen
  • Grafik zeichnen

Diese Abschnitte werden unten erklärt.

  • Diagramm einrichten
// Titel zeichnen tft.setCursor(10, 10); // setze den Cursor tft.setTextColor(BLUE); // setze die Farbe des Textes tft.setTextSize(4); // setze die Größe des Textes tft.println(graphName); // Umriss zeichnen tft.drawLine(originX, originY, (originX + sizeX), originY, graphColor); tft.drawLine(originX, originY, originX, (originY - sizeY), graphColor); // Labels zeichnen for(int i =0; i  

Dieser Teil des Codes zeichnet den Umriss des Diagramms, er zeichnet die x- und y-Achsenlinien, er zeichnet auch die Markierungen und beschriftet die y-Achse mit Werten.

  • Lesen Temperatur
chk =DHT.read11(22); temp =(DHT.temperatur); 

Diese kurze Codezeile liest die Temperatur vom DHT 11-Sensor und speichert sie dann in einer Variablen.

  • Zeichnen Grafik
if(blockPos <8) {// die Zeit ausgeben tft.setCursor((mark[valuePos] - 5), (originY + 16)); tft.setTextColor(graphColor, WEISS); tft.setTextSize(1); tft.println(timeBlock[valuePos]); // den Wert zuordnen locationBlock[valuePos] =map(temp, 0, graphRange, originY, (originY - sizeY)); // Punkt zeichnen tft.fillRect((mark[valuePos] - 1), (locationBlock[valuePos] - 1), markSize, markSize, pointColor); // Versuch eine Verbindung zum vorherigen Punkt herzustellen if(valuePos !=0) { tft.drawLine(mark[valuePos], locationBlock[valuePos], mark[(valuePos - 1)], locationBlock[(valuePos - 1)], lineColor); } blockPos++; } else { // Leere die Leinwand des Graphen tft.fillRect((originX + 2), (originY - sizeY), sizeX, sizeY, WHITE); // den Wert zuordnen - aktueller Punkt locationBlock[valuePos] =map(temp, 0, graphRange, originY, (originY - sizeY)); // Punkt zeichnen - aktueller Punkt tft.fillRect((mark[7]), (locationBlock[valuePos] - 1), markSize, markSize, pointColor); // alle Punkte zeichnen for(int i =0; i <8; i++) { tft.fillRect((mark[(blockPos - (i + 1))] - 1), (locationBlock[(valuePos - i)] - 1), markSize, markSize, pointColor); } // alle Linien zeichnen for(int i =0; i <7; i++) { tft.drawLine(mark[blockPos - (i + 1)], locationBlock[valuePos - i], mark[blockPos - (i + 2)], locationBlock[valuePos - (i + 1)], lineColor); } // Zeitangaben ändern for(int i =0; i <=8; i++) { tft.setCursor((mark[(blockPos - i)] - 5), (originY + 16)); tft.setTextColor(graphColor, WEISS); tft.setTextSize(1); tft.println(timeBlock[valuePos - i]); } } valuePos++; 

Dieser lange Teil des Codes zeichnet die Punkte des Diagramms an ihren Werten und verbindet sie dann durch Linien. Der Code überprüft, ob die Zeichenfläche des Diagramms gefüllt ist. Wenn dies der Fall ist, wird der erste Wert des Diagramms ausgegeben und die anderen nach oben verschieben, um Platz für das Einfügen des neuen Werts zu schaffen. Wenn noch Platz übrig ist, fügt das Gerät in Intervallen Werte hinzu.

Diagramm personalisieren

Das Tolle an diesem Diagramm ist, dass es zu 100% editierbar ist, sodass der Benutzer die Größe des Diagramms, seine Position und seine Farbe bearbeiten kann. Der Benutzer kann dank seiner Flexibilität auch alle Daten auf dem Diagramm anzeigen. Sind alle Variablen, die Sie interessieren sollten.

bool proDebug =0; uint16_t graphColor =BLAU; uint16_t pointColor =SCHWARZ; uint16_t lineColor =GRÜN; String graphName ="Zeitdiagramm"; int graphRange =50; int markSize =3; 
  • proDebug ist das in das Projekt integrierte Debugging-Dienstprogramm, es ist standardmäßig auf 0 gesetzt. Wenn es auf 1/true gesetzt ist, wird die aktuelle Temperatur auf dem Serial Monitor ausgegeben. Dies ist ein Debugging-Dienstprogramm. Beachten Sie, dass der Serial Monitor, wenn er aktiviert ist, muss geöffnet sein, damit der Code ausgeführt werden kann.
  • graphColor stellt die Farbe des Diagramms ein, die x- und y-Linien und ihre Beschriftungen werden auf diese Farbe gesetzt.
  • pointColor stellt die Farbe des Punktes dar, der den Wert im Diagramm darstellt.
  • Linienfarbe stellt die Farbe der Linie, die die Punkte im Diagramm verbindet, auf die ausgewählte Farbe ein.
  • graphRange ist das Rückgrat des Diagramms, beachten Sie, dass es wirklich wichtig ist, dass es richtig eingestellt ist, es stellt den maximalen Wert dar, der grafisch dargestellt werden kann. Ich verwende einen Temperatursensor, ich würde nicht erwarten, dass der Wert 50 ° C überschreitet, also stelle ich die Wert auf 50, wenn Sie einen analogen Roheingang grafisch darstellen möchten, können Sie den graphRange auf 1024 setzen, den maximalen Wert, den ein analoger Pin anzeigen kann.
  • markSize stellt die Größe des Punktes dar, der den Wert des Sensors im Diagramm kennzeichnet, der Wert stellt die Länge des Quadrats dar.

Und das ist alles, worüber Sie sich Gedanken machen müssen, die restlichen Variablen werden automatisch vom Arduino ermittelt.

Ändern die Wert

Es ist schön, die Temperatur in Ihrem Raum grafisch darzustellen, aber es ist noch besser, wenn Sie alle Sensordaten in der Grafik anzeigen könnten, und Sie können durch einfaches Bearbeiten einiger Codezeilen alle Daten von der Bodenfeuchtigkeit bis zum Licht grafisch darstellen Intensität. Hier ist eine Anleitung dazu.

Geht Weiter

Sie können mit dem Projekt weiter experimentieren und versuchen, die Konstanten originX, originY, sizeX und sizeY zu bearbeiten, um Ihrem Diagramm eine andere Größe und Position auf dem Bildschirm zu geben. Der Hauptskizze ist eine Header-Datei beigefügt, die die Farbcodes einiger Farben enthält. Versuchen Sie, die Farbe des Diagramms und der Balken zu ändern. Und das war's, Ihr personalisiertes Diagramm ist fertig.

Bibliotheken

  • Elegoo-Bibliotheken - Copyright (c) 2012 Adafruit Industries unter der BSD-Lizenz.
  • DHT - Autor Rob Tillaart Diese Bibliothek ist gemeinfrei

Hintergrund

Ich habe vor kurzem ein Projekt veröffentlicht, das 1, 2, 3 oder 4 Werte in einem Balkendiagramm grafisch darstellt. Ich habe mich entschieden, eine weitere Vorlage für die grafische Darstellung zu veröffentlichen. Es gibt keine Vorlagen für Balkendiagramme, die nicht überall Linien haben, die zu verwirren drohen, also habe ich beschlossen, die Berechnungen noch einmal durchzuführen und ein einfaches Projekt zu veröffentlichen, das es jedem ermöglicht, seine Daten live in einem Verlaufsdiagramm darzustellen.

Code

TFTHistoryGraph
Der ganze Kodex

Schaltpläne

schematisches_g5pey3GWqv.fzz

Herstellungsprozess

  1. Bitmap-Animation auf dem ILI9341 TFT-Touchscreen-Displayschild
  2. Arduino Spybot
  3. FlickMote
  4. Selbstgemachter Fernseher B-Gone
  5. Hauptuhr
  6. Finde mich
  7. Arduino-Power
  8. Tech-TicTacToe
  9. Anzeige eines Bildes auf einem LCD-TFT-Bildschirm mit Arduino UNO!
  10. Arduino-Vierbeiner