Status Display (I2C) über Arduino

Hallo,

ist es möglich IPS Variablen auf einem I2C Display über einen Arduino ausgeben?

Ich habe viele Arduino Projekte mit Display gesehen und frage mich ob ich mir nicht ein eigenes Status Dipslay basteln kann. Zunächst würde es mir ausreichen wenn ich Zahlen/Texte ausgeben kann und ggf. automatisch durch diverse Anzeigevariablen durchblättern kann oder automatisch durchlaufen lassen.

Hallo Kalli,
ich empfehle Dir das Display von Nextion.

Das Display wird mit einem kostenlosen Editorgefüttert und hat alles was Du brauchst um ein Statusdisplay und mehr in IP-Symcon zu werden. Wiki hier

Wer sie bestellen will, dem rate ich zu den Nextion Enhanced Modellen, die haben auch Ports mit I/O und PWM-Funktion.
Es gibt auch schon Fräsdateien für das 3,5" Model, sodass eine preisgünstige Abdeckung verfügbar ist (nicht das 3D-Model)

Man braucht keinen Ardunio um zum oder vom Display zu schreiben. Alles was man braucht ist eine ser. Schnittstelle im TTL-Format.

Wenn ich Zeit finde, gibt es auch eine kleine Platine mit Funkanbindung mit 433MHz in Schalterdosengröße.
Sicher kann man auch ein ESP8266 mit UDP-Anbindung proggen und nutzen

Ich hatte es auf dem Hamburg-Treffen gezeigt. Hier noch ein paar Bilder

Dieses Beispiel zeigtdie Ausgabe von Text-Variablen, das Magic-Script des IP-Symcon-LCD-Display geht auch damit, Grafiken sindnatürlich schicker, siehe Bild

Gruß Helmut

Ich hatte in Hamburg ja erwähnt, dass die Enhanced Variante des Touch TFT Port-Pin hat. Sogar zum Teil mit PWM-Funktion.

Mit einer Platine des WiFi up-WLAN-Modul, ohne ESP8266 dafür mit 433MHz Funk, habe ich diese Ports genutzt um das Steuer IC des Polumschalt-Relais auf der uP - Platine zu Triggern.

Triggern deshalb, weil ein Impuls genügt um die Spannung des Relais umzupolen und das Relais damit zuschalten.

Hintergrund: das Display hat als Hauptschirm den Taster. Mit einem Touch wird also immer das Licht im Raum eingeschaltet.
Jetzt also auch direkt in der Schalterdose, in der das uP-Modul mit Netz-Schaltwandler und Relais steckt und auch das Display und Funkadapter mit Spannung versorgt. Gemessen bei voller Hintergrundbeleuchtung 180mA, 2% gedimmtes Display um 50mA.

Drückt man auf die kleine Tastfläche unten, wird die Übersicht angefordert. In meinem Beispiel in HH war es EG, OG und Heizung.
Diese Übersichten enthalten auch Schaltmöglichkeiten durch Touchbutton und stellen mit Hilfe einiger PHP Zeilen den Zustand des Hauses dar, siehe Bilder vorheriger Post.
Also welche Temperaturen, welche Zustände der Aktoren, Fenster und Türen.

Das Bild sagt im Grunde alles aus, was ich für diese Ansteuerung des uP-Modul von Gernotim Nextion-Editor gemacht habe. Wer das File haben möchte, melde sich.

Auf der Agenda steht als nächstes der Umgang mit Uhr und Datum, die kann das Enhanced Modul Akku-gepuffert:
Es sollen die Müll-Abfuhr-Termine rechtzeitig ins Display eingeblendet werden.

Gruß Helmut

Hey Helmut, danke für die Antwort! Das schaut ja schon mal klasse aus! Wie würde ich eigentlich das Display mit den gewünschten Daten füllen? Fangen wir mal Simpel mit einem Raum an:

Schreibtischlampe, Deckenlicht, Status Computer An aus, Philips Hue leuchten.

Hier würde ich jeweils gerne die Möglichkeit haben den Status zu sehen. Bei den Hues würde auch an und aus zunächst reichen. Ein Traum wäre es noch die Gerätschaften via Display schalten zu können.

Die UP Variante ist genial, kann man sich diese selbst zusammenbasteln? Regelt diese von 230v auf 3,3 bzw 5v herunter? Sind die Komponenten zuverlässig? Immer wenn ich 230v lese denke ich an Hitze.

Grundsätzlich mußt Du für eine Statusrückmeldung was in das Display basteln, ich erzähle mal wie ich es gemacht habe:

Ein Grundrissplan auf das Display, keine Tastfunktion damit.

Dann dort wo eine Leuchte ist, zB im Wz ein Button, dessen Text ist eine „0“.

Parameter des Button ist beim loslassen des Button soll er den Text „WZ-Leuchte ;“ über die RS232 Schnittstelle ausgeben, das wird in den entsprechenden Feldern des Editors eingetragen.

Diesen Text mit dem Endezeichen, das ich mir dafür ausgesucht habe, werte ich mit einem Cutter in IP-Symcon aus um auf dem Laufenden zu sein.
Eine Schaltung über das Display und auch eine Webfrontschaltung, wie auch immer, muß ja synchron sein.

Wenn IP-Symcon den Zustand der Wz-Leuchte darstellen soll, dann braucht man nur die Seite wo die Leuchte abgebildet ist zu wissen und den Namen des Buttons angeben, zB page0.b1.txt=„1“ abgeschlossen mit 3 mal 0xFF in Hex.
zB. Parameter der Uhr aus IPS setzen:

 SPRT_SendText(34638 /*[HMI Serial Port]*/, "rtc0=".$datum_jahr."\xFF\xFF\xFF"); //Sendet das Jahr   

oder andere Parameter, zB Text als Raum-Temperaturwert ins Display oder das Display dimmern:

  SPRT_SendText(34638 /*[HMI Serial Port]*/, "EG.t0.txt=\"21,7 °C\xFF\xFF\xFF" );
SPRT_SendText(34638 /*[HMI Serial Port]*/, "EG.t1.txt=\"24,0 °C\xFF\xFF\xFF" );
SPRT_SendText(34638 /*[HMI Serial Port]*/, "dim=15\xFF\xFF\xFF"); //Sendet ein dim  

Viel kann man auch ohne Hardware mit dem Editor im Debug-Fenster machen. Mit Display ist es natürlich spannender :wink:

Zu der Hardware, die ich jetzt genommen habe, Vorteil ist, dass das Relais keinen Strom mehr zieht, wenn es einmal gepulst worden ist.
Das Display kann man ja runter dimmern, wenn es keine Aktion machen muß. Und man kann ja auch die nötigen 5Volt per KNX oder Telefonkabel mitführen, dann hast Du keinen Schaltwandler wovor Du Ängste hast.

Ich nahm das WiFi-uP-Modul nur weil ich es per Funk ohne Kabel nutzen wollte, muß man ja nicht, man kann :wink:

Wer mein Nextion-Projekt mit den Statusdisplay mal haben willst, einfach anmailen, ADR ist in meinem WWW ganz unten.

Hallo Helmut,

ich habe Schwierigkeiten Textfelder auf dem Display zu ändern.

Folgender Code bringt immer als Fehlerantwort 0x1A (Variable name invalid)!

CSCK_SendText(36105 /*[Client Socket]*/, "main.t0.txt=\"21,7 °C\xFF\xFF\xFF");

Ein Dim-Befehl oder das Textfeld unsichtbar machen funktioniert!

CSCK_SendText(36105 /*[Client Socket]*/, "dim=99\xFF\xFF\xFF"); //Sendet ein dim
CSCK_SendText(36105 /*[Client Socket]*/, "vis t1,0\xFF\xFF\xFF" );

Hast du eine Idee woran das liegen kann?

Gruß Tommy

Gibt es die Variable denn mit dem Namen, bist Du bei Befehlssendung auf der Seite main, ist sie auch genauso geschrieben, also main und t0 ?
Schrägstrich nach = richtig?

Die Variablennamen main und t0 gibt es! Schrägstrich (Backslash) ist aus deinem Beispiel!

Wie geschrieben das Unsichtbar machen mit der Variablen t0 oder t1 funktioniert!

CSCK_SendText(36105 /*[Client Socket]*/, "main.t1.txt="."\x22"."217.1°C"."\x22"."\xFF\xFF\xFF");

So funktioniert es oder so:

CSCK_SendText(36105 /*[Client Socket]*/, "main.t1.txt=\"217.1°C\"\xFF\xFF\xFF");

Der Text muß immer in Anführungszeichen stehen und die müssen mit gesendet werden!!

Gruss Tommy

Dann muß Du den Abschluß nach °C mit " und dann noch \xFF\xFF\xFF"); machen

 CSCK_SendText(36105 /*[Client Socket]*/, "main.t0.txt=\"21,7 °C \"\xFF\xFF\xFF");    

Probier mal, ich hole nachher mal mein Display und teste :wink:
Gruß Helmut

Danke für deine Mühe. Es funktioniert!

Jetzt brauche ich noch ein Tool mit dem ich einen virtuellen COM-Port ins Netzwerk umleiten kann. Dann kann ich das Display auch per WLAN Flashen. Eine Idee?

Ja, nimm einen Xport, kannst Du günstig von mir bekommen, wenn Du willst, habe noch genug.

Setze ich auch für das LAN auf 1Wire Modul (Link45 Modus) ein.

Da das Display auch mit 3,3Volt arbeiten kann, ist die Elektronik dazu relativ easy.

Gruß Helmut

Danke für das Angebot. XPORT habe ich selbst noch einige. Ich will das Display aber via WLAN einbinden. Dazu hängt das Display an einem ESP8266, so dass ich zur Konfigfuration eine Software auf dem PC brauche, die mir einen COM Port ins Lan routet und das völlig transparent!

