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
Mal geht das kompilieren mal nicht ????
05.01.2020, 12:34 (Dieser Beitrag wurde zuletzt bearbeitet: 05.01.2020 12:53 von MarkZero0815.)
Beitrag #1
Mal geht das kompilieren mal nicht ????
Hallo liebe Gemeinde,

es ist komisch mal gehts, mal nicht und das macht mich wahnsinnig, könnt mir helfen ?

Es kommt folgende Fehlemeldung

'RelaisSchalten' was not declared in this scope
bezug auf Zeile 66

oder Fehler mit StartText
wo hab ich den Fehler gemacht oder wie krieg das weg

Liegts am Code, an der der Sofware ?

Ich benutze eine MEGA Board mit Ethernet Shield sowie Nextion Display

anbei der Code

Code:
// Kein Fehlerabfangen.


#define nextion Serial2                               // Pin 16 und 17 bei MEGA 2560

const uint8_t relais[3][4] = {
  {10, 11, 12}, // Zuordnung Nextion Objekt-ID zu Relais
  {40, 42, 41, 43} // Zuordnung Relais zu digitalen PINs
};
String relais_button_name[3] = {"b1", "b2", "b3"};
byte relais_aktiv[3];

const uint16_t ButtonColorEin = 1024; //grün
const uint16_t ButtonColorAus = 63488; // Hellgrau - LONG, da INT nur bis 32767 geht

byte SeitenID;
byte KomponentenID;
byte Eventtyp;
byte Event;
const byte NextEnd[3] = {255, 255, 255}; // Abschluss Nextion-Befehl

unsigned long StartzeitMilliSek;  // Timer-Startzeit
unsigned long AktuellMilliSek;
const unsigned long TimerPeriode = 3000;  // alle 3s

#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 24
#include <Wire.h>
#include "RTClib.h"
#include <MCUFRIEND_kbv.h>
#include <SPI.h>
#include <Ethernet.h>

byte NexT[3] = {255, 255, 255};

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 1, 177);

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"};

void setup() {
  Serial.begin(115200);
  nextion.begin(115200);
  StartzeitMilliSek = millis();  //Erste Startzeit festhalten
  String Starttext = "Arduino gestartet";
  Serial.println(Starttext);
  //  StatusText(Starttext);

  for (uint8_t i = 0; i < 3; i++) {
    pinMode(relais[1][i], OUTPUT); // Den digital PIN als Ausgangssignal setzen.
    RelaisSchalten(i, false);
  }
}

// You can use Ethernet.init(pin) to configure the CS pin
//Ethernet.init(10);  // Most Arduino shields
//Ethernet.init(5);   // MKR ETH shield
//Ethernet.init(0);   // Teensy 2.0
//Ethernet.init(20);  // Teensy++ 2.0
//Ethernet.init(15);  // ESP8266 with Adafruit Featherwing Ethernet
//Ethernet.init(33);  // ESP32 with Adafruit Featherwing Ethernet

// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) {
  ; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Ethernet WebServer Example");
Serial2.begin(115200);
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);

// Check for Ethernet hardware present
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
  Serial.println("Ethernet shield was not found.  Sorry, can't run without hardware. :(");
  while (true) {
    delay(1); // do nothing, no point running without Ethernet hardware
  }
}
if (Ethernet.linkStatus() == LinkOFF) {
  Serial.println("Ethernet cable is not connected.");
}

// start the server
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());

#ifndef ESP8266
while (!Serial); // for Leonardo/Micro/Zero
#endif

Serial.begin(115200);
sensors.begin();

//  delay(50); // wait for console opening

if (! rtc.begin()) {
  Serial.println("Couldn't find RTC");
  while (1);
}

if (rtc.lostPower()) {
  Serial.println("RTC lost power, lets set the time!");
  // following line sets the RTC to the date & time this sketch was compiled
  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  // This line sets the RTC with an explicit date & time, for example to set
  // January 21, 2014 at 3am you would call:
  // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
{
}
pinMode (40, OUTPUT);
pinMode (41, OUTPUT);
pinMode (42, OUTPUT);
pinMode (43, OUTPUT);
}
int  ptemp = 0, differenz1 = 0, ausgabe = 0;
float poolsoll = 28, pools123 = 0;
char c;

Serial2.print("main.t3.txt=\"");
Serial2.print("Pool");
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t0.txt=\"");
Serial2.print(ptemp);
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t1.txt=\"");
Serial2.print("Aussen");
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t5.txt=\"");
Serial2.print(aussen);
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t2.txt=\"");
Serial2.print("Absorber");
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t6.txt=\"");
Serial2.print(absorber);
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t4.txt=\"");
Serial2.print("Technik");
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t7.txt=\"");
Serial2.print(technik);
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.b2.txt=\"");
Serial2.print("PH Regelung");
Serial2.write('"');
Serial2.write(NexT, 3);

void loop() {
  nextionRead();
  if (Event == 101) {   //Touchevent
    RelaisSwitch();     // Schalten der Relais, entsprechtend der Objekt-ID des nextions
    Event = 0;          // Keine Event mehr vorhanden
  }
  // delay(10);           // ohne das delay hier werden die Daten nicht sauber eingelesen. ?

  //AktuellMilliSek = millis();  //Aktuelle Zeitstempel
  //if (AktuellMilliSek - StartzeitMilliSek >= TimerPeriode)  //Timerzeit überschritten?
  //{
  //    StatusText(" ");
  //   StartzeitMilliSek = AktuellMilliSek;  //Timer neu starten
  // }

  float volumen = 12, pumpe = 6, atemp = 22, ptemp = 0, aussen = 0, technik = 0, bteilB = 0.00, olaf = 0, plaufzeit = 0, bteilA = 0.00, olaufzeit = 0.00, zzahl = 0, abtemp = 0, olaf1 = 0, olaf2 = 0, absorber = 0, differenzsoll = 3.9, hysteresse = 0.3;
  int olafh = 0, olafm = 0, startvh = 9, startvm = 0, startnh = 15, startnm = 0, ausschaltvh = 0, ausschaltvm = 0, ausschaltnh = 0, ausschaltnm = 0, differenzz = 0;

  DateTime now = rtc.now();

  // calculate a date which is 7 days and 30 seconds into the future
  DateTime future (now + TimeSpan(0, 0, 3, 30));

  Serial.print(future.year(), DEC);            //Serial Ausgabe Zeiten
  Serial.print('/');
  Serial.print(future.month(), DEC);
  Serial.print('/');
  Serial.print(future.day(), DEC);
  Serial.print(" (");
  Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
  Serial.print(") ");
  Serial.print(future.hour(), DEC);
  Serial.print(':');
  Serial.print(future.minute(), DEC);
  Serial.print(':');
  Serial.print(future.second(), DEC);
  Serial.println();

  Serial.print("Temperature: ");            //Serial Ausgabe Temperatur
  Serial.print(rtc.getTemperature());
  Serial.println(" C");

  //   Sensoren auslesen und Ausgabe
  {
    sensors.requestTemperatures();
    Serial.println("Temperaturen");
    Serial.print("Pool           ");
    Serial.print(sensors.getTempCByIndex(0));
    Serial.println(" °C");
    Serial.print("Solar Absorber ");
    Serial.print(sensors.getTempCByIndex(1));
    Serial.println(" °C");
  }

  Serial.println();
  delay(0);
  {
  }
  // Sensoren auslesen und Ausgabe
  {
    sensors.requestTemperatures();
    Serial.println("Temperaturen");
    Serial.print("Pool           ");
    Serial.print(sensors.getTempCByIndex(0));
    (ptemp = sensors.getTempCByIndex(0));
    Serial.println(" C");

    Serial.print("Solar Absorber ");
    Serial.print(sensors.getTempCByIndex(1));
    Serial.println(" C");
    // Serial.println("");
    (absorber = sensors.getTempCByIndex(1));

    Serial.print("Aussen ");
    Serial.print(sensors.getTempCByIndex(2));
    Serial.println(" C");
    // Serial.println("");
    (aussen = sensors.getTempCByIndex(2));

    Serial.print("Technik ");
    Serial.print(sensors.getTempCByIndex(3));
    Serial.println(" C");
    // Serial.println("");
    (technik = sensors.getTempCByIndex(3));
  }

  // Pumpenlaufzeiten aufgrund der Pooltemperatur

  (plaufzeit = (volumen / pumpe) * 2);

  if (ptemp > 0) {                 // Pooltemperatur unter 22 Grad , Minimum Laufzeit
    (olaf = plaufzeit);
  }
  if (ptemp > 22.1) {              // Pooltemperatur höher als 22 Grad, Minimum Laufzeit um Faktor 1,25 erhöht
    (olaf = (plaufzeit * 1.25));
  }
  if (ptemp > 24.1) {              // Pooltemperatur höher als 24 Grad, Minimum Laufzeit um Faktor 1,50 erhöht
    (olaf = (plaufzeit * 1.5));
  }
  if (ptemp > 26.1) {              // Pooltemperatur höher als 26 Grad, Minimum Laufzeit um Faktor 1,75 erhöht
    (olaf = (plaufzeit * 1.75));
  }
  if (ptemp > 28.1) {              // Pooltemperatur höher als 28 Grad, Minimum Laufzeit um Faktor 2,00 erhöht
    (olaf = (plaufzeit * 2));
  }
  if (ptemp > 30.1) {              // Pooltemperatur höher als 30 Grad, Minimum Laufzeit um Faktor 2,25 erhöht
    (olaf = (plaufzeit * 2.25));
  }
  if (ptemp > 32.1) {              // Pooltemperatur höher als 32 Grad, Minimum Laufzeit um Faktor 2,50 erhöht
    (olaf = (plaufzeit * 2.5));
  }
  if (ptemp > 34.1) {              // Pooltemperatur höher als 34 Grad, Minimum Laufzeit um Faktor 2,75 erhöht
    (olaf = (plaufzeit * 2.75));
  }

  Serial.print("Pool Temperatur ");
  Serial.print(ptemp);
  Serial. println( "C");
  Serial.print("Pumpenlaufzeit ");
  Serial.println(olaf);
  Serial.print("Pool Soll Temp ");
  Serial.println(poolsoll);


  Serial.print("optimierte Laufzeit halbiert ");
  Serial.println(olaufzeit = olaf / 2);
  Serial.print("optimierte Laufzeit in Stunde ");
  Serial.println(olafh = olaufzeit);          // optimierte Laufzeit Stunden, die Hälfte
  (olaf2 = (olaufzeit - olafh));               // Berechnung
  Serial.print("optimierte Laufzeit in Minuten ");
  Serial.println(olafm = ((olaf2 * 100) * 60) / 100); // optimierte Laufzeit Minuten, die Hälfte

  //Schaltzeiten vormittag

  Serial.print("Schaltzeit Vormittag Pumpe ein ");
  Serial.print(9);
  Serial.println(":00 Uhr");
  Serial.print("Schaltzeit Vormittag Pumpe aus ");
  (ausschaltvh = startvh + olafh);
  Serial.print(ausschaltvh);
  Serial.print(":");
  (ausschaltvm = startvm + olafm);
  Serial.print(ausschaltvm);
  Serial.println(" Uhr");

  // Schaltzeiten Nachmittag

  Serial.print("Schaltzeit Nachmittag Pumpe ein ");
  Serial.print(startnh);
  Serial.println(":00 Uhr");
  Serial.print("Schaltzeit Nachmittag Pumpe aus ");
  (ausschaltnh = startnh + olafh);
  Serial.print(ausschaltnh);
  Serial.print(":");
  (ausschaltnm = startnm + olafm);
  Serial.print(olafm);
  Serial.println(" Uhr");
  Serial.println("------------------");

  delay(1);



  //Schaltzeiten der Pumpe Vormittags

  if ((future.hour() == 9) && (future.minute() == 0)) {
    digitalWrite (40, HIGH);
    Serial.println ("Pumpe eingeschaltet");
  }

  if ((future.hour() == ausschaltvh) && (future.minute() == ausschaltvm )) {
    digitalWrite (40, LOW);
    Serial.println ("Pumpe ausgeschaltet");
  }

  //Schaltzeiten PH Regelung Vormittags
  if ((future.hour() == 9) && (future.minute() == 0)) {
    digitalWrite (42, HIGH);
    Serial.println ("PH Regelung eingeschaltet");
  }

  if ((future.hour() == ausschaltvh) && (future.minute() == ausschaltvm )) {
    digitalWrite (42, LOW);
    Serial.println ("PH Regelung ausgeschaltet");
  }


  //Schaltzeiten der Pumpe Nachmittags
  {
    if ((future.hour() == 15) && (future.minute() == 0)) {
      digitalWrite (40, HIGH);
      Serial.println ("Pumpe eingeschaltet");
    }

    if ((future.hour() == ausschaltnh) && (future.minute() == ausschaltnm )) {
      digitalWrite (40, LOW);
      Serial.println ("Pumpe ausgeschaltet");
    }

    if ((future.hour() == 21) && (future.minute() == 0 )) {                               //Sicherheits Abschaltung der Pumpe
      digitalWrite (40, LOW);
      Serial.println ("Pumpe ausgeschaltet");
    }

    //Schaltzeiten der PH Regelung Nachmittags
    {
      if ((future.hour() == 15) && (future.minute() == 0)) {
        digitalWrite (42, HIGH);
        Serial.println ("PH Regelung eingeschaltet");
      }

      if ((future.hour() == ausschaltnh) && (future.minute() == ausschaltnm )) {
        digitalWrite (42, LOW);
        Serial.println ("PH Regelung ausgeschaltet");
      }

      if ((future.hour() == 21) && (future.minute() == 0 )) {                               //Sicherheits Abschaltung der PH Regelung
        digitalWrite (42, LOW);
        Serial.println ("PH Regelung ausgeschaltet");
      }


      //Differnzschaltung

      (differenzz = absorber - ptemp);


      if (differenzz > differenzsoll) {   // differenz über 4 Grad als Pool
        differenz1 = 1;
      }
      if (absorber > 50) {              // Absorber Temp über 50 Grad
        differenz1 = 0;
      }
      if (poolsoll < ptemp) {           // Pool temperatur erreicht
        differenz1 = 0;
      }
      if (differenzz < hysteresse) {     // Hysteresse
        differenz1 = 0;
      }
      if (differenz1 == 1) {             // Solarsystem zu schalten
        digitalWrite (41, HIGH);
        Serial.println(differenz1);
      }
      if (differenz1 == 0) {               // Solarsystem ab schalten
        digitalWrite (41, LOW);
        Serial.println(differenz1);

        //}
        // listen for incoming clients
        EthernetClient client = server.available();
        if (client) {
          Serial.println("new client");
          // an http request ends with a blank line
          boolean currentLineIsBlank = true;
          while (client.connected()) {
            if (client.available()) {
              char c = client.read();
              Serial.write(c);
              // if you've gotten to the end of the line (received a newline
              // character) and the line is blank, the http request has ended,
              // so you can send a reply
              if (c == '\n' && currentLineIsBlank) {
                // send a standard http response header
                client.println("HTTP/1.1 200 OK");
                client.println("Content-Type: text/html");
                client.println("Connection: close");  // the connection will be closed after completion of the response
                client.println("Refresh: 5");  // refresh the page automatically every 5 sec
                client.println();
                client.println("<!DOCTYPE HTML>");
                client.println("<html xml:lang="de" lang="de" xmlns="http://www.w3.org/1999/xhtml">");
                client.println("Pooltemperatur ");
                client.println(ptemp);
                client.println("<br>");
                client.println("Absober Temperatur ");
                client.println(absorber);
                client.println("<br>");
                client.println("Pool Soll Temperatur ");
                client.println(poolsoll);

                // output the value of each analog input pin
                for (int analogChannel = 0; analogChannel < 0; analogChannel++) {
                  int sensorReading = analogRead(analogChannel);
                  client.print("analog input ");
                  client.print("");
                  client.print("");
                  client.print("");
                  client.print("<br />");
                  client.print("TEST");
                  client.print("");
                }
                client.println("</html>");

                // HTML CODE

                client.print("");
                client.println("");
                client.print("");

                break;
              }
              if (c == '\n') {
                // you're starting a new line
                currentLineIsBlank = true;
              } else if (c != '\r') {
                // you've gotten a character on the current line
                currentLineIsBlank = false;
              }
            }
          }
          // give the web browser time to receive the data
          delay(1);
          // close the connection:
          client.stop();
          Serial.println("client disconnected");
        }
      }

    }
  }

  void StatusText(String Displaytext) {           // Text an den Arduino schicken
    nextion.print("main.tArduinoStatus.txt=\"");  // Statustextfeld
    nextion.print(Displaytext);                   // Anzuzeigender Text
    nextion.print('"');                           // Textfeld abschliessen
    nextion.write(NextEnd, 3);                    // nextion mitteilen, dass Übertragung beendet ist
  }

  void RelaisSwitch() { // Schalte Relais
    if (KomponentenID > 0) {
      uint8_t i;
      if (KomponentenID < 2) { // Alle an, ID = 1
        StatusText("Alle an");
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, true);
        }
      }
      else if (KomponentenID < 3) { // Alle aus, ID = 2
        StatusText("Alle aus");
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, false);
        }
      }
      else if (KomponentenID == 9) { // Testsequenz, ID = 9
        StatusText("Test-Sequenz");
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, false);
        }
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, true);
          delay(100);
        }
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, false);
          delay(100);
        }
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, true);
          delay(100);
        }
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, false);
          delay(100);
        }
        for (i = 0; i < 4; i++) {
          RelaisSchalten(i, true);
          RelaisSchalten(7 - i, true);
          delay(100);
        }
        for (i = 0; i < 4; i++) {
          RelaisSchalten(i, false);
          RelaisSchalten(7 - i, false);
          delay(100);
        }
        for (uint8_t x = 0; x < 3; x++) {
          for ( i = 0; i < 8; i++) {
            RelaisSchalten(i, true);
          }
          delay(100);
          for (i = 0; i < 8; i++) {
            RelaisSchalten(i, false);
          }
          delay(100);
        }
        for (i = 0; i <= 64; i++) // Eingangscache löschen
        { uint16_t tmp[64];
          tmp[i] = nextion.read();
        }
      }
      else {  // Relais entsprechend der Button-Eingabe schalten, ID = alles andere
        for ( i = 0; i < 8; i++) {
          if (relais[0][i] == KomponentenID ) {
            if (relais_aktiv[i]) {                            // Relais eingeschaltet
              StatusText("Relais " + String(i + 1) + " aus"); // Relaisstatus an nextion
              RelaisSchalten(i, false);                       // Relais Ausschalten
            }
            else {                                            // Relais ausgeschaltet
              StatusText("Relais " + String(i + 1) + " ein"); // Relaisstatus an nextion
              RelaisSchalten(i, true);                        // Relais Einschalten
            }
          }
        }
      }
      KomponentenID = -1; // Neue Eingabe abwarten
    }
  }

  void RelaisSchalten(uint8_t Relaisnummer, boolean Einschalten) {  // Relais schalten und Buttonthintergrundfarbe abhängig vom Schaltzustand setzten
    nextion.print("main.");
    nextion.print(relais_button_name[Relaisnummer]);
    nextion.print(".bco=");
    if (Einschalten) {
      digitalWrite(relais[1][Relaisnummer], HIGH);
      relais_aktiv[Relaisnummer] = true;
      nextion.print(ButtonColorEin);
    }
    else {
      digitalWrite(relais[1][Relaisnummer], LOW);
      relais_aktiv[Relaisnummer] = false;
      nextion.print(ButtonColorAus);
    }
    nextion.write(NextEnd, 3);
  }

  void nextionRead() {  // Die Daten vom nextion Byteweise einlesen und Anzeigen was empfangen wurde
    uint16_t SerialDaten = nextion.available();
    byte SerialCacheByte[SerialDaten];
    if (SerialDaten > 0)
    {
      Serial.println("-");
      Serial.print("Gefundene Bytes = ");
      Serial.println(SerialDaten);
      for (uint16_t i = 0; i <= SerialDaten; i++)
      {
        SerialCacheByte[i] = nextion.read();
      }
      Event = SerialCacheByte[0];
      SeitenID = SerialCacheByte[1];
      KomponentenID = SerialCacheByte[2];
      Eventtyp = SerialCacheByte[3];
      Serial.print("Event: ");
      Serial.println(SerialCacheByte[0]);
      Serial.print("Seite: ");
      Serial.println(SerialCacheByte[1]);
      Serial.print("Komponente: ");
      Serial.println(SerialCacheByte[2]);
      Serial.print("Eventtyp: ");
      Serial.println(SerialCacheByte[3]);
      Serial.println("-");
      StartzeitMilliSek = AktuellMilliSek;  //Timer zum Löschen der Info am nextion neu starten
    }
  }

Hier noch ein Teil der Fehlermeldung sonst sinds zuviele Zeichen

Code:
Arduino: 1.8.10 (Windows 10), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Poolsteuerung_V1-200-10:66:5: error: 'RelaisSchalten' was not declared in this scope

     RelaisSchalten(i, false);

     ^~~~~~~~~~~~~~

Z:\Markus\Arduino Projekt\Arduino Sketch\Poolsteuerung_V1-200-10\Poolsteuerung_V1-200-10.ino:66:5: note: suggested alternative: 'relais_aktiv'

     RelaisSchalten(i, false);

     ^~~~~~~~~~~~~~

     relais_aktiv

Z:\Markus\Arduino Projekt\Arduino Sketch\Poolsteuerung_V1-200-10\Poolsteuerung_V1-200-10.ino: At global scope:

Poolsteuerung_V1-200-10:79:1: error: 'Serial' does not name a type

Serial.begin(115200);

^~~~~~

Poolsteuerung_V1-200-10:80:1: error: expected unqualified-id before 'while'

while (!Serial) {

^~~~~

Poolsteuerung_V1-200-10:83:1: error: 'Serial' does not name a type

Serial.println("Ethernet WebServer Example");

^~~~~~

Poolsteuerung_V1-200-10:84:1: error: 'Serial2' does not name a type

Serial2.begin(115200);

^~~~~~~

Poolsteuerung_V1-200-10:86:1: error: 'Ethernet' does not name a type

Ethernet.begin(mac, ip);

^~~~~~~~

Poolsteuerung_V1-200-10:89:1: error: expected unqualified-id before 'if'

if (Ethernet.hardwareStatus() == EthernetNoHardware) {

^~

Poolsteuerung_V1-200-10:95:1: error: expected unqualified-id before 'if'

if (Ethernet.linkStatus() == LinkOFF) {

^~

Poolsteuerung_V1-200-10:100:1: error: 'server' does not name a type

server.begin();

^~~~~~

Poolsteuerung_V1-200-10:101:1: error: 'Serial' does not name a type

Serial.print("server is at ");

^~~~~~

Poolsteuerung_V1-200-10:102:1: error: 'Serial' does not name a type

Serial.println(Ethernet.localIP());

^~~~~~

Poolsteuerung_V1-200-10:105:1: error: expected unqualified-id before 'while'

while (!Serial); // for Leonardo/Micro/Zero

^~~~~

Poolsteuerung_V1-200-10:108:1: error: 'Serial' does not name a type

Serial.begin(115200);

^~~~~~

Poolsteuerung_V1-200-10:109:1: error: 'sensors' does not name a type

sensors.begin();

^~~~~~~

Poolsteuerung_V1-200-10:113:1: error: expected unqualified-id before 'if'

if (! rtc.begin()) {

^~

Poolsteuerung_V1-200-10:118:1: error: expected unqualified-id before 'if'

if (rtc.lostPower()) {

^~

Poolsteuerung_V1-200-10:126:1: error: expected unqualified-id before '{' token

{

^

Poolsteuerung_V1-200-10:128:9: error: expected constructor, destructor, or type conversion before '(' token

pinMode (40, OUTPUT);

         ^

Poolsteuerung_V1-200-10:129:9: error: expected constructor, destructor, or type conversion before '(' token

pinMode (41, OUTPUT);

         ^

Poolsteuerung_V1-200-10:130:9: error: expected constructor, destructor, or type conversion before '(' token

pinMode (42, OUTPUT);

         ^

Poolsteuerung_V1-200-10:131:9: error: expected constructor, destructor, or type conversion before '(' token

pinMode (43, OUTPUT);

         ^

Poolsteuerung_V1-200-10:132:1: error: expected declaration before '}' token

}

^

Mehrere Bibliotheken wurden für "MCUFRIEND_kbv.h" gefunden
Benutzt: C:\Users\Besitzer\Documents\Arduino\libraries\MCUFRIEND_kbv-2.9.8
Mehrere Bibliotheken wurden für "Adafruit_GFX.h" gefunden
Benutzt: C:\Users\Besitzer\Documents\Arduino\libraries\Adafruit-GFX-Library-master
Mehrere Bibliotheken wurden für "SPI.h" gefunden
Benutzt: C:\Users\Besitzer\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.2\li​braries\SPI
Mehrere Bibliotheken wurden für "Ethernet.h" gefunden
Benutzt: C:\Program
Nicht benutzt: C:\Users\Besitzer\Documents\Arduino\libraries\Ethernet-master
Mehrere Bibliotheken wurden für "OneWire.h" gefunden
Benutzt: C:\Users\Besitzer\Documents\Arduino\libraries\OneWire-2.3.5
Mehrere Bibliotheken wurden für "DallasTemperature.h" gefunden
Benutzt: C:\Users\Besitzer\Documents\Arduino\libraries\DallasTemperature-3.8.0
Mehrere Bibliotheken wurden für "Wire.h" gefunden
Benutzt: C:\Users\Besitzer\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.2\li​braries\Wire
Mehrere Bibliotheken wurden für "RTClib.h" gefunden
Benutzt: C:\Users\Besitzer\Documents\Arduino\libraries\RTClib-1.3.3
Bibliothek OneWire-2.3.5 in Version 2.3.5 im Ordner: C:\Users\Besitzer\Documents\Arduino\libraries\OneWire-2.3.5  wird verwendet
Bibliothek DallasTemperature-3.8.0 in Version 3.8.0 im Ordner: C:\Users\Besitzer\Documents\Arduino\libraries\DallasTemperature-3.8.0  wird verwendet
Bibliothek Wire in Version 1.0 im Ordner: C:\Users\Besitzer\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.2\li​braries\Wire  wird verwendet
Bibliothek RTClib-1.3.3 in Version 1.3.3 im Ordner: C:\Users\Besitzer\Documents\Arduino\libraries\RTClib-1.3.3  wird verwendet
Bibliothek MCUFRIEND_kbv-2.9.8 in Version 2.9.8 im Ordner: C:\Users\Besitzer\Documents\Arduino\libraries\MCUFRIEND_kbv-2.9.8  wird verwendet
Bibliothek Adafruit-GFX-Library-master in Version 1.7.3 im Ordner: C:\Users\Besitzer\Documents\Arduino\libraries\Adafruit-GFX-Library-master  wird verwendet
Bibliothek SPI in Version 1.0 im Ordner: C:\Users\Besitzer\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.2\li​braries\SPI  wird verwendet
Bibliothek Ethernet in Version 2.0.0 im Ordner: C:\Program Files wird verwendet
exit status 1
'RelaisSchalten' was not declared in this scope

ich hoff ihr könnt mir helfen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2020, 12:37
Beitrag #2
RE: Mal geht das kompilieren mal nicht ????
Stelle Deinen Sketch bitte in Codetags. So ist er auch auf portablen Geräten lesbar.
Wie das geht, steht hier.
Das kannst Du auch noch nachträglich ändern.

Ordentliche Einrückungen des Codes (<Strg>+T in der IDE hilft Dir dabei) würde die Lesbarkeit deutlich verbessern.

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
05.01.2020, 12:49
Beitrag #3
RE: Mal geht das kompilieren mal nicht ????
Hallo,

habe nur flüchtig drüber geschaut.
Funktionen, die im Quelltest erst nach iherer Benutzung stehen löst der Compiler ja nach Glück und IDE/Compilerversion öfter nicht auf.

Für mich unschöne Version: alle Funktionen von hinten nach vorne schieben, an den Anfach des Sketches, also vor setup() .
Dann kennt sie der Compiler schon wenn sie aufgerufen werden.
Die bessee Version: alle eigenen Funktionen vor setup() deklarieren, also dem Compiler benakkt machen.
Also
void StatusText(String Displaytext);
void RelaisSchalten(uint8_t Relaisnummer, boolean Einschalten);

vor setup() einfügen.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2020, 13:02
Beitrag #4
RE: Mal geht das kompilieren mal nicht ????
Hallo Michael,

danke schon mak für schnelle Antwort.
habs vorher eingefügt
über Serial, hab grad gemerkt das ich einige male Serial.begin(115200); drin hatte hab jetzt die zuvielen raus geschmissen, und dennoch
beschwert es sich nun ('Serial' does not name a type)

Gruß Markus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2020, 13:08
Beitrag #5
RE: Mal geht das kompilieren mal nicht ????
Dann solltest Du und den geänderten Sketch zeigen.

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
05.01.2020, 13:14
Beitrag #6
RE: Mal geht das kompilieren mal nicht ????
Ah Ok

anbei dder geänderte Sketch

Code:
// Kein Fehlerabfangen.


#define nextion Serial2                               // Pin 16 und 17 bei MEGA 2560

const uint8_t relais[3][4] = {
  {10, 11, 12}, // Zuordnung Nextion Objekt-ID zu Relais
  {40, 42, 41, 43} // Zuordnung Relais zu digitalen PINs
};
String relais_button_name[3] = {"b1", "b2", "b3"};
byte relais_aktiv[3];

const uint16_t ButtonColorEin = 1024; //grün
const uint16_t ButtonColorAus = 63488; // Hellgrau - LONG, da INT nur bis 32767 geht

byte SeitenID;
byte KomponentenID;
byte Eventtyp;
byte Event;
const byte NextEnd[3] = {255, 255, 255}; // Abschluss Nextion-Befehl

unsigned long StartzeitMilliSek;  // Timer-Startzeit
unsigned long AktuellMilliSek;
const unsigned long TimerPeriode = 3000;  // alle 3s

#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 24
#include <Wire.h>
#include "RTClib.h"
#include <MCUFRIEND_kbv.h>
#include <SPI.h>
#include <Ethernet.h>

byte NexT[3] = {255, 255, 255};

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 1, 177);

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"};

void StatusText(String Displaytext);
void RelaisSchalten(uint8_t Relaisnummer, boolean Einschalten);


void setup() {
  Serial.begin(115200);
  Serial2.begin(115200);
  nextion.begin(115200);
  StartzeitMilliSek = millis();  //Erste Startzeit festhalten
  String Starttext = "Arduino gestartet";
  Serial.println(Starttext);
  //  StatusText(Starttext);

  for (uint8_t i = 0; i < 3; i++) {
    pinMode(relais[1][i], OUTPUT); // Den digital PIN als Ausgangssignal setzen.
    RelaisSchalten(i, false);
  }
}

// You can use Ethernet.init(pin) to configure the CS pin
//Ethernet.init(10);  // Most Arduino shields
//Ethernet.init(5);   // MKR ETH shield
//Ethernet.init(0);   // Teensy 2.0
//Ethernet.init(20);  // Teensy++ 2.0
//Ethernet.init(15);  // ESP8266 with Adafruit Featherwing Ethernet
//Ethernet.init(33);  // ESP32 with Adafruit Featherwing Ethernet

// Open serial communications and wait for port to open:



  ; // wait for serial port to connect. Needed for native USB port only

Serial.println("Ethernet WebServer Example");

// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);

// Check for Ethernet hardware present
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
  Serial.println("Ethernet shield was not found.  Sorry, can't run without hardware. :(");
  while (true) {
    delay(1); // do nothing, no point running without Ethernet hardware
  }
}
if (Ethernet.linkStatus() == LinkOFF) {
  Serial.println("Ethernet cable is not connected.");
}

// start the server
Server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());

#ifndef ESP8266
while (!Serial); // for Leonardo/Micro/Zero
#endif


sensors.begin();

//  delay(50); // wait for console opening

if (! rtc.begin()) {
  Serial.println("Couldn't find RTC");
  while (1);
}

if (rtc.lostPower()) {
  Serial.println("RTC lost power, lets set the time!");
  // following line sets the RTC to the date & time this sketch was compiled
  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  // This line sets the RTC with an explicit date & time, for example to set
  // January 21, 2014 at 3am you would call:
  // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));


}
pinMode (40, OUTPUT);
pinMode (41, OUTPUT);
pinMode (42, OUTPUT);
pinMode (43, OUTPUT);
}
int  ptemp = 0, differenz1 = 0, ausgabe = 0;
float poolsoll = 28, pools123 = 0;
char c;

Serial2.print("main.t3.txt=\"");
Serial2.print("Pool");
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t0.txt=\"");
Serial2.print(ptemp);
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t1.txt=\"");
Serial2.print("Aussen");
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t5.txt=\"");
Serial2.print(aussen);
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t2.txt=\"");
Serial2.print("Absorber");
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t6.txt=\"");
Serial2.print(absorber);
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t4.txt=\"");
Serial2.print("Technik");
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.t7.txt=\"");
Serial2.print(technik);
Serial2.write('"');
Serial2.write(NexT, 3);

