Temperatursensor, Arduino, Messumformer

Moin, anbei habe ich ein Foto vom Temperatursensor und Messumformer hinzugefügt. Ich bin noch neu in dem gebiet und habe im Netz nichts passendes gefunden, hoffe ihr könnt mir helfen.

Als Touch Display habe ich einen Nextion NX8048K070-011C und einen Controllino MINI. Nun frage ich mich wie ich den Sensor auswerten kann und diesen Wert anschließend auf meinen Display genau in der Seite und Zeile wieder spiegelt.

Mit freundlichen Grüßen
Tim

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

1 Like

Naja....grundsätzlich so, indem du für beide (Controllino und Nextion) die passenden Programme schreibst. :wink:
Zeig uns doch mal, was du bisher programmiert hast. Bitte in Code-Tags setzen.
In der IDE mit rechter Maustaste "Für Forum kopieren" und hier einfügen.
Und poste Links von deinen verwendeten Teilen.

1 Like

Temperatursensor https://www.amazon.de/Sharplace-Thermocouple-Sensor-Thermoelement-Temperaturregler-wie-bild/dp/B00FVRJ9PE/ref=pd_sbs_1/262-6871152-4925535?pd_rd_w=Z0T4N&pf_rd_p=dd7cdb0d-7d18-43ba-a06d-a9f4cc6bae51&pf_rd_r=4KDEBV5Q2TVZHXQ4FTRP&pd_rd_r=fa746b60-517f-4513-8d9e-cd2d17e26570&pd_rd_wg=nnyqK&pd_rd_i=B00FVRJ9PE&psc=1

Messumformer https://www.amazon.de/Fayme-Temperatur-Messumformer-50-100-Ausgang/dp/B09B42C4T7/ref=sr_1_5?keywords=PT100+Temperature+Sensor+Transmitter&qid=1643795381&sr=8-5

Controllino %product-title% kaufen

Nextion Display https://www.amazon.de/dp/B091YCD9C1/ref=cm_sw_r_apan_glt_i_5J0317BXHCQMHMKNXRQZ?_encoding=UTF8&psc=1

Dies habe ich im Netz gefunden, da war der Sensor mit Messumformer nur am LCD Display angeschlossen. Beim Programm vom Nextion habe ich ertsmal nur ein Textfeld hinzugefügt.

#include "LiquidCrystal_I2C.h"
#include <OneWire.h>
#include <DallasTemperature.h>

LiquidCrystal_I2C lcd(0x27,20,4); 

#define ONE_WIRE_BUS 2 //Data vom Temp.Sensor
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup() { 
lcd.init();
lcd.backlight();
sensors.begin();
}

void loop() {
lcd.setCursor(0,0);
lcd.print("Temperatur messen");
lcd.setCursor(0,1);
lcd.print("mit dem Bastelbruder");

sensors.requestTemperatures();
lcd.setCursor(0,2);
lcd.print("Temperatur: ");
lcd.print(sensors.getTempCByIndex(0));
lcd.print("\337C");
delay(1000);
}

Dein Nextion kannst du aber nicht mit den von dir verwendeten Anweisungen beschreiben. Das musst du per serieller Schnittstelle machen.
Hier wird es gut beschrieben.
Wenn du hier im Forum nach Nextion Display suchst, findest du auch viele Beispiele.

Also kommunizieren kann ich auch mit dem Display und habe schon ein Programm geschrieben für beide mit Buttons. Da erkennt er aber zum Beispiel nicht immer im Seriellen Monitor jeweilige button bis ich ihn wieder neu Öffne.

#include <SoftwareSerial.h>

SoftwareSerial nextion(6, 5); // RX, TX

String daten_display = "";


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

void loop() {
  if (nextion.available() > 0)
{
  daten_display += char (nextion.read());
}
if (daten_display == "Testvorgang") {
  Serial.println("Testvorgang");
  daten_display="";
}
if (daten_display == "Spülvorgang") {
  Serial.println("Spülvorgang");
  daten_display="";
}
if (daten_display == "10 min") {
  Serial.println("10 min");
  daten_display="";
}
if (daten_display == "48 Std") {
  Serial.println("48 Std");
  daten_display="";
}
if (daten_display == "72 Std") {
  Serial.println("72 Std");
  daten_display="";
}
if (daten_display == "240 Std") {
  Serial.println("240 Std");
  daten_display="";
}
if (daten_display == "480 Std") {
  Serial.println("480 Std");
  daten_display="";
}
if (daten_display == "720 Std") {
  Serial.println("720 Std");
  daten_display="";
}
if (daten_display == "b0") {
  Serial.println("b0");
  daten_display="";
}
if (daten_display == "b1") {
  Serial.println("b1");
  daten_display="";
}
if (daten_display == "b2") {
  Serial.println("b2");
  daten_display="";
}
if (daten_display == "b3") {
  Serial.println("b3");
  daten_display="";
}
if (daten_display == "b4") {
  Serial.println("b4");
  daten_display="";
}  
if (daten_display == "b5") {
  Serial.println("b5");
  daten_display="";
}
if (daten_display == "b6") {
  Serial.println("b6");
  daten_display="";
}
}

Bist Du sicher, diese Elemente passen zueinander?

  • K-Typ Thermoelement
  • PT100 Temperatur Messumformer Ausgang 0-10V
  • OneWire oneWire(ONE_WIRE_BUS);

Kannst Du mit dem seriellen Monitor der IDE eine plausible Temperatur anzeigen?

Also es ist nfür unser Abschlussprojekt und so hatten wir dies vorher nie aber müssen die halt am laufen bekommen. Ja der Nextion Display müsste es digital anzeigen können.

Was ist denn dieses OneWire? :slight_smile:

Das ist ein Busprotokoll für Sensoren, die alle an einer Leitung hängen, was namensgebend ist.

Paßt nicht zu "Ausgang 0-10V".

Ja, aber es gibt auch noch den seriellen Monitor der IDE zur Fehlersuche, den könntest Du verwenden.

Schau, ob dir dies hier weiter hilft.
Und hier noch ein paar Beispiele zum Einlesen einer seriellen Schnittstelle.

Also die Nachrichten die ein Nextion-Display sendet wenn man die Checkbox
Send component-ID angehakt ist gefällt mir persönlich gar nicht weil da ein byte mit dem Wert Null enthalten ist.
Man kann aber seine ganz eigenen "Nachrichten" recht einfach mit einem print-Befehl im Nextion-Display programmieren.

Da kann man dann das als Nachrícht zusammenstellen was einem persönlich gefällt.

vgs

Der Temperatursensor paßt nicht zum Meßumformer.
Grüße Uwe

Das ist m.E. Geschmackssache. Die Daten werden binär übertragen - beim Touch Event (0x65) halt die Seitennummer (page), die Component-ID und der Event selbst (1 Press, 0 Release). Die Ende-Kennung sind die "berühmten" 0xFF 0xFF 0xFF. Nachteil ist, dass man irgendwie von den IDs abhängig ist.

Ein Zwischending ist "get" (Operational Commands) - das kann auch Texte senden, die Antwort startet immer mit 0x70 und die Endekennung gibt es auch.

Das mit der 0 kann Dir übrigens auch bei prints passieren, wenn Du Zahlen schickst.

Habe mit allen drei Varianten schon rumgespielt und bin beim get hängengeblieben.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.