ich bin auf der Suche nach einer Moeglichkeit, ein anwesendes Fahrzeug zu erkennen.
Welche Moeglichkeit, von IR-Schranke einmal abgesehen, nutzt ihr dafuer?
Thx und Gruss,
tholle
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <WiFiUdp.h> //WIFI-SSID + Password const char* ssid = "WIFI-SSID"; const char* password = "PASSWORD"; //IP + UDP-Port MiniServer IPAddress RecipientIP(192, 168, 1, 1); unsigned int RecipientPort = 7000; //Sensor 0 int sensor_0 = 1; //0 = off / 1=on short difference_val_0 = 3; //Difference (cm) to send changes to MiniServer //Sensor 1 int sensor_1 = 0; //0 = off / 1=on short difference_val_1 = 50; //Difference (cm) to send changes to MiniServer //Sensor 2 int sensor_2 = 0; //0 = off / 1=on short difference_val_2 = 50; //Difference (cm) to send changes to MiniServer //Looptime (miliseconds) int looptime = 1000; //1000ms = meassurement every second //Debug (Serial-Monitor) int DEBUG = 0; //0 = off / 1=on //no need to change WiFiUDP Udp; long duration0 = 0, distance0 = 0, duration1 = 0, distance1 = 0, duration2 = 0, distance2 = 0; long distance0_old = 0, distance1_old = 0, distance2_old = 0; long calc0 = 0, calc1 = 0, calc2 = 0; #define echoPin0 D3 // Echo Pin #define trigPin0 D2 // Trigger Pin #define echoPin1 D5 // Echo Pin #define trigPin1 D4 // Trigger Pin #define echoPin2 D7 // Echo Pin #define trigPin2 D6 // Trigger Pin void setup(void) { Serial.begin(115200); pinMode(trigPin0, OUTPUT); pinMode(echoPin0, INPUT); pinMode(trigPin1, OUTPUT); pinMode(echoPin1, INPUT); pinMode(trigPin2, OUTPUT); pinMode(echoPin2, INPUT); WiFi.begin(ssid, password); Serial.println(""); // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); } void loop() { /* The following trigPin/echoPin cycle is used to determine the distance of the nearest object by bouncing soundwaves off of it. */ if (sensor_0 == 1) { digitalWrite(trigPin0, LOW); } if (sensor_1 == 1) { digitalWrite(trigPin1, LOW); } if (sensor_2 == 1) { digitalWrite(trigPin2, LOW); } delayMicroseconds(2); if (sensor_0 == 1) { digitalWrite(trigPin0, HIGH); } if (sensor_1 == 1) { digitalWrite(trigPin1, HIGH); } if (sensor_2 == 1) { digitalWrite(trigPin2, HIGH); } delayMicroseconds(10); if (sensor_0 == 1) { digitalWrite(trigPin0, LOW); duration0 = pulseIn(echoPin0, HIGH); } if (sensor_1 == 1) { digitalWrite(trigPin1, LOW); duration1 = pulseIn(echoPin1, HIGH); } if (sensor_2 == 1) { digitalWrite(trigPin2, LOW); duration2 = pulseIn(echoPin2, HIGH); } //Calculate the distance (cm) distance0 = duration0 / 58.2; distance1 = duration1 / 58.2; distance2 = duration2 / 58.2; if (DEBUG == 1) { Serial.print("0: "); Serial.print(distance0); Serial.print(" / "); Serial.println(distance0_old); Serial.print("1: "); Serial.print(distance1); Serial.print(" / "); Serial.println(distance1_old); Serial.print("2: "); Serial.print(distance2); Serial.print(" / "); Serial.println(distance2_old); } //calculate difference last to new meassure calc0 = distance0_old - distance0; calc1 = distance1_old - distance1; calc2 = distance2_old - distance2; //store last result distance0_old = distance0; distance1_old = distance1; distance2_old = distance2; //write long to char char buffer[50]; snprintf(buffer, sizeof(buffer), "sensor1=%d sensor2=%d sensor3=%d", distance0, distance1, distance2); if ((abs(calc0) > difference_val_0)) { sendUDP(buffer); } if ((abs(calc1) > difference_val_1)) { sendUDP(buffer); } if ((abs(calc2) > difference_val_2)) { sendUDP(buffer); } delay(looptime); } //UDP-Befehl senden void sendUDP(String text) { Udp.beginPacket(RecipientIP, RecipientPort); Udp.print(text); Udp.endPacket(); if (DEBUG == 1) { Serial.print("UDP-Send to MiniServer: "); Serial.println(text); } delay(10); }
Wir verarbeiten personenbezogene Daten über Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen, Werbung zu personalisieren und Websiteaktivitäten zu analysieren. Wir können bestimmte Informationen über unsere Nutzer mit unseren Werbe- und Analysepartnern teilen. Weitere Einzelheiten finden Sie in unserer Datenschutzrichtlinie.
Wenn Sie unten auf "Einverstanden" klicken, stimmen Sie unserer Datenschutzrichtlinie und unseren Datenverarbeitungs- und Cookie-Praktiken wie dort beschrieben zu. Sie erkennen außerdem an, dass dieses Forum möglicherweise außerhalb Ihres Landes gehostet wird und Sie der Erhebung, Speicherung und Verarbeitung Ihrer Daten in dem Land, in dem dieses Forum gehostet wird, zustimmen.
Kommentar