Willkommen auf meiner Website! In diesem Projekt zeige ich dir, wie du ein automatisches Parkhaustür-System mit einem Servo-Motor und einem Ultraschall-Sensor baust, das mithilfe des ESP8266 gesteuert wird. Mit diesem System kannst du eine Tür öffnen und schließen lassen, sobald ein Auto in der Nähe ist. Alles wird auf einem OLED-Display angezeigt, sodass du die Entfernung und den Status des Systems in Echtzeit überwachen kannst. Lass uns also loslegen!

Watch Now!

 

Benötigte Komponenten:

  • ESP8266 (z.B. NodeMCU)
  • Servo-Motor
  • Ultraschall-Sensor (HC-SR04)
  • OLED-Display (128x64)
  • 2 LEDs (Grün und Rot)
  • Jumper Kabel
  • Breadboard
  • Widerstände (für LEDs)

Schaltplan und Verdrahtung:

  1. Ultraschall-Sensor (HC-SR04):

    • VCC → 3V (vom ESP8266)
    • GND → GND
    • Trig → GPIO5 (D1)
    • Echo → GPIO4 (D2)
  2. Servo-Motor:

    • VCC → 5V (vom ESP8266)
    • GND → GND
    • Signal → GPIO13 (D7)
  3. OLED-Display (I2C):

    • VCC → 3V (vom ESP8266)
    • GND → GND
    • SCL → GPIO14 (D5)
    • SDA → GPIO12 (D6)
  4. LEDs (Grün und Rot):

    • Grüne LED → GPIO2 (D4)
    • Rote LED → GPIO16 (D0)

Schritt 1: Code und Bibliotheken

Der Code, den du für dieses Projekt benötigst, steuert den Servo-Motor, liest die Entfernung vom Ultraschall-Sensor und zeigt alle Daten auf dem OLED-Display an. Außerdem steuert der Code die grünen und roten LEDs, je nachdem, ob die Tür geöffnet oder geschlossen ist.

Wichtige Bibliotheken:

  • Servo.h: Zum Steuern des Servo-Motors.
  • NewPing.h: Für die Kommunikation mit dem Ultraschall-Sensor.
  • Wire.h und U8g2lib.h: Für das OLED-Display.

     

     

     

     

     

     

     

    Code-Erklärung:

     

    #include <Wire.h>
    #include <NewPing.h>
    #include <Servo.h>
    #include <U8g2lib.h>

    // Pin-Zuweisung
    #define TRIG_PIN 5
    #define ECHO_PIN 4
    #define MAX_DISTANCE 200
    #define SERVO_PIN 13
    #define GREEN_LED_PIN 2
    #define RED_LED_PIN 16

    NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE); // Ultraschall-Sensor initialisieren
    Servo servo; // Servo-Motor initialisieren
    U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, 14, 12, U8X8_PIN_NONE); // OLED-Display initialisieren

    void setup() {
      pinMode(GREEN_LED_PIN, OUTPUT);
      pinMode(RED_LED_PIN, OUTPUT);
      servo.attach(SERVO_PIN); // Servo an GPIO 13 anschließen
      servo.write(0); // Tür geschlossen (0 Grad)
      
      u8g2.begin(); // OLED starten
    }

    void loop() {
      int distance = sonar.ping_cm(); // Entfernung messen
      if (distance > 0 && distance <= 13) { // Wenn das Auto näher als 13 cm ist
        digitalWrite(GREEN_LED_PIN, HIGH); // Grüne LED an (Tür öffnet)
        digitalWrite(RED_LED_PIN, LOW); // Rote LED aus
        servo.write(150); // Tür öffnet sich auf 150 Grad
        countdown(); // 5 Sekunden Countdown starten
      } else {
        digitalWrite(GREEN_LED_PIN, LOW); // Grüne LED aus
        digitalWrite(RED_LED_PIN, HIGH); // Rote LED an (Tür geschlossen)
        servo.write(0); // Tür bleibt geschlossen (0 Grad)
      }
      
      showDistance(distance); // Entfernung auf OLED anzeigen
    }

    void countdown() {
      for (int i = 5; i >= 0; i--) {
        u8g2.clearBuffer();
        u8g2.setFont(u8g2_font_ncenB08_tr);
        u8g2.drawStr(0, 10, "Countdown:");
        u8g2.setCursor(0, 30);
        u8g2.print(i);
        u8g2.sendBuffer();
        delay(1000);
      }
      servo.write(0); // Tür nach 5 Sekunden schließen
    }

    void showDistance(int distance) {
      u8g2.clearBuffer();
      u8g2.setFont(u8g2_font_ncenB08_tr);
      u8g2.drawStr(0, 10, "Entfernung:");
      u8g2.setCursor(0, 25);
      u8g2.print(distance);
      u8g2.print(" cm");
      u8g2.sendBuffer();
    }

     

    Code-Erklärung:

    1. Ultraschall-Sensor (HC-SR04): Der Sensor misst kontinuierlich die Entfernung zum Auto. Wenn die Entfernung unter 13 cm liegt, öffnet sich die Tür. Der Wert für die maximale Entfernung ist auf 200 cm gesetzt.

    2. Servo-Motor: Wenn der Sensor ein Auto erkennt (Entfernung < 13 cm), dreht sich der Servo-Motor auf 150 Grad und öffnet die Tür. Nach 5 Sekunden wird die Tür wieder auf 0 Grad geschlossen.

    3. LEDs: Die grüne LED leuchtet, wenn die Tür geöffnet wird, und blinkt während des Countdowns. Die rote LED leuchtet, wenn die Tür geschlossen ist.

    4. OLED-Display: Zeigt die Entfernung des Autos in Echtzeit an. Während des Countdowns wird die verbleibende Zeit angezeigt.

    Fazit und Download:

    Das Projekt kombiniert einfache Hardware und Software, um eine smarte Parkhaustür zu erstellen, die sich automatisch öffnet, wenn ein Auto in der Nähe ist, und sich nach 5 Sekunden wieder schließt. Du kannst den vollständigen Code direkt von meiner Website hier herunterladen.

    Falls du Fragen hast oder Hilfe benötigst, hinterlasse einen Kommentar oder kontaktiere mich über das Kontaktformular.