ich bin neu hier im Forum und auch was den Arduino angeht.
Ich besitze einen Arduino Mega 2560 CLON, habe vor damit Temperaturen zu mesen mit wasserdichten DS18B20 Sensoren.
Mit diesem Code hier habe ich es nun schon soweit einmal geschaftt das mir über den seriellen Monitor die erfassten Temperaturen angezeigt werden.
#include <OneWire.h> // http://www.arduino.cc/playground/Learning/OneWire
#include <DallasTemperature.h> // http://milesburton.com/index.php?title=Dallas_Temperature_Control_Library
#define ONE_WIRE_BUS 52
#define TEMPERATURE_PRECISION 12
OneWire oneWire(ONE_WIRE_BUS); // Einrichten des OneWire Bus um die Daten der Temperaturfühler abzurufen
DallasTemperature sensors(&oneWire); // Bindung der Sensoren an den OneWire Bus
DeviceAddress tempDeviceAddress; // Verzeichniss zum Speichern von Sensor Adressen
int numberOfDevices; // Anzahl der gefundenen Sensoren
void setup(void)
{
Serial.begin(9600);
Serial.println("Abfrage mehrerer Dallas Temperatur Sensoren");
Serial.println("-------------------------------------------");
// Suche der Sensoren
Serial.println("Suche Temperatur Sensoren...");
sensors.begin();
numberOfDevices = sensors.getDeviceCount();
Serial.print("Habe ");
Serial.print(numberOfDevices, DEC);
Serial.println(" Sensoren gefunden.");
// Setzen der Genauigkeit
for(int i=0 ;i<numberOfDevices; i++) {
if(sensors.getAddress(tempDeviceAddress, i)) {
sensors.setResolution(tempDeviceAddress, TEMPERATURE_PRECISION);
Serial.print("Sensor ");
Serial.print(i);
Serial.print(" hat eine genauigkeit von ");
Serial.println(sensors.getResolution(tempDeviceAddress), DEC);
}
}
Serial.println("");
}
void loop(void)
{
// Aufruf der Funktion sensors.requestTemperatures()
// Dadurch werden alle werte abgefragt.
Serial.print("Abfrage der Temperatur... ");
sensors.requestTemperatures();
Serial.println("DONE");
// Ausgabe der Daten für jeden Sensor
for(int i=0 ;i<numberOfDevices; i++) {
float tempC = sensors.getTempCByIndex(i);
Serial.print("Sensor ");
Serial.print(i, DEC);
Serial.print(" hat grad Celsius: ");
Serial.println(tempC);
}
delay(20000);
}
Erst wollte ich die Daten ja ein zweizeiligen LCD Displays ausgeben lassen, aber nachdem ich nun Videos zu Nextion Display sah musste davon auch eins zu mir. Ich habe nun ein 3,2" der verbesserten Variante nach Hause bekommen. Ich habe soweit auch schon mit dem Netion Editor herumgespielt und mir auch diese Tutorials angesehen. Nur stellt sich mir immer noch die Frage wie ich die erfassten Temperaturen nun vom Arduino zum Nextion an eine richtige Stelle bekomme so das dann auch Temp1 auch imm Bereicht des Temp1 auf dem Display angezeigt wird? Welches Tool muss ich den im Nextion Editor nehmen um mir z.B "28°C" dann auf dem Display anzeigen zu lassen?
Könnt ihr mir da helfen?
Achso den Code oben habe ich glaube ich auch nicht richtig so wie ihr das macht angezeigt bekommen. Wie muss ich das dann in Zukunft machen?
Sportage:
Ich habe soweit auch schon mit dem Netion Editor herumgespielt und mir auch diese Tutorials angesehen.
Herumspielen und und die Tutorials "anschauen" reicht in dem Fall def. nicht. Sondern nur jeden Satz, jedes Wort lesen, einprägen, lernen und ausfühlich austesten, kann da helfen. So ein bischen wischiwaschi ansehen kann man sich da sparen, das ist völlig sinnlos. Aber die Tutorials die du hier aufzeigst sind auf jeden Fall schon mal richtig. Wenn du die drauf hast, kannst du schon mal das, was du hier angefragt hast. Aber es bleiben noch genug Fragen offen. Du hast dir mit dem Nextion Display keine Anfängerbaustelle ausgesucht. Aber es ist ein tolles Display. Wenn man es dann mal kann.
also ich möchte z.B. die gemessene Temperatur von 22,06°C vom Sensor 2 auf das Nextion übertragen. Aber irgendwie will mir das nicht in den Kopf wie. Da muss doch auch die Temperatur von dem dementprechendem Sensor auch an der richtigen Anzeigemöglichkeit beim Nextion gesendet werden.
Denn was würde mir das bringen wenn ich die Temperatur vom Sensor 1 dann z. B. am Nextion am Platz des Sensors 3 angezeigt wird. Das weiß ich noch nicht wie ich das zu machen habe auch wenn ich die sagenhafte Tutorialseite böcker mir schon zu Gemüte geführt habe und das auch nicht nur einmal.
KennT ihr das denn nicht auch ihr lest und lest was aber trotzdem will das nicht rein und klappen
Sportage:
also ich möchte z.B. die gemessene Temperatur von 22,06°C vom Sensor 2 auf das Nextion übertragen. Aber irgendwie will mir das nicht in den Kopf wie. Da muss doch auch die Temperatur von dem dementprechendem Sensor auch an der richtigen Anzeigemöglichkeit beim Nextion gesendet werden.
Denn was würde mir das bringen wenn ich die Temperatur vom Sensor 1 dann z. B. am Nextion am Platz des Sensors 3 angezeigt wird. Das weiß ich noch nicht wie ich das zu machen habe auch wenn ich die sagenhafte Tutorialseite böcker mir schon zu Gemüte geführt habe und das auch nicht nur einmal.
Jedes Feld im Nextion hat einen Namen, den du selbst vergeben hast. Diesen musst du per serieller Anweisung ansprechen und deinen Wert draufschreiben.
Hier kannst du auch noch nachlesen: Kommandos zum Nextion senden - Böcker Systemelektronik
Und da gibt es noch mehr Beiträge zum Nextion.
Da solltest du auch in Google noch weiter suchen.
Aber wie dir schon geschrieben wurde, das Nextion ist kein Teil für Anfänger. Ohne jegliche Erfahrung musst du einfach nur lernen....lesen und lernen.
Franz54:
Das steht z.B. hier. Das ist im Tutorial der Bereich "Kommandos zum Nextion senden".
Und das hier:
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Lässt sich sehr schön vereinfachen, indem man es so handhabt:
Delarationen:
byte NexT[3] = {255, 255, 255};
Ausführen:
Serial2.write(NexT, 3);
Du solltest unbedingt beischreiben, dass dein Beispiel auf eine Programmierung ohne die Nextion-Library abzieht.
Mit der Library sieht das schonmal ganz anders aus
Und der TO sollte sich unbedingt entscheiden, ob er die Programierung mit oder ohne diese Library durchführen möchte.
Auch sollte er sich zuvor über Vor- und Nachteile der Library erkundigen.
soll ja ohne auch funktionieren und das sogar besser wenn ich das richtig nachgelesen habe. Ich danke euch für eure Hinweise auch mit der Verlinkung der Böckerseite. Aber wie ich schon schrieb irgendwie will es nicht ins Hirn rein und ich bekomme es nicht hin, so eine Scheiße.
OK konnte ja auch schon nachlesen das ich wenn ich es mit Komma darstellen möchte die Temperatur, dann kein Numbersfeld nehmen sollte sondern ein Textfeld. Soweit bin ich auch schon einmal und ich hoffe damit auch richtig?
Sorry das ich halt noch einmal nachfrage aber ich bin halt am verzweifeln, wie bekomme ich das hin das mir die Temperatur vom Sensor 1 z. B. auch in dem Textfeld t0 im Nextion angezeigt wird?
Sportage:
.....
Sorry das ich halt noch einmal nachfrage aber ich bin halt am verzweifeln, wie bekomme ich das hin das mir die Temperatur vom Sensor 1 z. B. auch in dem Textfeld t0 im Nextion angezeigt wird?
Und du musst zur Übergabe der Daten gemäß Beispiel den kompletten Pfad angeben, also auch die Displayseite muss mit angegeben werden.
HotSystems:
Du solltest unbedingt beischreiben, dass dein Beispiel auf eine Programmierung ohne die Nextion-Library abzieht.
Mit der Library sieht das schonmal ganz anders aus
Naja, das wird ja im Tutorial am Anfang auch gleich klar geschrieben. Ich fürchte hier im Forum werden keine Tipps für die Arbeit mit Nextion Library geben.
Hier noch ein Tipp ohne Library zum Senden an das Display !
Und das könnte so im Sketch aussehen:
Serial2.print(F("page0.datum.txt=\""));
Serial2.print(F("dein Text")); // nur wenn nötig
Serial2.print(deine_Variable); // Messdaten
Serial2.write('"'); // Nextion Terminator
Serial2.write(NexT, 3); // Nextion Terminator, siehe Post #5
Serial2 = deine serielle Verbindung
page0 = Name der Displayseite
datum = Name des Textfeldes auf der Displayseite
txt = Kennzeichnung dass Text übertragen wird
="" = Formatierung
Franz54:
Naja, das wird ja im Tutorial am Anfang auch gleich klar geschrieben. Ich fürchte hier wir keine Tipps für die Arbeit mit Nextion Library geben.
Franz
Stimmt, aber wie ich sehe, versteht der TO das Tutorial nicht, daher der Hinweis.
Tommy56:
Mein Posting bezog sich aber auf den ursprünglichen Zustand ohne die Korrektur.
Gruß Tommy
Daraufhin habe ich ja den Fehler gesehen und korrigiert.
Oder ist das deiner Meinung nicht ausreichend ?
Allerdings funktioniert es so, wie in #11 geschrieben und dementsprechend kann der TO das auch so einsetzen, wenn er es dann versteht.