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

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.

Schaltplan:

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!

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

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.

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.

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 einRechteckwellensignalmit 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).

Ein aktiver Summer kann automatisch Ton erzeugen, ohne einen externen Motivator, da er eine Treiberschaltung enthält, die nur eine
Gleichstromversorgungbenötigt. Sein Ton ist jedoch flach mit relativ fester Frequenz.
In diesem Experiment wird ein passiver Summer verwendet, um “Musik zu spielen”.
Schaltplan:

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!

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?

Code:

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

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
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

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

Sie können eine beliebige Frequenz auswählen.

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

Vollständiger Code:

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:

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!
