Hardware - Mini-IR-Modul AM312

Dieser - wirklich kleine - Infrarot-Bewegungsmelder eignet sich gut für bewegungsgesteuerte Projekte - allerdings ist die Reichweite des Sensors grössenbedingt eingeschränkt.

Dafür passt er in fast jedes Mini-Gehäuse, wo auch ein ESP reinpasst...

Die Platine hat folgende Anschlüsse:

VIN und GNDhiermit wird der Sensor mit Strom versorgt, aufgrund des geringen Stromverbrauchs könnt ihr ihn direkt von den 3.5/5V Anschlüssen des ESP aus betreiben
OUThier gibt der Sensor ein Signal aus, wenn er etwas detektiert hat, ihr führt es auf einen PIN am ESP..

Man kann den Sensor sehr gut nutzen, um z.B. den ESP aus dem "Tiefschlaf" zu wecken, damit er dann Aktionen ausführt.

Hier ein kleines Programm für den ESP32..

(Achtung - der Text [code].....[/code] gehört NICHT zum Programm..)

[code]
// der Infrarotsensor gibt ein Signal auf seinem PIN OUT aus - dies wird
// hier auf PIN 13 des ESP abgefragt...


// Bibliotheken

  #include "driver/rtc_io.h"


// Definitionen......

  // keine...wir greifen direkt auf den PIN zu...



// erste Einstellungen.... diesmal als Arbeitsschleife nach jedem Aufwecken

void setup() {

    Serial.begin(115200);             // Verbindung zum seriellen Monitor
                                      // der Arduino-Oberfläche - der Wert muss passen)
 
    pinMode(13, INPUT);               // Modus des PIN's einstellen
 
  
    // jetzt die abzuarbeitenden Befehle - hier nur eine Meldung
    // auf den seriellen Monitor in der Arduino-Oberfläche....

    Serial.println (" jetzt arbeite ich - gleich schlafe ich....");
    delay(1000);  // optional 1 sek warten



    // jetzt die Definition für den Tiefschlaf...
    esp_sleep_enable_ext0_wakeup(GPIO_NUM_13, 1);  // wache auf, wenn der PIN 13 vom PIR Signal bekommt...
    esp_deep_sleep_start();                        // und der Schlaf-Befehl....
    Serial.println("Wird nicht mehr ausgegeben");  // da er ja schläft...
  
  } // Ende setup



// Dauerschleife.....  die wird diesmal nicht genutzt...

void loop() {
  // ....

  } // Ende loop
[/code]

Probiert es doch einfach aus....

zurück zur Startseite