Moeglichkeiten zur Fahrzeugerkennung in der Garage

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • tholle
    MS Profi
    • 26.08.2015
    • 830

    #1

    Moeglichkeiten zur Fahrzeugerkennung in der Garage

    Hi Leute,

    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
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11237

    #2
    Gar keine, aber ein Ultraschallsensor wie für die Zisterne an der Decke oder Wand würdewahrscheinlich funktionieren.
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar

    • tholle
      MS Profi
      • 26.08.2015
      • 830

      #3
      Ja, US habe ich auch im Auge.

      z.B. https://www.mikrocontroller.net/atta...hreibung_3.pdf <-- wobei ich hier noch nicht weiss, wie ich den an die Loxone angebunden bekomme. Gerade beim Berechnen des Pegels weiss ich nicht, ob die schwachen Pegel von der Loxone erkannt werden.

      Oder diesen Bausatz:
      https://www.pollin.de/productdownloads/D580014D.PDF <-- hier koennte man den LED-Ausgang auf einen analogen Eingang in der Loxone legen und somit eine Fahrzeugerkennung realisieren.

      Das muesste doch gehen, oder?

      thx und Gruss,
      tholle

      Kommentar

      • hismastersvoice
        Supermoderator
        • 25.08.2015
        • 7318

        #4
        Ich habe das mit einem Arduino und Ultraschall Messung gemacht. In dem Fall würde ich einen Wemos D1 Mini nehmen und 1,2 Ultraschall Module für den Arduino. Da hast alles für 20-25€ und er kann bei Erkennukng Anwesend/Anwesend eine Meldung per UDP senden.

        Ich hatte es so gemacht wenn das Maß kleiner als Entfernung zum Boden (10cm Reserve) ist, ist ein Fahrzeug da ansonsten nicht.
        Einziger Nachteil... reagiert auch auf Personen deswegen habe ich eine Zeitverzögerung von 5 Sekunden wenn jemand vorbei läuft.
        Kein Support per PN!

        Kommentar

        • Labmaster
          Lox Guru
          • 20.01.2017
          • 2585

          #5
          Wie wäre es mal mit OpenCV ?

          This guide will show you how to install OpenCV 3 with Python 2.7 and Python 3 bindings on your Raspberry Pi running Raspbian Stretch.

          Kommentar

          • miqa
            MS Profi
            • 03.06.2016
            • 774

            #6
            Ich hab mir einen aus dieser Reihe bestellt (welchen genau weiß ich grad nicht). Allerdings auch noch nicht montiert. Daher kann ich noch nichts zur Qualität oder grundsätzlichen Funktion sagen.

            Access the LV-MaxSonar-EZ ultrasonic sensor datasheet for detailed specs and applications. MaxBotix provides reliable and precise sensor solutions.
            Zuletzt geändert von miqa; 04.01.2018, 13:18.

            Kommentar


            • tholle
              tholle kommentierte
              Kommentar bearbeiten
              Welchen genau meinst du? Die von @histmastersvoice Vorgeschlagenen oder welche?

            • miqa
              miqa kommentierte
              Kommentar bearbeiten
              Ups. Link vergessen. Hab ich oben ergänzt.
          • dizzy85
            MS Profi
            • 08.12.2015
            • 695

            #7
            Ich mache es ein wenig anders....
            Nutze für Anwesenheitssachen den Loxberry mit BLE Scanner. Bluetooth Tag ins Auto legen und fertig.

            Kommentar

            • dizzy85
              MS Profi
              • 08.12.2015
              • 695

              #8
              Oder was bei ich mal bei einem Freund gemacht habe.Falls "AIR" vorhanden ist : Einfach eine Remote ins Auto legen. Online Status der Remote abfragen und sobald die Online ist (geht relativ zügig) ist quasi auch das Auto da. Kumpel steuert mit der Remote auch sein Garagentor etc.

              Kommentar


              • miqa
                miqa kommentierte
                Kommentar bearbeiten
                Wie sicher wird denn insbesondere Abwesenheit von der Air Remote erkannt? Einige User hier im Forum diskutieren ja darüber das es, zumindest bei den Feuermeldern, teilweise mehrere Stunden dauert bis der Status auf inaktiv wechselt.

              • Smart
                Smart kommentierte
                Kommentar bearbeiten
                Das würde mich auch interessieren!
            • hismastersvoice
              Supermoderator
              • 25.08.2015
              • 7318

              #9
              Habe über die Tage mal den Code sauber gemacht für die Erkennung der Fahrzeuge in meiner Garage...
              Ich nutze Sensor1 um die Öffnungsweite des Garagentor zu messen, Sensor 2 und 3 um zu erkennen ob ein Fahrzeug in der Garage steht.
              Die gemessene Abstände werden bei Änderung X (difference_val) an den MiniServer gesendet, dort kann man diese dann weiter verarbeiten.

              Achtung:
              Wenn einer der 3 Sensoren nicht verwendet wird, muss dieser auf 0 stehen!
              Anderenfalls wird der Durchlauf verlangsamt und Mess-Zeiten unter einer Sekunde sind nicht mehr möglich.

              Teile:
              Wemos D1 Mini
              1-3 HC-SR4 Sensoren

              Preis mit 3 Sensoren ohne Gehäuse ca. 15€


              Code:
              #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);
              }
              Zuletzt geändert von hismastersvoice; 19.01.2018, 21:41.
              Kein Support per PN!

              Kommentar


              • tholle
                tholle kommentierte
                Kommentar bearbeiten
                Das ist mal sehr cool. Ich bin in der Arduino-Welt ja noch relativ neu, wie du weisst. Find's aber extrem geil. Ich habe mir jetzt 3 Nanos besorgt und wuerde diese gern via LAN-Anschluss mit dem MS reden lassen. Kannst du mir fuer die Nanos ein LAN-Modul empfehlen? Ich lese ueber die gaengigen Moduel, die so ueber Amazon vertrieben werden, teilweise widerspruechliche Angaben. Mache gehen angeblich mit 5V, dann nur mit 3,3V. Andere sagen, die werden extrem heiss, bla bla.. Vielleicht kannst du mir ja aus Erfahrung ein geeignetes Modul empfehlen.

                LAN deswegen, weil das WLAN von meiner Garage nicht bis zum Haus reicht. Aber ich habe in beiden Garagen ein LAN-Kable liegen.

                Gruss,
                tholle

              • hismastersvoice
                hismastersvoice kommentierte
                Kommentar bearbeiten
                Ich hatte bis jetzt meist das W5100 verwendet.
                Das verbraucht aber recht viel Strom. (0.8W), ist dafür aber billig und gut zu besorgen.

                Inzwischen nehme ich WIZ820io/w5200, der ist zwar deutlich teuer, braucht aber auch nur die Hälfte an Energie. Dazu ist er viel kleiner. In China gibt es ihn aber auch schon für 9-10€.

                Was du aber kpl. vergessen kannst ist der ENC28J60 Chip. Der verheizt 1,2W und wird in der Tat reicht warm.
                Funktioniert aber auch, und ist sehr billig. Habe ihn vor Jahren einmal getestet, seit dem liegt er in der Bastelkiste.

                Du kannst übrigens die Arduinos miteinsnder reden lassen zB über Serial/Modbus... So brauchst du in einem Raum evtl. nur einmal Netzwerk und ein Arduino dient quasi als Server.

              • tholle
                tholle kommentierte
                Kommentar bearbeiten
                Vielen Dank!

                Gruss,
                tholle
            Lädt...