Nextion Display - Teil 1 - Grundlagen und Workflow

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

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

Video

Arduino-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


Newsletter

Trage Dich jetzt in den Newsletter ein und genieße dadurch viele Vorteile:

  • 5€-Gutschein als Dankeschön
  • Zugang zu exklusiven Inhalten
  • Angebote für Produkte

* Durch Angabe meiner E-Mail-Adresse erkläre ich mich damit einverstanden, dass mir regelmäßig Informationen und Produktempfehlungen aus dem Fachgebiet Smart Home zugesendet werden. Mit dem Eintrag akzeptieren Sie unsere Datenschutzbestimmungen. Meine Einwilligung kann ich jederzeit widerrufen.

Auf YouTube und hier im Blog gibt es bereits unzählige kostenlose Videos, Informationen und Tutorials. Wenn Dir das noch nicht reicht, ist ein Training genau das richtige für Dich! Die folgenden Trainings haben den Vorteil, dass immer von Anfang an gestartet wird und Du ohne Vorwissen teilnehmen kannst.