Nextion Display - Teil 1 - Grundlagen und Workflow

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

Nextion Display - Teil 1 - Grundlagen und Workflow
Nextion Display - Teil 1 - Grundlagen und Workflow
  • Matthias Kleine
  • 29.10.2017
  • Hardware
  • Grundlagen

Schon öfter wurde nun ich nun gefragt, ob ich mal zeigen könnte wie die Nextion Displays funktionieren und was man damit alles anstellen kann. Besonder schön ist eigentlich, dass man für die Gestaltung der Oberfläche mit Photoshop (oder einem anderen Bildbearbeitungsprogramm)und der IDE von Nextion schon sehr weit kommt und ganz einfach anschauliche Oberflächen zusammenbauen kann. Im ersten Teil gehe ich genauer auf das Display ein, wie man die Logiken auf das Display bekommt und diese dann über die serielle Schnittstelle verändern kann. Alles in allem gar nicht so viel aufwändiger als irgendwelche 7-Segment-Anzeigen, aber dafür extrem viel schöner!

Was wird benötigt?

  • Eine Nextion-Display
  • Ein Wemos D1 Mini
  • Eine Micro-SD-Karte
  • Einen laufenden MQTT-Server
  • Ein Windows PC oder eine virtuelle Maschine mit Windows

MakerHawk Nextion NX3224K024 Touch Display Enhanced Versionen 2.4 Zoll HMI LCD **

MakerHawk Nextion NX3224K024 Touch Display Enhanced Versionen 2.4 Zoll HMI LCD

SanDisk Ultra 32GB microSDHC Speicherkarte + Adapter bis zu 98 MB/Sek., Class 10, U1, A1, FFP **

SanDisk Ultra 32GB microSDHC Speicherkarte + Adapter bis zu 98 MB/Sek., Class 10, U1, A1, FFP

MakerHawk Nextion NX4024K032 Touch Display erweiterte Versionen 3.2 Zoll HMI LCD **

MakerHawk Nextion NX4024K032 Touch Display erweiterte Versionen 3.2 Zoll HMI LCD

Video

Hausbau-Kurs

Befehle

Hier mein Arduino-Script zum weiter ausbauen. Genutzt wird aktuell SoftSerial, da der Wemos nur eine einzelne Schnittstelle hat, welche bereits über USB genutzt wird. Mit ein paar Handgriffen kann man wohl auf die internerne UART umschalten - dazu aber wahrscheinlich mehr im nächsten Video.

Wenn man nun eine Nachricht an “inTopic” per MQTT sendet, wird diese im Textfeld über dem Button dargestellt.

#define SoftSerial mySerial

#include <SPI.h>
#include <SoftwareSerial.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <PubSubClient.h>
//#include <Nextion.h>

const char* mqtt_server = "192.168.178.11";
const char* ssid = "PlitschPlatsch";
const char* password = "PASSWORD";

WiFiClient net;
PubSubClient client(net);

#define CO2_TX D1
#define CO2_RX D2

SoftwareSerial SoftSerial(CO2_RX, CO2_TX); // RX, TX

void setup() {
  pinMode(BUILTIN_LED, OUTPUT);

  Serial.begin(9600);
  SoftSerial.begin(9600);

  delay(500);

  connect();
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();

  delay(500);
}

void connect() {
  Serial.println("Connecting Wifi");

  WiFi.mode(WIFI_AP_STA);
  WiFi.begin(ssid, password);

  // WiFi
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    WiFi.begin(ssid, password);
  }

  Serial.println("Connecting MQTT");

  // MQTT
  client.setServer(mqtt_server, 1883);
  client.setCallback(callback);
}

void callback(char* topic, byte* payload, unsigned int length) {
  SoftSerial.print("t0.txt=\"");

  for (int i = 0; i < length; i++) {
    Serial.print((char)payload[i]);
    SoftSerial.print((char)payload[i]);
  }
  Serial.println();

  SoftSerial.print("\"");
  SoftSerial.write(0xff);
  SoftSerial.write(0xff);
  SoftSerial.write(0xff);
}

void reconnect() {
  while (!client.connected()) {
    String clientId = "WemosNextion-";
    clientId += String(random(0xffff), HEX);

    if (client.connect(clientId.c_str())) {
      client.subscribe("inTopic");
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");

      delay(5000);
    }
  }
}

https://nextion.itead.cc/resources/download/nextion-editor/ https://github.com/itead/ITEADLIB_Arduino_Nextion

Ich will mehr

Smart-Home-Training von A-Z

Steig noch tiefer in die Themen ein und meistere Deine Projekte!

ioBroker-Master-Kurs

ioBroker-Master-Kurs

Mehr Infos
Hausbau-Kurs

Hausbau mit KNX

Mehr Infos
Lox-Kurs

Lox-Kurs

Mehr Infos
NodeRed-Kurs

NodeRed-Kurs

Mehr Infos