D1 Mini Shield – PIR (Bewegungssensor)

Last Updated on 15. Oktober 2026 by sfambachLink-Status: OK

Diese Zusatzplatine hat einen kleinen Bewegungssensor on Board. Der Sensor hat eine leichte Verzögerung und ist bei Auslieferung mit dem D3 Pin des D1 Mini verbunden.

Zum D1 mini ESP8266 und ESP 32 gehts hier lang:

Fakten

  • Bewegungssensor
  • Pin-Auswahl per Lötbrücke auf Rückseite möglich
BeschreibungNameD1ESP32S2C3
Bewegung registriertDataD3 (voreingestellt)17187
Eingebaute LEDLED2227!

SchaltplanLink-Status: OK

Kompatibilität

D1 TypKompatibelBegründung, wenn nicht
D1 miniBedingtD3 = IO 0 => Shield muss beim Booten ausgesteckt werden
D1 mini ProJaNicht getestet
D1 mini LiteJaNicht getestet
D1 32Ja
S2 miniJa
C3BedingtD7 ist auch der Port für die LED
Kompatibilität zu den D1 Boards

Anwendungsbereiche

  • Bewegungsmelder
  • Berührungsloses Schalten

Ansichten

Programmierung

Bibliotheken

Arduino ESP32 Bibliothek V2.0.2

Arduino ESP8266 Bibliothek V3.0.2

Testprogramm

Quellcode PirExample.ino (GitHubLink-Status: OK)

/**
   Example for pir sensor

   Written by S. Famach GPL2
   Visit https://www.fambach.net
*/

// keeps the output 5 seconds on
#define OUTPUT_ON_TIME_S 5

// output pin +
// pin where the pir is connected
#if defined(ESP8266) // d1 mini
#pragma message("ESP8266 Remove Shield while start!")
#define PIR_PIN D3
#define OUTPUT_PIN 2

#elif defined ( ESP32 ) // d1 mini esp32
#if CONFIG_IDF_TARGET_ESP32C3 // c3
#pragma message("ESP32C3")
#define PIR_PIN 7
#define OUTPUT_PIN -1 // build in led is pin 7 ;)

#elif CONFIG_IDF_TARGET_ESP32S2
#pragma message("ESP32S2")
#define PIR_PIN 18
#define OUTPUT_PIN 2

#else
#pragma message("ESP32")
#define PIR_PIN 17
#define OUTPUT_PIN 2

#endif
#else
#error "Unknown board"
#define PIR_PIN -1
#define OUTPUT_PIN -1

#endif

void setup() {
  Serial.begin(115200);

  pinMode(PIR_PIN, INPUT);
  pinMode(OUTPUT_PIN, OUTPUT);
  delay(2000);
  Serial.println(F("Started"));
}

long timestamp = millis();
boolean swon = false;
boolean rec = false;


void loop() {

  // check pir pin
  if (digitalRead(PIR_PIN)) {
    
    timestamp = millis(); // refresh timestamp
    if (!swon) {
      Serial.println(F("Switch LED on"));
      digitalWrite(OUTPUT_PIN, HIGH);
      swon = true;
      
    }

    if(!rec){
      rec = true;
      Serial.print(F("Pir is on ..."));
    }
  } else {

    // switch off light if timeout is over
    if ( (millis() - timestamp ) > (OUTPUT_ON_TIME_S * 1000) && swon) {
      Serial.println(F("Switch LED OFF"));
      digitalWrite(OUTPUT_PIN, LOW);
      swon = false;
    }

    if(rec){
      rec = false;
      Serial.println(F("... off"));
    }
  }
}

Probleme

Booten oder Programmierung nicht möglich

Gerade beim D1 Mini liegt der PIR auf dem GPIO 0, welcher beim Booten im richtigen Zustand sein muss. Ist der PIR eingestöpselt, funktioniert dies leider bei mir nicht. Somit folgendes Vorgehen:

  • ESP programmieren
  • ESP booten
  • PIR aufstecken (vorsichtig, keinen Kurzschluss verursachen)

Fazit

Der PIR macht, was er soll, allerdings stört die Verzögerung beim Ausschalten etwas. Schöner wäre es hier, keine Verzögerung zu haben und diese selbst zu programmieren.

Weitere Beiträge

Andere Shields

Mehr ESPs

Quellen

Quellen zum Shield

HerstellerseiteLink-Status: OK

https://www.wemos.cc/en/latest/_static/files/sch_pir_v1.0.0.pdfLink-Status: OK

Arduino BeispieleLink-Status: OK

Quellen zu den Boards

HerstellerseiteLink-Status: OK

SchaltplanLink-Status: OK

CH340 USB TreiberLink-Status: OK

https://arduino-projekte.info/wemos-d1-mini/Link-Status: OK

https://www.exp-tech.de/plattformen/esp8266/entwicklungsboards/8898/wemos-d1-miniLink-Status: Kaputt

DatumÄnderungAutor
15.10.2026Beispielcode als Code-Block eingefügt (Einbettung über gist-it.appspot.com funktionierte nicht mehr)sfambach
08.10.2026Überschriften-Hierarchie korrigiert (H1→H2, Unterebenen eine Stufe tiefer)sfambach
03.10.2026Rechtschreibung korrigiert: Tippfehler, Kommas, Groß-/Kleinschreibung, Formulierungen
Log-Liste eingefügt
sfambach
16.04.2022Beitrag erstelltsfambach
Logbuch

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert