4.3 Project: Alarmsysteem
In dit project gebruiken we een PIR-bewegingssensor en een zoemer om een alarmsysteem samen te stellen, dat kan worden bestuurd door het ESP32-ontwikkelbord.
Hoe werkt het? De elektrische signalen worden gedetecteerd en gelezen door de PIR-bewegingssensor via programmering op KidsBlock IDE, en vervolgens bepaalt het of er een persoon is. Als dat zo is, slaat de zoemer alarm. Op deze manier kost dit alarmsysteem veel minder voor gezinnen en kantoren.
4.3.1 Stroomdiagram

4.3.2 PIR-bewegingssensor
Beschrijving:
Een PIR-bewegingssensor detecteert de aanwezigheid van een persoon door de warmte te detecteren die door het menselijk lichaam wordt afgegeven.
Bovendien is deze sensor klein en gemakkelijk te gebruiken.

Schematisch diagram:

Parameters:
Spanning: 3~5V
Stroom: 3.6mA
Vermogen: 18mW
Kijkhoek: Y = 90°, X = 110° (theoretische waarde)
Detectieafstand: ≤5m
Bedradingsschema:
Sluit de PIR-bewegingssensor aan op io23.
Let op: Sluit geel aan op S(Signaal), rood op V(Voeding) en zwart op GND. Draai ze niet om!

Testcode:
Lees de waarde op pin IO23 om te bepalen of er menselijke beweging is.

Testresultaat:
Open de seriële monitor.
Wanneer er iemand in het gebied is, wordt Someone weergegeven op de monitor en gaat de rode LED op de sensor uit. Als er echter niemand is, wordt No one afgedrukt en blijft de LED altijd aan.
LET OP: De PIR-bewegingssensor kan geen objecten doordringen, dus bedek de sensor niet tijdens het detecteren van bewegingen.

4.3.3 Zoemer
Beschrijving:
Een zoemer is een elektronische geluidsgever, die geluiden met verschillende frequenties en duur uitzendt en wordt gevoed door gelijkspanning. Zo kan het worden gebruikt als herinnering of alarm in aanzienlijke elektronische apparaten, zoals computers, printers, kopieerapparaten, alarmen, elektronisch speelgoed, auto-elektronica, telefoons en timers.

Een zoemer bestaat uit een trilapparaat en een resonantieapparaat. En er zijn twee categorieën: Passieve zoemers en actieve zoemers.
Een Passieve Zoemer kan zelf niet
trillenom geluid uit te zenden, tenzij er eenblokgolfsignaal met een bepaalde frequentie wordt aangelegd. Bovendien varieert het uitgezonden geluid door de verschillende frequentie van de blokgolf, zodat een passieve zoemer melodieën kan simuleren.Een analoge blokgolf kan worden gegenereerd door het vermogensniveau op pinnen te wijzigen. Bijvoorbeeld, nadat het hoge niveau 500ms aanhoudt, schakelt het over naar een laag niveau voor nog eens 500ms en dan weer naar een hoog niveau…
We sturen de zoemer aan via een blokgolf binnen 200~5000Hz, en we kunnen de frequentie (f) berekenen: f=1/T; T is de periode (de totale tijd van hoog en laag niveau).

Een Actieve Zoemer kan automatisch geluid uitzenden zonder externe motivator, omdat deze een aandrijfcircuit bevat dat alleen
gelijkstroomvoedingnodig heeft. Het geluid is echter vlak met een relatief vaste frequentie.
In dit experiment wordt een passieve zoemer gebruikt om “muziek te spelen”.
Schematisch diagram:

Parameters:
Spanning: 3~5V
Stroom: ≤5mA
Vermogen: ≤25mW
Bedradingsschema:
Sluit de zoemer aan op io16.
Let op: Sluit geel aan op S(Signaal), rood op V(Voeding) en zwart op GND. Draai ze niet om!

Testcode:
Methode 1: Analoge blokgolf
Een passieve zoemer wordt aangestuurd door blokgolven, dus we stimuleren de golf.
Een analoge blokgolf kan worden gegenereerd door het vermogensniveau van de pin te wijzigen: hoog niveau voor 500us en laag niveau voor 500us. De zoemer zal dus geluid produceren. Ook kunnen de duur de geluidssterkte aanpassen.
Probeer eens 1000us, 1500us, 3000us… Wat is het verschil?

Code:

In de delay-functie is de tijdseenheid us microseconden. Het volgende blok staat dus voor een vertraging van 500ms.

Volgens de formule:
Dus, 500us is de duur, en we kunnen de frequentie berekenen = 2kHz, d.w.z. het hoge en lage niveau wisselen 2000 keer per seconde af.
Methode 2: Luidsprekerblokken
We gebruiken Luidspreker
codeblokken om de zoemer aan te sturen om te trillen.
Luidsprekerblokken genereren een PWM-signaal met een bepaalde frequentie om de zoemer aan te sturen om te trillen, en de duur en toon worden geregeld door gerelateerde parameters.
Er zijn twee manieren om de duur te definiëren. Eén is om de parameters van de tone()-functie aan te passen om een duur in te stellen, en de andere is om een noTone()-functie te gebruiken om het geluid direct te stoppen. Als u geen duur definieert in tone(), wordt het geluidssignaal altijd gegenereerd, tenzij een noTone() het stopt.
Voor een ESP32-bord kan slechts één geluid tegelijk worden geproduceerd. Als een pin van ESP32 een geluidssignaal genereert via tone(), is het niet acceptabel om geluid te produceren met deze functie op een andere pin.
Toontabel

Code:
Sleep een “Toon” blok van
zoals hieronder weergegeven, en stel de pin in op IO16.

U kunt een frequentie naar keuze selecteren.

Geen toon: Dit wordt gebruikt om alle tonen uit te schakelen.

Volledige code:

Testresultaat:
Methode 1: Zoemer blijft geluid produceren.
Methode 2: Zoemer alarmeert via tone()-functie.
Uitbreiding: Muziek afspelen
Speel muziek af via tone().
Volledige code:

4.3.4 Alarmsysteem
In dit experiment zullen we een alarmsysteem bouwen met een PIR-bewegingssensor, een zoemer en een LED. Wanneer de sensor beweging detecteert, produceert de zoemer geluid en knippert de LED om te waarschuwen voor een inbraak.
Bedradingsschema:
Sluit de PIR-bewegingssensor aan op io23, de zoemer op io16 en de LED op io27.
Let op: Sluit geel aan op S(Signaal), rood op V(Voeding) en zwart op GND. Draai ze niet om!

Testcode:
Codestroom:

Complete code:

Testresultaat:
Upload de code en het alarmsysteem begint te werken. Wanneer het beweging detecteert, gaat de zoemer af en knippert de LED.
4.3.5 Veelgestelde vragen
V: De tonen van de zoemer komen niet overeen met de werkelijke tonen.
A: Deze reguliere zoemer simuleert alleen tonen, dus hij kan niet voldoen aan professionele eisen. Als u standaardtonen wilt, is een meer gespecialiseerde luidspreker vereist.
V: De PIR-bewegingssensor geeft verkeerde resultaten.
A: Deze PIR-bewegingssensor is ook geen professionele.
Garandeer de volgende situaties om verkeerde informatie te voorkomen:
Vermijd dat door de wind geblazen objecten binnen het detectiegebied fladderen, zoals gordijnen, kleding en bloemen.
Vermijd sterk licht in het detectiegebied, zoals zonlicht, autolichten, spotlights en andere lichtbronnen.
Enzovoort…