Gruss Tommy

Ev. kannst Du einen TP-Link-WR702N als WLAN Brigde an den Xport anschliessen, so könnte es gehen.
GRuß Helmut

Nur noch zur Info!

Ich habe eine Software gefunden mit der ich die COM Schnittstelle des Nextion Editors transparent zum Display umleiten kann.

Serial to Ethernet Connector von ELTIMA. Damit kann ich jetzt das Display über WIFI direkt Flashen und via IPS ansteuern und auswerten.

Wie schon geschrieben hängt das NEXTION an einem ESP8266 wobei der ESP die Daten 1 zu 1 seriell weiterleitet. Das Programm im ESP ist ganz einfach. Auf dem ESP läuft NodeMCU!

Gruß Tommy

Ich könnte mir vorstellen, dass das ESP-Programm und die Schaltung für einige interessant wäre.

Verstehe ich richtig, über die Serielle <–>ESP<–> WLAN<–>IPS-Client ? Nicht über UDP ? Und der Preis für die Software ist tatsächlich so hoch?

Wäre es möglich Datenaustausch über ESP und UDP, nur Softwareaktualisierung über die Serielle?

Gruß Helmut

Hallo Helmut,

nach anfänglicher Euphorie kam die Ernüchterung.:frowning: Irgendwie kriege ich es nicht mehr hin Daten zum Display zu schicken. Wenn ich es nicht selbst gesehen hätte:confused:
Das ESP-Programm habe ich aus dem Netz gefunden!!!:wink:
Der Datenaustausch läuft über TCP sowohl Konfiguration Display als auch Kommunikation zu IPS! Zur Konfiguration muß halt nur irgendwie die Serielle Schnittstelle des PC eine virtuelle sein und ins Netz (IP+Port des ESP) geroutet werden.

Ich bleib aber dran. Und sobald es läuft stelle ich es gern zur Verfügung.

Die Schaltung ist auch recht einfach, sprich ich habe ein NodeMCU 0.9 und verbinde RX-TX und TX-RX, Masse und 5V mit dem Diaplay. Nachteil zum programmieren des ESP müssen die Datenleitungen getrennt werden. Aber wenn das Programm einmal im ESP ist muß man ja nichts mehr ändern. Noch ein Problem beim Starten und keiner Verbindung zu IPS (Socket geöffnet) werden ständig 0x00 0xFF 0xFF 0xFF vom Panel gesendet, da läuft irgendwie ein LOOP. Das muß auch noch untersucht werden.
Leider ist die Zeit im Moment knapp vor dem Urlaub. Mal sehen was ich morgen noch rausfinde.

Gruß Tommy

Hört sich trotzdem gut an.

Dass man zum Einspielen der Soft an die serielle Schnittstelle ran muß, kein Thema. Link genügt.

Hauptsache man kann von IPS zum Display per IP-ADR Daten empfangen und senden.

Dann kann man auch das ESP-Modul auf meinem uP-WLAN-Modul nutzen, welches im Moment nur die Stromversorgung macht :wink:

Gruß Helmut

Hallo Helmut und alle anderen die es interessiert ,

so nach meinem Urlaub habe ich etwas Zeit gehabt mein Testdisplay mit IPS zu verbinden. Man kann Daten zum Display senden sowie vom Display empfangen. Das ganze geht via WLan zum ESP8266 der die Daten zum Display seriell umsetzt. Das Display kann man darüber auch konfigurieren, somit können Änderungen am Display on Air durchgeführt werden!

Zur Zeit erstelle ich eine Dokumentation dafür. Falls Interesse besteht kann ich diese gern zur Verfügung stellen, bzw. stelle sie hier Online.

MfG Tommy

Hallo Tommy,

ich bastel gerade an einem Modul, dass auch die Unterstützung im IPS für ein an einem entfernten Raspberry Pi hängenden Display ermöglich soll.
Dazu verwende ich auf dem entfernten Raspberry Pi PIGPIO.
Mein Modul ermöglicht im Moment folgendes:

  • Input (digital, mit Notification)
  • Output (digital)
  • Output (analog/Dimmer)
  • Output RGB
  • Sonarsensor HC SR04
  • BH1750 (I²C Lichtsensor)
  • BME280 (I²C Luftdruck, Luftfeuchtigkeit und Temperatur)
  • PCF8591 (I²C 4-fach A/D-Wandler und ein D/A-Wandler)
  • PCF8574 (I²C 8-fach I/O digital) - aktuell in Arbeit

und soll auch eine Basissteuerung aus IPS für das Display ermöglichen.
Leider scheitere ich schon beim Senden von einfachen Befehlen (z.B. „dim=50\xFF\xFF\xFF“ - es erfolgt keine Reaktion…

Von daher wäre Dein Input bzw. das Teilen Deiner Erkenntnisse und Erfahrungen schon interessant…

Joachim