Kennst du die Tastenkombination Strg+T in der IDE ?
Die solltest du anwenden, bevor du den Sketch postest, dadurch wird der formatiert und besser lesbar.
Das solltest auch och mit deinem Sketch nachholen, dann wird es einfach deine Fehler zu finden und zu zeigen.
Ok, soweit ist er besser lesbar.
Allerdings steige ich noch nicht durch.
Was willst du mit wire ansprechen ?
Da du keine Kommentare eingebaut hast, ist der für externe schwer zu verstehen.
Und in 2 Monaten für dich ebenso.
#include "DHT.h" //Bibliothek für Dht22 (Temperatur und Luft feuchtigkeit
int co2Addr = 0x68; //Bezeichnung für einen K30 CO2 Sensor
#include <Wire.h> //zum Übertragen der Werte von CO2 Sensor
#define DHTPIN 2 //Definition für Dht22 Sensor
#define DHTTYPE DHT22 //"
DHT dht(DHTPIN, DHTTYPE); //Notwendig für sensor
void setup()
{
dht.begin(); //Starten von dht
Serial1.begin(9600); //Starten der Seriellen Schnittstelle 1
Wire.begin (); // Starten von Bibliothek wire
pinMode(13, OUTPUT); //für co2 sensor
String cmd; //cmd als übertragungshilfe
cmd += "\""; //"
}
int readCO2() //Programmierung vom CO2 Sensor
{
int co2_value = 0; //Anfangswert=0
Wire.beginTransmission(co2Addr); //Übertragen von CO2 Wert mit sda und scl (habe nichts anderes, wo geht gefunden
Wire.write(0x22); //Codierung Vom CO2 sensor
Wire.write(0x00); //"
Wire.write(0x08); //"
Wire.write(0x2A); //"
Wire.endTransmission(); //Ende Übertragung
delay(10);
Wire.requestFrom(co2Addr, 4); //Einstellen der Sensordaten (sehr kompliziert!)
byte i = 0; //Einstellen der Sensordaten
byte buffer[4] = {0, 0, 0, 0}; //Einstellen der Sensordaten
while (Wire.available()) //Einstellen der Sensordaten
{
buffer[i] = Wire.read(); //Einstellen der Sensordaten
i++; //Einstellen der Sensordaten
}
co2_value = 0; //Einstellen der Sensordaten
co2_value |= buffer[1] & 0xFF; //Einstellen der Sensordaten
co2_value = co2_value << 8; //Einstellen der Sensordaten
co2_value |= buffer[2] & 0xFF; //Einstellen der Sensordaten
byte sum = 0; //Checkt byte
sum = buffer[0] + buffer[1] + buffer[2]; //füge zahlen zusammen
if (sum == buffer[3])Byte addition utilizes overflow
{
// Wenn ja:
digitalWrite(13, LOW);
return co2_value;
}
else
{
//sonst
digitalWrite(13, LOW);
return 0;
}
}
void loop()
{
float Luftfeuchtigkeit = dht.readHumidity(); //definierung Luftfeuchtigkeit
float Temperatur = dht.readTemperature(); //Definierung temperatur
String cmd; //fügt cmd hinzu
cmd += "\""; //Dfinition cmd
/* int test = Luftfeuchtigkeit;
String output = "jlu.val=";
output += test;
Serial1.print( output );
Serial1.write( 0xFF );
Serial1.write( 0xFF );
Serial1.write( 0xFF );*/
Serial1.print("tc.txt=" + cmd + Temperatur + cmd); //Zeigt Teperatur an
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("tc.txt=" + cmd + Temperatur + cmd); //Wiederhohlung als sicherheit
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
int page; //füge seite hinzu(sonst sagt es "page is not declared"
Serial1.print(page + cmd + "Rot" + cmd); //öffne seite Rot
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("page Rot"); //test auch für die seite
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
delay(6000);
Serial1.print("t11.txt=" + cmd + Luftfeuchtigkeit + cmd); //drucke Luftfeuchtigkeit als wert
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("t11.txt=" + cmd + Luftfeuchtigkeit + cmd); // wiederhohlung
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
int co2Value = readCO2(); // füge co2 wert hinzu
if (co2Value > 0) wenn co2 wert uber 0 ist
{
Serial1.print("t7.txt=" + cmd + co2Value + cmd); //zeigt wert an
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("t7.txt=" + cmd + co2Value + cmd);//wiederhohlung
Serial1.write(0xFF); //63488
Serial1.write(0xFF);
Serial1.write(0xFF);
}
else {}
/*if (co2Value > 800) //wenn co2 wert über 800 liegt
{
Serial1.print("t10.txt=" + cmd + "Grenzwertig" + cmd); schreibe grenzwertig
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("t10.txt=" + cmd + "Grenzwertig" + cmd); //wdh
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("t7.txt=" + cmd + co2Value + cmd); //zeige wert an
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("t7.txt=" + cmd + co2Value + cmd); //wdh
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
}
else {}
if (co2Value > 1000) // wenn wert über 100 ist
{
Serial1.print("t10.txt=" + cmd + "! Lueften !" + cmd); // drucke Lueften
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("t10.txt=" + cmd + "! Lueften !" + cmd); //wdh
Serial1.write(0xFF); //63488
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("t10.txt=" + cmd + "! Lueften !" + cmd); //zeige wert an
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("t7.txt=" + cmd + co2Value + cmd); //wdh
Serial1.write(0xFF); //63488
Serial1.write(0xFF);
Serial1.write(0xFF);
}
else {}*/ //wird baldnicht mehr benötigt
if ( 13 < Temperatur < 20 ) //wenn temperatur unter 20 ist
{
Serial1.print("tca.txt=" + cmd + "!" + cmd); //drucke !
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("tca.txt=" + cmd + "!" + cmd); //wdh
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
delay (2000);
}
else
{
Serial1.print("tca.txt=" + cmd + "" + cmd); //sonst zeige nichts an
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("tca.txt=" + cmd + "" + cmd); //wdh
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
delay (2000);
}
if (Temperatur < 13 ) wenn temperatur unter 13
{
Serial1.print("tca.txt=" + cmd + "! !" + cmd); // drucke !!
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("tca.txt=" + cmd + "! !" + cmd); //wdh
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
delay (2000);
}
else
{
Serial1.print("tca.txt=" + cmd + "" + cmd); //zeige nichts an
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("tca.txt=" + cmd + "" + cmd); // wdh
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
delay (2000);
}
if (Luftfeuchtigkeit < 5) wenn luftfeuchtigkeit über 5 ist gilt
{
Serial1.print("jlu.val=" + cmd + "5" + cmd); //zeige 5 in einer Progressbar an
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.print("jlu.val=" + cmd + "5" + cmd); // wdh
Serial1.write(0xFF);
Serial1.write(0xFF);
Serial1.write(0xFF);
}
else {} // mache nichts
//gilt noch für 10,15,... (sonst ist der code zu lang)
}
Das ist der code mit Komentaren !
oder muss ich beim nextion programm etwas beachten
z.b. global und local
weil bei mir ist global eingestellt
Was ist das für ein co2-Sensor ?
Gibt es da keine Library ?
Der Seitenwechsel funktioniert so
int page;
Serial1.print(page + cmd + "Rot" + cmd); //öffne seite Rot
nicht. Was willst du damit erreichen ?
Das kannst du löschen.
Aber so
Serial1.print("page Rot"); //test auch für die seite
funktioniert er.
Und was soll das
if ( 13 < Temperatur < 20 ) //wenn temperatur unter 20 ist
bewirken ?
Auch solltest du auf die delays verzichten. Die machen eine Bedienung des Displays schwer.
Und ich vermute deswegen hast du die ständigen Anweisungswiederholungen nötig.
Was genau meinst du damit:
weil bei mir ist global eingestellt
danke es funktioniert komischerweise jetzt.
obwohl ich nicht s geändert habe
sili1234:
danke es funktioniert komischerweise jetzt.
obwohl ich nicht s geändert habe
Dennoch solltest du dir meine Anmerkungen durchsehen.
In deinem Sketch gibt es zahlreiche Anweisungen die falsch oder überflüssig sind.