Serial2.print("main.b2.txt=\"");
Serial2.print("PH Regelung");
Serial2.write('"');
Serial2.write(NexT, 3);

void loop() {
  nextionRead();
  if (Event == 101) {   //Touchevent
    RelaisSwitch();     // Schalten der Relais, entsprechtend der Objekt-ID des nextions
    Event = 0;          // Keine Event mehr vorhanden
  }
  // delay(10);           // ohne das delay hier werden die Daten nicht sauber eingelesen. ?

  //AktuellMilliSek = millis();  //Aktuelle Zeitstempel
  //if (AktuellMilliSek - StartzeitMilliSek >= TimerPeriode)  //Timerzeit überschritten?
  //{
  //    StatusText(" ");
  //   StartzeitMilliSek = AktuellMilliSek;  //Timer neu starten
  // }

  float volumen = 12, pumpe = 6, atemp = 22, ptemp = 0, aussen = 0, technik = 0, bteilB = 0.00, olaf = 0, plaufzeit = 0, bteilA = 0.00, olaufzeit = 0.00, zzahl = 0, abtemp = 0, olaf1 = 0, olaf2 = 0, absorber = 0, differenzsoll = 3.9, hysteresse = 0.3;
  int olafh = 0, olafm = 0, startvh = 9, startvm = 0, startnh = 15, startnm = 0, ausschaltvh = 0, ausschaltvm = 0, ausschaltnh = 0, ausschaltnm = 0, differenzz = 0;

  DateTime now = rtc.now();

  // calculate a date which is 7 days and 30 seconds into the future
  DateTime future (now + TimeSpan(0, 0, 3, 30));

  Serial.print(future.year(), DEC);            //Serial Ausgabe Zeiten
  Serial.print('/');
  Serial.print(future.month(), DEC);
  Serial.print('/');
  Serial.print(future.day(), DEC);
  Serial.print(" (");
  Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
  Serial.print(") ");
  Serial.print(future.hour(), DEC);
  Serial.print(':');
  Serial.print(future.minute(), DEC);
  Serial.print(':');
  Serial.print(future.second(), DEC);
  Serial.println();

  Serial.print("Temperature: ");            //Serial Ausgabe Temperatur
  Serial.print(rtc.getTemperature());
  Serial.println(" C");

  //   Sensoren auslesen und Ausgabe
  {
    sensors.requestTemperatures();
    Serial.println("Temperaturen");
    Serial.print("Pool           ");
    Serial.print(sensors.getTempCByIndex(0));
    Serial.println(" °C");
    Serial.print("Solar Absorber ");
    Serial.print(sensors.getTempCByIndex(1));
    Serial.println(" °C");
  }

  Serial.println();
  delay(0);
  {
  }
  // Sensoren auslesen und Ausgabe
  {
    sensors.requestTemperatures();
    Serial.println("Temperaturen");
    Serial.print("Pool           ");
    Serial.print(sensors.getTempCByIndex(0));
    (ptemp = sensors.getTempCByIndex(0));
    Serial.println(" C");

    Serial.print("Solar Absorber ");
    Serial.print(sensors.getTempCByIndex(1));
    Serial.println(" C");
    // Serial.println("");
    (absorber = sensors.getTempCByIndex(1));

    Serial.print("Aussen ");
    Serial.print(sensors.getTempCByIndex(2));
    Serial.println(" C");
    // Serial.println("");
    (aussen = sensors.getTempCByIndex(2));

    Serial.print("Technik ");
    Serial.print(sensors.getTempCByIndex(3));
    Serial.println(" C");
    // Serial.println("");
    (technik = sensors.getTempCByIndex(3));
  }

  // Pumpenlaufzeiten aufgrund der Pooltemperatur

  (plaufzeit = (volumen / pumpe) * 2);

  if (ptemp > 0) {                 // Pooltemperatur unter 22 Grad , Minimum Laufzeit
    (olaf = plaufzeit);
  }
  if (ptemp > 22.1) {              // Pooltemperatur höher als 22 Grad, Minimum Laufzeit um Faktor 1,25 erhöht
    (olaf = (plaufzeit * 1.25));
  }
  if (ptemp > 24.1) {              // Pooltemperatur höher als 24 Grad, Minimum Laufzeit um Faktor 1,50 erhöht
    (olaf = (plaufzeit * 1.5));
  }
  if (ptemp > 26.1) {              // Pooltemperatur höher als 26 Grad, Minimum Laufzeit um Faktor 1,75 erhöht
    (olaf = (plaufzeit * 1.75));
  }
  if (ptemp > 28.1) {              // Pooltemperatur höher als 28 Grad, Minimum Laufzeit um Faktor 2,00 erhöht
    (olaf = (plaufzeit * 2));
  }
  if (ptemp > 30.1) {              // Pooltemperatur höher als 30 Grad, Minimum Laufzeit um Faktor 2,25 erhöht
    (olaf = (plaufzeit * 2.25));
  }
  if (ptemp > 32.1) {              // Pooltemperatur höher als 32 Grad, Minimum Laufzeit um Faktor 2,50 erhöht
    (olaf = (plaufzeit * 2.5));
  }
  if (ptemp > 34.1) {              // Pooltemperatur höher als 34 Grad, Minimum Laufzeit um Faktor 2,75 erhöht
    (olaf = (plaufzeit * 2.75));
  }

  Serial.print("Pool Temperatur ");
  Serial.print(ptemp);
  Serial. println( "C");
  Serial.print("Pumpenlaufzeit ");
  Serial.println(olaf);
  Serial.print("Pool Soll Temp ");
  Serial.println(poolsoll);


  Serial.print("optimierte Laufzeit halbiert ");
  Serial.println(olaufzeit = olaf / 2);
  Serial.print("optimierte Laufzeit in Stunde ");
  Serial.println(olafh = olaufzeit);          // optimierte Laufzeit Stunden, die Hälfte
  (olaf2 = (olaufzeit - olafh));               // Berechnung
  Serial.print("optimierte Laufzeit in Minuten ");
  Serial.println(olafm = ((olaf2 * 100) * 60) / 100); // optimierte Laufzeit Minuten, die Hälfte

  //Schaltzeiten vormittag

  Serial.print("Schaltzeit Vormittag Pumpe ein ");
  Serial.print(9);
  Serial.println(":00 Uhr");
  Serial.print("Schaltzeit Vormittag Pumpe aus ");
  (ausschaltvh = startvh + olafh);
  Serial.print(ausschaltvh);
  Serial.print(":");
  (ausschaltvm = startvm + olafm);
  Serial.print(ausschaltvm);
  Serial.println(" Uhr");

  // Schaltzeiten Nachmittag

  Serial.print("Schaltzeit Nachmittag Pumpe ein ");
  Serial.print(startnh);
  Serial.println(":00 Uhr");
  Serial.print("Schaltzeit Nachmittag Pumpe aus ");
  (ausschaltnh = startnh + olafh);
  Serial.print(ausschaltnh);
  Serial.print(":");
  (ausschaltnm = startnm + olafm);
  Serial.print(olafm);
  Serial.println(" Uhr");
  Serial.println("------------------");

  delay(1);



  //Schaltzeiten der Pumpe Vormittags

  if ((future.hour() == 9) && (future.minute() == 0)) {
    digitalWrite (40, HIGH);
    Serial.println ("Pumpe eingeschaltet");
  }

  if ((future.hour() == ausschaltvh) && (future.minute() == ausschaltvm )) {
    digitalWrite (40, LOW);
    Serial.println ("Pumpe ausgeschaltet");
  }

  //Schaltzeiten PH Regelung Vormittags
  if ((future.hour() == 9) && (future.minute() == 0)) {
    digitalWrite (42, HIGH);
    Serial.println ("PH Regelung eingeschaltet");
  }

  if ((future.hour() == ausschaltvh) && (future.minute() == ausschaltvm )) {
    digitalWrite (42, LOW);
    Serial.println ("PH Regelung ausgeschaltet");
  }


  //Schaltzeiten der Pumpe Nachmittags
  {
    if ((future.hour() == 15) && (future.minute() == 0)) {
      digitalWrite (40, HIGH);
      Serial.println ("Pumpe eingeschaltet");
    }

    if ((future.hour() == ausschaltnh) && (future.minute() == ausschaltnm )) {
      digitalWrite (40, LOW);
      Serial.println ("Pumpe ausgeschaltet");
    }

    if ((future.hour() == 21) && (future.minute() == 0 )) {                               //Sicherheits Abschaltung der Pumpe
      digitalWrite (40, LOW);
      Serial.println ("Pumpe ausgeschaltet");
    }

    //Schaltzeiten der PH Regelung Nachmittags
    {
      if ((future.hour() == 15) && (future.minute() == 0)) {
        digitalWrite (42, HIGH);
        Serial.println ("PH Regelung eingeschaltet");
      }

      if ((future.hour() == ausschaltnh) && (future.minute() == ausschaltnm )) {
        digitalWrite (42, LOW);
        Serial.println ("PH Regelung ausgeschaltet");
      }

      if ((future.hour() == 21) && (future.minute() == 0 )) {                               //Sicherheits Abschaltung der PH Regelung
        digitalWrite (42, LOW);
        Serial.println ("PH Regelung ausgeschaltet");
      }


      //Differnzschaltung

      (differenzz = absorber - ptemp);


      if (differenzz > differenzsoll) {   // differenz über 4 Grad als Pool
        differenz1 = 1;
      }
      if (absorber > 50) {              // Absorber Temp über 50 Grad
        differenz1 = 0;
      }
      if (poolsoll < ptemp) {           // Pool temperatur erreicht
        differenz1 = 0;
      }
      if (differenzz < hysteresse) {     // Hysteresse
        differenz1 = 0;
      }
      if (differenz1 == 1) {             // Solarsystem zu schalten
        digitalWrite (41, HIGH);
        Serial.println(differenz1);
      }
      if (differenz1 == 0) {               // Solarsystem ab schalten
        digitalWrite (41, LOW);
        Serial.println(differenz1);

        //}
        // listen for incoming clients
        EthernetClient client = server.available();
        if (client) {
          Serial.println("new client");
          // an http request ends with a blank line
          boolean currentLineIsBlank = true;
          while (client.connected()) {
            if (client.available()) {
              char c = client.read();
              Serial.write(c);
              // if you've gotten to the end of the line (received a newline
              // character) and the line is blank, the http request has ended,
              // so you can send a reply
              if (c == '\n' && currentLineIsBlank) {
                // send a standard http response header
                client.println("HTTP/1.1 200 OK");
                client.println("Content-Type: text/html");
                client.println("Connection: close");  // the connection will be closed after completion of the response
                client.println("Refresh: 5");  // refresh the page automatically every 5 sec
                client.println();
                client.println("<!DOCTYPE HTML>");
                client.println("<html>");
                client.println("Pooltemperatur ");
                client.println(ptemp);
                client.println("<br>");
                client.println("Absober Temperatur ");
                client.println(absorber);
                client.println("<br>");
                client.println("Pool Soll Temperatur ");
                client.println(poolsoll);

                // output the value of each analog input pin
                for (int analogChannel = 0; analogChannel < 0; analogChannel++) {
                  int sensorReading = analogRead(analogChannel);
                  client.print("analog input ");
                  client.print("");
                  client.print("");
                  client.print("");
                  client.print("<br />");
                  client.print("TEST");
                  client.print("");
                }
                client.println("</html>");

                // HTML CODE

                client.print("");
                client.println("");
                client.print("");

                break;
              }
              if (c == '\n') {
                // you're starting a new line
                currentLineIsBlank = true;
              } else if (c != '\r') {
                // you've gotten a character on the current line
                currentLineIsBlank = false;
              }
            }
          }
          // give the web browser time to receive the data
          delay(1);
          // close the connection:
          client.stop();
          Serial.println("client disconnected");
        }
      }

    }
  }

  void StatusText(String Displaytext) {           // Text an den Arduino schicken
    nextion.print("main.tArduinoStatus.txt=\"");  // Statustextfeld
    nextion.print(Displaytext);                   // Anzuzeigender Text
    nextion.print('"');                           // Textfeld abschliessen
    nextion.write(NextEnd, 3);                    // nextion mitteilen, dass Übertragung beendet ist
  }

  void RelaisSwitch() { // Schalte Relais
    if (KomponentenID > 0) {
      uint8_t i;
      if (KomponentenID < 2) { // Alle an, ID = 1
        StatusText("Alle an");
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, true);
        }
      }
      else if (KomponentenID < 3) { // Alle aus, ID = 2
        StatusText("Alle aus");
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, false);
        }
      }
      else if (KomponentenID == 9) { // Testsequenz, ID = 9
        StatusText("Test-Sequenz");
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, false);
        }
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, true);
          delay(100);
        }
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, false);
          delay(100);
        }
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, true);
          delay(100);
        }
        for (i = 0; i < 8; i++) {
          RelaisSchalten(i, false);
          delay(100);
        }
        for (i = 0; i < 4; i++) {
          RelaisSchalten(i, true);
          RelaisSchalten(7 - i, true);
          delay(100);
        }
        for (i = 0; i < 4; i++) {
          RelaisSchalten(i, false);
          RelaisSchalten(7 - i, false);
          delay(100);
        }
        for (uint8_t x = 0; x < 3; x++) {
          for ( i = 0; i < 8; i++) {
            RelaisSchalten(i, true);
          }
          delay(100);
          for (i = 0; i < 8; i++) {
            RelaisSchalten(i, false);
          }
          delay(100);
        }
        for (i = 0; i <= 64; i++) // Eingangscache löschen
        { uint16_t tmp[64];
          tmp[i] = nextion.read();
        }
      }
      else {  // Relais entsprechend der Button-Eingabe schalten, ID = alles andere
        for ( i = 0; i < 8; i++) {
          if (relais[0][i] == KomponentenID ) {
            if (relais_aktiv[i]) {                            // Relais eingeschaltet
              StatusText("Relais " + String(i + 1) + " aus"); // Relaisstatus an nextion
              RelaisSchalten(i, false);                       // Relais Ausschalten
            }
            else {                                            // Relais ausgeschaltet
              StatusText("Relais " + String(i + 1) + " ein"); // Relaisstatus an nextion
              RelaisSchalten(i, true);                        // Relais Einschalten
            }
          }
        }
      }
      KomponentenID = -1; // Neue Eingabe abwarten
    }
  }

  void RelaisSchalten(uint8_t Relaisnummer, boolean Einschalten) {  // Relais schalten und Buttonthintergrundfarbe abhängig vom Schaltzustand setzten
    nextion.print("main.");
    nextion.print(relais_button_name[Relaisnummer]);
    nextion.print(".bco=");
    if (Einschalten) {
      digitalWrite(relais[1][Relaisnummer], HIGH);
      relais_aktiv[Relaisnummer] = true;
      nextion.print(ButtonColorEin);
    }
    else {
      digitalWrite(relais[1][Relaisnummer], LOW);
      relais_aktiv[Relaisnummer] = false;
      nextion.print(ButtonColorAus);
    }
    nextion.write(NextEnd, 3);
  }

  void nextionRead() {  // Die Daten vom nextion Byteweise einlesen und Anzeigen was empfangen wurde
    uint16_t SerialDaten = nextion.available();
    byte SerialCacheByte[SerialDaten];
    if (SerialDaten > 0)
    {
      Serial.println("-");
      Serial.print("Gefundene Bytes = ");
      Serial.println(SerialDaten);
      for (uint16_t i = 0; i <= SerialDaten; i++)
      {
        SerialCacheByte[i] = nextion.read();
      }
      Event = SerialCacheByte[0];
      SeitenID = SerialCacheByte[1];
      KomponentenID = SerialCacheByte[2];
      Eventtyp = SerialCacheByte[3];
      Serial.print("Event: ");
      Serial.println(SerialCacheByte[0]);
      Serial.print("Seite: ");
      Serial.println(SerialCacheByte[1]);
      Serial.print("Komponente: ");
      Serial.println(SerialCacheByte[2]);
      Serial.print("Eventtyp: ");
      Serial.println(SerialCacheByte[3]);
      Serial.println("-");
      StartzeitMilliSek = AktuellMilliSek;  //Timer zum Löschen der Info am nextion neu starten
    }
  }
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2020, 13:42 (Dieser Beitrag wurde zuletzt bearbeitet: 05.01.2020 13:43 von Tommy56.)
Beitrag #7
RE: Mal geht das kompilieren mal nicht ????
Das kannst Du weglassen:
Code:
#ifndef ESP8266
while (!Serial); // for Leonardo/Micro/Zero
#endif
Welches Serial meckert er nun an?

