4.3 Projekt: Alarmsystem

In diesem Projekt verwenden wir einen PIR-Bewegungssensor und einen Summer, um ein Alarmsystem zu erstellen, das über das ESP32-Entwicklungsboard gesteuert werden kann.

Wie funktioniert es? Die elektrischen Signale werden vom PIR-Bewegungssensor durch Programmierung in der KidsBlock IDE erkannt und gelesen, und dann wird festgestellt, ob eine Person anwesend ist. Wenn ja, schlägt der Summer Alarm. Auf diese Weise kostet dieses Alarmsystem für Familien und Büros viel weniger.


4.3.1 Flussdiagramm

image-20230606102303743


4.3.2 PIR-Bewegungssensor

Beschreibung:

Ein PIR-Bewegungssensor erkennt die Anwesenheit einer Person, indem er die vom menschlichen Körper abgegebene Wärme wahrnimmt.

Darüber hinaus ist dieser Sensor klein und einfach zu bedienen.

img


Schaltplan:

img

Parameter:

  • Spannung: 3~5V

  • Strom: 3.6mA

  • Leistung: 18mW

  • Blickwinkel: Y = 90°, X = 110° (theoretischer Wert)

  • Erfassungsabstand: ≤5m


Schaltplan:

Verbinden Sie den PIR-Bewegungssensor mit io23.

Achtung: Verbinden Sie Gelb mit S (Signal), Rot mit V (Power) und Schwarz mit GND. Nicht vertauschen!

img


Testcode:

Lesen Sie den Wert an Pin IO23, um festzustellen, ob eine menschliche Bewegung vorliegt.

image-20250423083305405

Testergebnis:

Öffnen Sie den seriellen Monitor.

Wenn sich jemand im Bereich befindet, wird Someone auf dem Monitor angezeigt und die rote LED am Sensor erlischt. Wenn jedoch niemand da ist, wird No one gedruckt und die LED bleibt immer an.

ACHTUNG: Der PIR-Bewegungssensor kann keine Gegenstände durchdringen, decken Sie den Sensor daher bei der Bewegungserkennung nicht ab.

img


4.3.3 Summer

Beschreibung:

Ein Summer ist ein elektronischer Tonerzeuger, der Töne mit unterschiedlichen Frequenzen und Dauern aussendet und mit Gleichspannung betrieben wird. Daher kann er als Erinnerung oder Alarm in zahlreichen elektronischen Geräten wie Computern, Druckern, Kopierern, Alarmen, elektronischem Spielzeug, Automobilelektronik, Telefonen und Timern verwendet werden.

img


Ein Summer besteht aus einem Vibrationsgerät und einem Resonanzgerät. Es gibt zwei Kategorien: Passive Summer und aktive Summer.

  • Ein passiver Summer kann nicht selbst vibrieren, um Ton zu erzeugen, es sei denn, es wird ein Rechteckwellensignal mit einer bestimmten Frequenz angelegt. Darüber hinaus variiert der emittierte Ton aufgrund der unterschiedlichen Frequenz der Rechteckwelle, sodass ein passiver Summer Melodien simulieren kann.

  • Eine analoge Rechteckwelle kann durch Ändern des Leistungspegels an den Pins erzeugt werden. Zum Beispiel, nachdem der hohe Pegel 500 ms lang anhält, wechselt er für weitere 500 ms zu einem niedrigen Pegel und dann wieder zu einem hohen Pegel…

  • Wir treiben den Summer über eine Rechteckwelle innerhalb von 200~5000Hz an, und wir können die Frequenz (f) berechnen: f=1/T; T ist die Periode (die Gesamtzeit von hohem und niedrigem Pegel).

img

  • Ein aktiver Summer kann automatisch Ton erzeugen, ohne einen externen Motivator, da er eine Treiberschaltung enthält, die nur eine Gleichstromversorgung benötigt. Sein Ton ist jedoch flach mit relativ fester Frequenz.


In diesem Experiment wird ein passiver Summer verwendet, um “Musik zu spielen”.


Schaltplan:

img

Parameter:

  • Spannung: 3~5V

  • Strom: ≤5mA

  • Leistung: ≤25mW


Schaltplan:

Verbinden Sie den Summer mit io16.

Achtung: Verbinden Sie Gelb mit S (Signal), Rot mit V (Power) und Schwarz mit GND. Nicht vertauschen!

img


Testcode:

Methode 1: Analoge Rechteckwelle

Ein passiver Summer wird durch Rechteckwellen angesteuert, daher simulieren wir die Welle.

Eine analoge Rechteckwelle kann durch Ändern des Leistungspegels des Pins erzeugt werden: hoher Pegel für 500us und niedriger Pegel für 500us. So wird der Summer Ton erzeugen. Auch die Dauern können die Lautstärke anpassen.

Bitte versuchen Sie 1000us, 1500us, 3000us… Was ist der Unterschied?

img

Code:

img

  • In der delay-Funktion ist die Zeiteinheit us Mikrosekunden. Der folgende Block stellt also eine Verzögerung von 500 ms dar.

img

Gemäß Formel:

Somit beträgt die Dauer 500us, und wir können die Frequenz = 2kHz berechnen, d.h. der hohe und niedrige Pegel wechseln 2000 Mal pro Sekunde.


Methode 2: Lautsprecherblöcke

Wir verwenden die Speaker image24 Codeblöcke, um den Summer zum Vibrieren anzusteuern.

Speaker Blocks erzeugt ein PWM-Signal mit einer bestimmten Frequenz, um den Summer zum Vibrieren anzusteuern, und die Dauer und der Ton werden durch entsprechende Parameter gesteuert.

Es gibt zwei Möglichkeiten, die Dauer zu definieren. Eine besteht darin, die Parameter der tone()-Funktion anzupassen, um eine Dauer festzulegen, und die andere besteht darin, eine noTone()-Funktion zu verwenden, um den Ton direkt zu stoppen. Wenn Sie in tone() keine Dauer definieren, wird das Tonsignal immer erzeugt, es sei denn, eine noTone() stoppt es.

Für das ESP32-Board kann nur ein Ton gleichzeitig erzeugt werden. Wenn ein Pin des ESP32 über tone() ein Tonsignal erzeugt, ist es nicht akzeptabel, mit dieser Funktion an einem anderen Pin Ton zu erzeugen.

Ton-Tabelle

img

Code:

  • Ziehen Sie einen “Tone”-Block von image25 wie unten gezeigt und stellen Sie den Pin auf IO16 ein.

img

  • Sie können eine beliebige Frequenz auswählen.

img

  • No Tone: Wird verwendet, um alle Töne auszuschalten.

img

Vollständiger Code:

img

Testergebnis:

Methode 1: Summer gibt kontinuierlich Ton ab.

Methode 2: Summer alarmiert über die tone()-Funktion.


Erweiterung: Musik abspielen

Spielen Sie Musik über tone().

Vollständiger Code:

img


4.3.4 Alarmsystem

In diesem Experiment werden wir ein Alarmsystem aus einem PIR-Bewegungssensor, einem Summer und einer LED aufbauen. Wenn der Sensor eine Bewegung erkennt, gibt der Summer einen Ton ab und die LED blinkt, um auf eine Invasion hinzuweisen.


Schaltplan:

Verbinden Sie den PIR-Bewegungssensor mit io23, den Summer mit io16 und die LED mit io27.

Achtung: Verbinden Sie Gelb mit S (Signal), Rot mit V (Power) und Schwarz mit GND. Nicht vertauschen!

img