INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Zeit vom Nextion Enhanced mit Arduino auslesen
05.01.2019, 20:03
Beitrag #9
RE: Zeit vom Nextion Enhanced mit Arduino auslesen
Im Code steht nicht viel mehr. Außer der Ausgabe von Jahr zum seriellen Monitor und einem 1000er Delay.
Im Monitor erscheint meist 255.
Bin gerade nicht mehr am PC.
Das Nextion zeigt die aktuelle Uhrzeit und Datum mit Wochentag an. Ist auch alles über das Display einstellbar.

Gruß Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2019, 20:14
Beitrag #10
RE: Zeit vom Nextion Enhanced mit Arduino auslesen
Ohne weitere Information (besonders zur Hex-Folge beim Empfang) ist es unmöglich zu helfen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2019, 08:59
Beitrag #11
RE: Zeit vom Nextion Enhanced mit Arduino auslesen
Hier mal mein Code:
Code:
int val=0;
int lichtan=0;
int jahr=0;

boolean newData = false;

void endeKennung() //wird zum abschließen eines Sendebefehls ans Nextion benötigt
{
  Serial1.write(0xff);
  Serial1.write(0xff);
  Serial1.write(0xff);
}

void setup() {
  Serial1.begin(9600);
  Serial.begin(9600);
}

void loop() {

  if (lichtan==0)
      {
      lichtan=1;
      }
      else lichtan=0;
  
  
  Serial1.print("get rtc0"); // Jahr anfordern
   endeKennung();
    
    if (Serial1.available() &&  newData == false)
      {
         jahr = Serial1.read();
         newData = true;
      }

  if (newData == true)
      {
      Serial.print(" I received:");
      Serial.print(jahr,HEX);
      Serial.println();
      newData = false;
      }
    
  val=(millis() / 1000);
  Serial.print("Licht an: ");
  Serial.print(lichtan);
  Serial.println();
  
  Serial1.print("temp.val="); //Legt fest wo hin geschrieben werden soll. In dem Fall an Nummernfeld temp.val am Nextion
  Serial1.print(val); // Wert aus val wird übertragen an temp.val
  endeKennung();
  Serial1.print("lichtaktiv.val="); //Legt fest wo hin geschrieben werden soll. In dem Fall an Checkbox lichtaktiv.val am Nextion
  Serial1.print(lichtan); // Wert aus val wird übertragen an lichtaktiv.val
  endeKennung();

  delay(1000);

Als Ausgabe am SeriellenMonitor kommt:
Code:
Licht an: 1
I received:71
Licht an: 0
I received:E3
Licht an: 1
I received:7
Licht an: 0
I received:0
Licht an: 1
I received:0
Licht an: 0
I received:FF
Licht an: 1
I received:FF
Licht an: 0
I received:FF
Licht an: 1
I received:71
Licht an: 0
I received:E3
Licht an: 1
I received:7

Das senden zum Display funktioniert.

Gruß Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2019, 11:48
Beitrag #12
RE: Zeit vom Nextion Enhanced mit Arduino auslesen
Also kommt (hex): 71 E3 07 00 00 FF FF FF. Das sieht doch gut aus.

0x71 = Kennung für numerische Daten
0xFF 0xFF 0xFF = Endekennung
E3 = 227 Dez
227+7*256 = 2019 <== Stimmt doch
Oder wenn Du die Zahl von hinten in 4 Byte einliest und diese als unsigned long ausliest:
0x000007E3 = 2019 Dez.

Die Rechenvorschrift hatte ich Dir bereits in #6 gepostet. Es ist sinnvoll, sich die Antworten, die Du bekommst, auch anzuschauen. Wenn Du konkrete Einzelheiten nicht verstehst, kannst Du konkret fragen.

Auf diesem Weg kannst Du alle Zahlen der rtc im Nextion auslesen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2019, 12:37 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2019 12:46 von MarkoM.)
Beitrag #13
RE: Zeit vom Nextion Enhanced mit Arduino auslesen
OK, jetzt weiß ich wie sich das zusammen setzt.
Wie schaffe ich es nur die 4 Blöcke zwischen 71 und FF FF FF auszulesen und dann daraus die Zahl zu ermitteln. OK irgendwie mit unsigned long aber wie?
Ich habe mir wohl wirklich zu viel zugetraut.

Für mich ist das totales Neuland. Sorry

Gruß Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2019, 13:52
Beitrag #14
RE: Zeit vom Nextion Enhanced mit Arduino auslesen
Ungetestet (ich habe gerade kein Nextion verfügbar):
Code:
union  puffer{
    long l;
    byte arr[4];
};

