hallo leute,
ich habe auf einem esp32 mit display eine stoppuhr für z.b.sprintmessungen laufen. wenn ich lichtschranken direkt anschließe funktioniert das auch super.
nun möchte ich aber mindestens 2 (später auch 3 für zwischenzeiten) weitere esp32 an denen die lichtschranken angeschlossen sind mit dem esp32 wo die stoppuhr läuft per wifi verbinden.
zum verständnis:
also z.b. pin8 vom 1. esp32(startlichtschranke) sendet an pin 18 des master-esp32 somit startet die stoppuhr.
dann sendet pin8 vom 2. esp32(ziellichtschranke) an den pin 19 des master-esp32, somit stoppt die stoppuhr.
wie müsste ich meinen vorhanden stoppuhr-sketch erweitern, damit das so laufen würde?
was müsste auf den sender-esp´s laufen, damit die die pinwerte an den master-esp senden können?
würde mich sehr über hilfe freuen.
den stopuhren-sketch hänge ich mit dran.
lg hardy
#include "SSD1306.h"
SSD1306 display(0x3c, 4, 15);
void setup() {
pinMode(16,OUTPUT); digitalWrite(16, LOW); delay(50); digitalWrite(16, HIGH);
display.init();
Serial.begin(115200);
display.clear();
display.setFont(ArialMT_Plain_16);
display.display();
}
unsigned MessungNr = 0;
void loop()
{
unsigned long Zeit = 0;
unsigned long Start = 0;
unsigned long Ende = 0;
float s = 0;
/*************************************************************************************
READY
FREIGABE
**************************************************************************************/
Serial.println();
Serial.println("Startfreigabe ");
// M-Nr: ### send to display
// Messung Nr. und Freigabe auf Display senden
display.clear();
display.drawString(0,0,"M-Nr: ");
int(MessungNr++);
display.drawString(50,0, String (MessungNr));
display.drawString(0,32,"Freigabe");
display.display();
/*************************************************************************************
Wait for START
Warten auf Messung START
**************************************************************************************/
while (digitalRead(0) == HIGH)
{
yield(); //warten fuer ESP8266
}
Start = millis();
Serial.print("gestartet Messung Nr.: ");
Serial.print(MessungNr);
// started send to display
// gestartet auf Display senden
display.clear();
display.drawString(0,0,"M-Nr: ");
display.print(MessungNr);
display.drawString(0,32,"gestartet");
display.display();
// wait for second wheel
// Draisine hat zwei Raeder
delay(2000);
/*************************************************************************************
// Waiting for FINISH
// Warten auf ZIEL
**************************************************************************************/
while (digitalRead(0) == HIGH)
{
Ende = millis();
Zeit = (Ende - Start);
s=Zeit;
s=s/1000;
// Result send to display
// Zeit auf Display senden
display.clear();
display.drawString(0,0,"E-Nr: ");
display.drawString(50,0, String (MessungNr));
display.drawString(0,30,String (s,2));
display.drawString(60,30,"s");
display.display();
}
//ERGEBNIS
Serial.print(" Ergebnis ");
Serial.print(s,3);
Serial.println("s");
display.clear();
display.drawString(0,0, "E-Nr: ");
display.drawString(50,0, String (MessungNr));
display.drawString(0,30,String (s,3));
display.drawString(60,30, "s");
display.display();
/*************************************************************************************
// Display RESULT for two seconds --> Button
// Ergebnisanzeige fuer mindestens 2s bis Taster betaetigt werden kann
*************************************************************************************/
delay(2000);
// RESULTS accepted
// Datenuebernahme mit Taster bestaetigen
while(digitalRead(0) ==HIGH)
{
yield(); //warten
}
// send WAIT to display
// Warten an Display senden
display.clear();
display.drawString(0,0,"WARTEN");
display.display();
delay(2000);
}