Hallo zusammen,
heute wollen wir Ihnen den ersten Beitrag von einem unserer neuen Autoren präsentieren - Jens Feldema.
Jens Feldema wird uns von nun an mit interessanten Projekten begleiten!
Viel Spaß beim Lesen!
Willkommen im Blog über den Motion-Sensor. Da die Bewegungserkennung zu den Grundfunktionen jedes Smart-Home-Systems gehört, möchte ich hier die Verkabelung und Verwendung eines Motion-Sensors anhand eines PIR-Sensors (Pyroelektrischer Sensor) beschreiben.
Benötigte Hardware
Anzahl | Bauteil | Anmerkung |
---|---|---|
1 | Breadboard | |
8 | Steckbrücken | |
1 | PIR-Sensor (HC-SR501) | |
1 | NodeMCU LUA Amica | |
1 | 5V Micro-USB-Netzteil | |
1 | LED-Leuchtdiode | |
1 | 200 Ohm Widerstand |
Die Teile
Schritt 1: Verkabelung
Die Stromversorgung wird am Ende über ein Micro-USB-Kabel der NodeMCU zugeführt. Damit auch die Komponenten mit Strom versorgt und die Signale ausgewertet werden können, starten wir mit der Verkabelung auf dem Breadboard.
Übersicht
NodeMCU | PIR-Sensor | LED |
---|---|---|
Vin | Vcc | |
GND | GND | - |
D7 | Output | |
D8 | + | + |
Zunächst wird der Power-Bus auf dem Breadboard mit der Stromversorgung verbunden. Da der Bewegungsmelder mit 5V betrieben werden möchte, wählen wir Vin (+), an dem wir 5V abfangen können und GND (-).
Schritt 2: PIR-Sensor anschließen
Die Beschriftung der Pins des Sensors HC-SR501 findet man unter der Fresnel-Linse, diese lässt sich leicht abziehen. Das Schöne an dem Sensor ist, dass der Ausgangspin in der Mitte nur 3,3V liefert und damit direkt an den kleinen Microcontroller angeschlossen werden kann. Aufpassen muss man bei der Spannungsversorgung, da es verschiedene Ausfertigungen gibt, die sich äußerlich kaum unterscheiden lassen. Schauen Sie deshalb auf die Beschriftung der Platine, die ggf. unterhalb der Fresnel-Linse liegen kann (siehe Bild).
PIR-Sensor Oberseite
Von unten betrachtet sind die Pins in folgender Reihenfolge angeordnet (siehe Bild): GND, Output (3,3V), Vcc (5V-20V).
Schritt 3: Leuchtdiode anschließen
Bitte beachten: Die Leuchtdiode hat ein längeres (+, Anode) und ein kürzeres (-, Kathode) Bein.
Schritt 5: Funktionstest
Folgende Arduino-Code müssen wir nun auf die NodeMCU hochladen.
Bei erkannter Bewegung wird nun die Leuchtdiode mit Strom versorgt und leuchtet für eine kurze Dauer. Diese Dauer lässt sich am PIR-Sensor über die Potentiometer einstellen (li. Empfindlichkeit, re. Haltedauer des Signals).
Die Software
INO-Code: int Status = 13; // Digital pin D7 int sensor = 14; // Digital pin D8 void setup() { // put your setup code here, to run once: Serial.begin(57600); pinMode(sensor, INPUT); // declare sensor as input pinMode(Status, OUTPUT); // declare LED as output } void loop() { // put your main code here, to run repeatedly: long state = digitalRead(sensor); if(state == HIGH) { digitalWrite (Status, HIGH); Serial.println("Motion detected!"); delay(1000); } else { digitalWrite (Status, LOW); Serial.println("Motion absent!"); delay(1000); } }
Viel Spaß beim Nachbau!
14 Kommentare
Andreas Wolter
@Reinhold Kwauka: Die Pins GND und VCC sind selbsterklärend. Der dritte Pin schaltet HIGH oder LOW, abhängig von der eingestellten Sensibilität und ob etwas detektiert wurde. Es gibt hier im Blogbereich noch den folgenden Beitrag, in dem das etwas genauer beschrieben wird:
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/dem-weihnachtsmann-auf-der-spur-sensoren-fur-die-uberwachung-des-kaminzimmers
Grüße,
Andreas Wolter
AZ-Delivery Blog
Reinhold Kwauka
Hallo,
gibt es irgendwo eine Erklärung bzw. Schaltbild über die einzelnen Pins des Motion Sensor?
Ich benutzte einen ESP32-Wrover ? Es wird zwar gezeigt, wie alles angeschlossen wird, aber vielleicht wäre es besser auch zu wissen, was die einzelnen Pins bedeuten.
Mfg,
Reinhold
Jens Feldema
Hallo, vielen Dank für die Kommentare und Hinweise.
Das mit dem Vorwiderstand hat sich durch das vertauschte Bild geklärt. Da das digitalRead nur High/Low zurück gibt ist als Typ auch boolean möglich. Für diesen kleinen Test war es unerheblich, kann aber bei größeren Projekten tatsächlich Speicher sparen.
Bei zukünftigen Projekten werde ich genauer auf Details achten. Zur Abstandsmessung ist ein “Motion-Sensor” leider nicht geeignet.
Gruß
Jens
Bernd Albrecht
Vielen Dank für die vielen Hinweise zum fehlenden Vorwiderstand auf dem Bild. Den Vorschlag für eine QS = Qualitätssicherung (engl. QA=quality assurance) haben wir tatsächlich schon seit drei Monaten bei den Blog-Beiträgen realisiert. Bei dem „Erstlingswerk“ unseres neuen Bloggers wurde der fehlende Vorwiderstand beanstandet, es wurde nachgebessert, aber auf der Zielgeraden vor der Veröffentlichung wurde das letzte Bild nicht ausgetauscht. Hier arbeiten Menschen. Aber wir werden besser. Versprochen!
Jürgen
Anmerkung zu Volvo: Abstandsmessung mit HC-SR501, ist “nicht so gedacht”.
Angegeben ist der Messbereich mit bis zu 7m bei 120Grad Winkel, aber das Messfeld sieht aus wie eine “Keule”. Rechts und links, vorn und hinten (oder oben/unten- je nach Einbaurichtung) ist er unempfindlicher.
Empfindlichkeit kann man wohl am Poti etwas einstellen.
Aber ausgewertet wird, ob sich der Messwert zwischen den Messungen ändert. Bleibe ich still stehen, “sieht” er mich nicht, auch nicht bei 30cm Abstand. Gehe ich nach 15 Min. seitlich weg, erkennt er eine Bewegung, und gibt Laut. Gehe ich gerade von dem Senor weg, erkennt er es auch nicht “so richtig gut”. Das alles wird durch die Linsenform beeinflusst.
Für die Kontaktzeit wäre er also bedingt (=ungenau) geeignet.
Bewegt sich der Sensor selbst, werden viele Wärmequellen erkannt, die sich bewegen. Das ist ihm zu aufregend, und dann wird er schüchtern und sagt nichts.
Ein HC-SR04 (UltraSchallmessung) kann aber Abstände bis ca. 4m sehr genau messen. Der ist aber mit seinem Messwinket “sehr schmal” und darum weiss man nicht wo der gerade “Mist”.
Wenn da eine Wand ist, ist das eine genaue Messung wert. Eine Person die vor der Wand steht, kann er nicht erkennen, sondern nur einen anderen Abstand messen.
Beide Sensoren können helfen, aber es fehlt noch die eindeutige Personenerkennung…
DigiPit
Echt jetzt? Eine LED ohne Vorwiderstand an D8? Die Leuchtet dann kurz sehr hell, brennt durch und nimmt die NodeMCU gleich mit ins Nirvana. Dank AZ-Delivery kann man ja schnell wieder eine nachbestellen. Ein Einsteiger wirft seine Bastelkiste so ziemlich schnell zum Elektroschrott.
Ist zwar toll, dass es bei AZ so viele interessante Blog-Beiträge und eBooks gibt, jedoch sind die meissten so voll mit teilweise groben Fehlern. Wo bleibt die QS????
Juergen
In der Hardwareliste ist ein 200Ohm Widerstand.
Auf den Bildern sehe ich den nicht. Um den Strom zu begrenzen, der im LED und am ESP32 fließt, wäre der in der Schaltung gut.
Typische LEDs aus der Bastelkiste nehmen 2mA bis 20mA auf. Bei 3,3V wären 820 Ohm (z.B. für kleine rote LEDs) bis 82 Ohm (große LED) als Vorwiederstand vorteilhaft. Sollte es ohne Strombegrenzung doch gut gehen … ok.
Sonst…. immer die dreier Packs ESP32 kaufen ;-)
Und dann den Block lesen “Elektrizitätslehre für Elektroniker Teil 1”. Da steht, dass ein ESP GPIO ca 15mA ( 0,015A) kann. Das gezeigte grüne LED kann evtl. mit 10mA aus kommen, möchte aber nur ca. 2V.
(Hier könnte ein 100 Pack LEDS im Produktportfolio aufgenommen werden ;-)
Für die Berechnung des Vorwiderstandes gibt auch einen guten Block (einfach “LED” in der Suche eingeben).
Oder testen, testen, testen.
Noch ein Praxis Tip: Immer eine Hand am Strom Stecker, und mit der anderen die Wärmeentwicklung an den Bauteilen prüfen.
Mindestens 10 Minuten lang, sollte kein Bauteil sehr warm werden!
Dann ist die Schaltung “gut berechnet” und und hält evtl. auch 15 Minuten.
Strom und Satiere passen nicht immer zusammen, bei beiden kann aber ein Funke überspringen.
RAINBOW
Danke!
Pit Gutzmann
Warum wird der Status als Variable vom Typ LONG deklariert? BOOL würde doch reichen, oder?
Armin
Warum ist die Variable state ein “long”, würde da nicht auch ein “bool” reichen?
Otto-Christian Zeides
Sehr anschaulich beschrieben. Leider sind die Pins D7/8vertauscht, oder passen nicht zum Programm.
Volov
Die Erklärung ist sehr plausibel. Wie ich verstehe erkennt der Bewegungsmelder die eine Änderung der Infrarotwärme in einem Raum. Ich habe Interesse an solche Sensoren, um ein Gerät für Abstandskontrolle 2 m bei Corona Pandemie zu bauen. Wie ich bei meinen Testen der Bewegungsmeldersensoren festgestellt habe erkennen diese Sensoren die Menschen wenn die Sensoren stationär installiert sind. Wenn zum Beispiel ein Bewegungsmelder auf einem mobilen Objekt installiert wird funktioniert der Sensor nicht korrekt.
J.-P. Paulsen
Der 200 Ohm Widerstand aus der Materialliste erschließt sich mit nicht ;-))
Matthias
Danke für den Beitrag. Aber da wäre natürlich noch die Sache mit dem Widerstand, der ja noch vor die LED gehört und auch in eurer Teileliste aufgeführt ist…