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!
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
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:
-
Ultraschall-Sensor (HC-SR04):
- VCC → 3V (vom ESP8266)
- GND → GND
- Trig → GPIO5 (D1)
- Echo → GPIO4 (D2)
-
Servo-Motor:
- VCC → 5V (vom ESP8266)
- GND → GND
- Signal → GPIO13 (D7)
-
OLED-Display (I2C):
- VCC → 3V (vom ESP8266)
- GND → GND
- SCL → GPIO14 (D5)
- SDA → GPIO12 (D6)
-
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
undU8g2lib.h
: Für das OLED-Display.#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 16NewPing 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 initialisierenvoid 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:
-
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.
-
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.
-
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.
-
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.
-