Gruß Tommy

Edit: Welche IDE?

"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
05.01.2020, 14:01
Beitrag #8
RE: Mal geht das kompilieren mal nicht ????
Hallo Tommy,

aktuell mekert er bei der Zeile

Serial.println(Ethernet.localIP());

warum ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Hochladen eines Sketches funktioniert nicht otti123 29 2.508 05.09.2020 15:33
Letzter Beitrag: hotsystems
  Uno startet nicht j.klomfass 4 514 08.07.2020 10:09
Letzter Beitrag: j.klomfass
  Arduino Programm funktioniert auf nano nicht Arduino DMX Master 10 1.278 15.06.2020 13:07
Letzter Beitrag: Arduino DMX Master
  DMX Addresirung funktionirert nicht Arduino DMX Master 24 1.597 14.06.2020 15:38
Letzter Beitrag: Tommy56
  Arduino IDE läuft nicht mehr Rainer2 12 1.372 10.06.2020 12:04
Letzter Beitrag: Tommy56
  Arduino Programm Geht nicht mehr auf Arduino DMX Master 2 1.279 09.06.2020 20:13
Letzter Beitrag: Arduino DMX Master
  strcmp funktioniert nicht richtig Cano 7 796 25.04.2020 10:47
Letzter Beitrag: Cano
  SoftwareSerial.h und SD.h vertragen sich nicht sowerum 25 2.060 25.04.2020 10:46
Letzter Beitrag: hotsystems
  Fehler beim Kompilieren Lunge 6 753 09.04.2020 14:07
Letzter Beitrag: MicroBahner
  Sketch für WS2812 klappt nicht ThorstenP 9 1.023 02.04.2020 14:50
Letzter Beitrag: ThorstenP

Gehe zu:


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