sketch_64_espmaster_I2C_zaehlen   (ESP8266 NodeMCU)

sketch_64_espmaster_I2C_zaehlen
  /*Senden (write) von Daten ueber die I2C serielle Schnittstelle von ESP8266 NodeMCU zu Arduino Nano und zurueck.
  ESP fungiert als Master, Nano als Slave.
  ESP sendet jede Sekunde die Zeichenfolge "Wert ist jetzt: " sowie einen Zahlenwert 0...255.
  Im Gegenzug sendet Nano die Zeichenfolge "Hello ESP from Nano! ". 
  Diese Daten werden jeweils im seriellen Monitor angezeigt(fuer die Anzeige das jeweilige COM-Port auswaehlen).  
  SDA (Serial Data):  ESP Pin D2 - Nano Pin A4
  SCL (Serial Clock): ESP Pin D1 - Nano Pin A5
  Auf ESP wird dieser sketch geladen, auf Nano sketch_65_I2C_nanoslave_zaehlen.
    
  Die Spannungsversorgung von ESP als auch von Nano erfolgt ueber USB-Kabel.
  Beachte, fuer diesen Sketch muss bei "Werkzeugen" eingetragen sein:
  Board "NodeMCU 1.0" und das richtige COM-Port. 
  */
  #include <Wire.h>                 // Das Bibliotheksprogramm steht unter: arduino-1.8.8\hardware\arduino\avr\libraries\Wire
  byte wert = 0;                    // Variable "wert" wird definiert, sie kann ein Byte (0...255) aufnehmen
  
  void setup()
  {
  Wire.begin();                     // Initialisierung der Library Wire.h 
  Serial.begin (9600);              // Start des seriellen Monitors zur Anzeige der vom Slave (Nano) empfangenen Daten
  }
  
  void loop()
  {
  /*Senden zum Slave:*/
  Wire.beginTransmission(8);        // Vorbereiten Senden ; Empfaenger-Adresse des Slave ist #8 (dezimal), festgelegt im sketch_65
  Wire.write("Wert ist jetzt: ");   // Schreiben in den Sendepuffer von 16 Bytes Zeichenfolge(String). Auch moeglich: Wire.send
  Wire.write(wert);                 // Schreiben in den Sendepuffer von 1 Byte (aktueller Wert) 
  Wire.endTransmission();           // Jetzt erst Senden aller Bytes aus dem Sendepuffer des ESP, dann Stop der Uebertragung
  wert++;                           // Wert erhoehen
  delay(1000);                      // Warten 1 Sek, dann beginnt der Sendeablauf erneut
  
  /*Empfangen vom Slave:*/
  Wire.requestFrom(8,21);           // Anfragen und Lesen vom Slave, Adresse #8 , 21 Zeichen (max 32 Zeichen moeglich)
  while(Wire.available())
   {
   char c = Wire.read();
   Serial.print(c);
   }
  Serial.println();
  delay(1000);
  }