Nextion Display - Teil 2 - Ein eigenes Design erstellen und testen

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

Nextion Display - Teil 2 - Ein eigenes Design erstellen und testen
Nextion Display - Teil 2 - Ein eigenes Design erstellen und testen
  • Matthias Kleine
  • 31.10.2017
  • Hardware
  • Nextion
  • Darstellung

Nachdem der erste Teil unfassbar gut ankam, wollte ich so schnell wie möglich weiter machen. Also gibt es schon heute das nächste Video zum Thema Nextion Display. In diesem Teil erstellen wir ein eigenes Design und arbeiten uns etwas tiefer in die Möglichkeiten des Displays ein. Am Ende des Videos steht auf jeden Fall die Grundlage für viele weitere Möglichkeiten.

Was wird benötigt?

  • Eine Nextion-Display (in meinem Fall das NX3224T024)
  • Ein Wemos D1 Mini
  • Eine Micro-SD-Karte
  • Einen laufenden MQTT-Server
  • Ein Windows PC oder eine virtuelle Maschine mit Windows

NEXTION 2.4 Bildschirm HMI LCD Display Modul 2,4" Zoll TFT Touch Panel 320x240 NX3224T024 für Arduino Raspberry Pi DIYmaker **

AZDelivery 3 x D1 Mini NodeMcu mit ESP8266-12F WLAN Module CH340G Lua kompatibel mit Arduino inklusive E-Book! **

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

Nextion Intelligent 4,3 Zoll Display NX4827P043-011C Kapazitives Touchscreen HMI LCD Modul 480x272 Unterstützt Audio Video (NX4827P043-011C) **

Video

Hausbau-Kurs

Download

Hier gibt es die PSD, die Bilder und auch die HMI-Datei.

Befehle

Eigentlich ist das Script zu 90 Prozent identisch mit dem aus dem ersten Video. Es wurden nur einige Hilfsfunktionen eingebaut um die Anzeigen etwas einfach ansteuern zu können. Wie gesagt sind wir hier immernoch auf einem Prototyp-Level.

Die WLAN-Verbindung und die MQTT-Verbindung werden für diesen Schritt eigentlich gar nicht benötigt, sind aber der Vollständigkeit halber noch enthalten, da wir diese ja in jedem Fall in den nächsten Videos brauchen werden!

#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);

  for (int i = 0; i <= 360; i++) {
    sendToDisplay(String("zLeft.val=") + String(calculateGaugeValue(i), DEC));
    sendToDisplay(String("t2.txt=\"") + String(i, DEC) + String("\""));
    delay(50);
  }
}

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);
}

int calculateGaugeValue(int val) {
  if (val < 45) {
    return val + 315;
  } else {
    return val - 45;
  }
}

void sendToDisplay(String command) {
  SoftSerial.print(command);
  SoftSerial.write(0xff);
  SoftSerial.write(0xff);
  SoftSerial.write(0xff);
}

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);
    }
  }
}
Du willst mehr?

Smart-Home-Trainings von A-Z

Steig noch tiefer in die Themen ein und meistere Deine Projekte! Über 10.000 Teilnehmer konnten sich schon von der Qualität der Online-Kurse überzeugen.

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