void endeKennung() //wird zum abschließen eines Sendebefehls ans Nextion benötigt
{
  Serial1.write(0xff);
  Serial1.write(0xff);
  Serial1.write(0xff);
}

// return -1 wenn nichts da, sonst die Zahl
long getZahl() {
  static puffer p;
  static byte idx;
  static byte anzFF;
  static bool inLesen = false;
  byte b;
  if (Serial1.available()) {
    b = Serial1.read();
    if (!inLesen) {
        if (b == 0x71) { // Anfang gefunden
        inLesen = true;
        idx = 3;
        anzFF = 0;
        return -1L;
      }
    }  
    else {
      if (b == 0xFF) { // Endeanteil
        anzFF++;
        if (anzFF == 3) { // fertig
          inLesen = false;
          return p.l;
        }  
        else return -1L; // in Endebearbeitung
      }
      else {
        p.arr[idx--] = b; // Zahlanteil schreiben
        return -1L;
      }
    }  
  }
  else return -1L;  // nichts da
}

void setup() {
  // ...
  Serial.begin(9600);
  Serial1.begin(9600);
  Serial1.print("get rtc0"); // Jahr anfordern
  endeKennung();
}

void loop() {
long zahl;
  
  zahl = getZahl();
  if (zahl != -1L) Serial.println(zahl);
}

So ungefähr sollte es funktionieren. Die 0x71 erkennen, dort geht es los. Die Zahl ist immer 4 Byte lang, danach kommt 3 mal 0xFF.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2019, 14:16
Beitrag #15
RE: Zeit vom Nextion Enhanced mit Arduino auslesen
Danke Tommy für Deine Bemühungen.
Da kommt jetzt leider -486080512 bei raus.

wenn ich Serial1.print("get rtc0") mit in loop packe kommen sogar unterschiedliche Werte dabei raus.

Gruß Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2019, 15:03
Beitrag #16
RE: Zeit vom Nextion Enhanced mit Arduino auslesen
Ok, denkfehler von mir. Wenn man nicht testen kann, macht man halt schnell Fehler.
Code:
// return -1 wenn nichts da, sonst die Zahl
long getZahl() {
  static puffer p;
  static byte idx;
  static byte anzFF;
  static bool inLesen = false;
  byte b;
  if (Serial1.available()) {
    b = Serial1.read();
    if (!inLesen) {
        if (b == 0x71) { // Anfang gefunden
        inLesen = true;
        idx = 0;
        anzFF = 0;
        return -1L;
      }
    }  
    else {
      if (b == 0xFF) { // Endeanteil
        anzFF++;
        if (anzFF == 3) { // fertig
          inLesen = false;
          return p.l;
        }  
        else return -1L; // in Endebearbeitung
      }
      else {
        p.arr[idx++] = b; // Zahlanteil schreiben
        return -1L;
      }
    }  
  }
  else return -1L;  // nichts da
}
Die Bytes müssen in der anderen Reihenfolge rein.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Daten auf Nextion abfragen Lampe 24 999 30.04.2020 15:37
Letzter Beitrag: hotsystems
Sad Frage zu Daten die vom Nextion kommen Lampe 2 259 26.04.2020 12:53
Letzter Beitrag: Lampe
  Motordaten von Zusatzsensoren per Arduino auslesen PingPong92 14 2.781 19.04.2020 09:28
Letzter Beitrag: Tommy56
  Teilfunktion nur 1x nutzen, für begrenzte Zeit senseman 9 490 09.04.2020 10:31
Letzter Beitrag: Tommy56
  Temperatursensor DS18B20 direkt auslesen Igom 9 593 26.03.2020 19:21
Letzter Beitrag: hotsystems
  Schalter u. Slider von Nextion nach Arduino abfragen, Lösungsansatz gesucht alpenpower 2 510 09.03.2020 07:59
Letzter Beitrag: alpenpower
  Nextion Fehler bei Button Abfrage wenn ich zusätzlich Text sende MarkZero0815 24 1.703 28.01.2020 08:23
Letzter Beitrag: hotsystems
  UNO mit Nextion und ENC28J60 Ethernet leonreucher 3 408 04.01.2020 15:11
Letzter Beitrag: Tommy56
  Loop-Teil mit Interrupt für bestimmte Zeit stoppen Alter Fritz 11 1.145 23.12.2019 23:10
Letzter Beitrag: hotsystems
  DS3234 Werte auf Nextion Kurt 10 989 01.12.2019 16:27
Letzter Beitrag: Kurt

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste