4.3 Progetto: Sistema di Allarme
In questo progetto, utilizziamo un sensore di movimento PIR e un buzzer per realizzare un sistema di allarme, che può essere controllato dalla scheda di sviluppo ESP32.
Come funziona? I segnali elettrici vengono rilevati e letti dal sensore di movimento PIR tramite la programmazione sull’IDE KidsBlock, e quindi determina se c’è una persona. Se c’è, il buzzer suona l’allarme. In questo modo, questo sistema di allarme ha un costo molto più basso per famiglie e uffici.
4.3.1 Diagramma di Flusso

4.3.2 Sensore di Movimento PIR
Descrizione:
Un sensore di movimento PIR rileva la presenza di una persona percependo il calore emesso dal corpo umano.
Inoltre, questo sensore è piccolo e facile da usare.

Schema Elettrico:

Parametri:
Tensione: 3~5V
Corrente: 3.6mA
Potenza: 18mW
Angolo di Visione: Y = 90°, X = 110° (valore teorico)
Distanza di Rilevamento: ≤5m
Schema di Collegamento:
Collegare il sensore di movimento PIR a io23.
Attenzione: Collegare il giallo a S(Signal), il rosso a V(Power) e il nero a GND. Non invertirli!

Codice di Test:
Leggere il valore sul pin IO23 per determinare se c’è un movimento umano.

Risultato del Test:
Aprire il monitor seriale.
Quando qualcuno è nell’area, sul monitor viene visualizzato Someone e il LED rosso sul sensore si spegne. Tuttavia, se non c’è nessuno, verrà stampato No one e il LED rimarrà sempre acceso.
ATTENZIONE: Il sensore di movimento PIR non è in grado di penetrare gli oggetti, quindi si prega di non coprire il sensore durante il rilevamento dei movimenti.

4.3.3 Buzzer
Descrizione:
Un buzzer è un segnalatore acustico elettronico, che emette suoni con diverse frequenze e durate ed è alimentato da tensione DC. Pertanto, può essere utilizzato come promemoria o allarme in numerosi dispositivi elettronici, come computer, stampanti, fotocopiatrici, allarmi, giocattoli elettronici, elettronica automobilistica, telefoni e timer.

Un buzzer è composto da dispositivo di vibrazione e dispositivo di risonanza. Esistono due categorie: buzzer passivi e buzzer attivi.
Un Buzzer Passivo non può
vibrareper emettere suono da solo, a meno che non gli si applichi un segnale aonda quadracon una certa frequenza. Inoltre, il suono emesso varia a causa della diversa frequenza dell’onda quadra, quindi un buzzer passivo può simulare melodie.Un’onda quadra analogica può essere generata cambiando il livello di potenza sui pin. Ad esempio, dopo che il livello alto dura per 500ms, passa a un livello basso per altri 500ms, poi di nuovo a un livello alto…
Pilotiamo il buzzer tramite un’onda quadra tra 200~5000Hz, e possiamo calcolare la frequenza (f): f=1/T; T è il periodo (il tempo totale di livello alto e basso).

Un Buzzer Attivo è in grado di emettere suono automaticamente senza un motivatore esterno, perché include un circuito di pilotaggio che necessita solo di
alimentazione DC. Tuttavia, il suo suono è piatto con una frequenza relativamente fissa.
In questo esperimento, un buzzer passivo viene utilizzato per “suonare musica”.
Schema Elettrico:

Parametri:
Tensione: 3~5V
Corrente: ≤5mA
Potenza: ≤25mW
Schema elettrico:
Collega il buzzer a io16.
Attenzione: Collega il giallo a S(Segnale), il rosso a V(Alimentazione) e il nero a GND. Non invertirli!

Codice di prova:
Metodo 1: Onda quadra analogica
Un buzzer passivo è pilotato da onde quadre, quindi stimoliamo l’onda.
Un’onda quadra analogica può essere generata modificando il livello di potenza del pin: livello alto per 500us e livello basso per 500us. Così, il buzzer emetterà un suono. Inoltre, le durate possono regolare il volume del suono.
Prova 1000us, 1500us, 3000us… Qual è la differenza?

Codice:

Nella funzione delay, l’unità di tempo us sono microsecondi. Quindi il seguente blocco rappresenta un ritardo di 500ms.

Secondo la formula:
Quindi, 500us è la durata, e possiamo calcolare la frequenza = 2kHz, cioè il livello alto e basso si alternano 2000 volte al secondo.
Metodo 2: Blocchi altoparlante
Adottiamo i blocchi di codice Speaker
per far vibrare il buzzer.
I blocchi Speaker generano un segnale PWM con una certa frequenza per far vibrare il buzzer, e la durata e il tono sono controllati dai parametri correlati.
Ci sono due modi per definire la durata. Uno è regolare i parametri della funzione tone() per impostare una durata, e l’altro è adottare una funzione noTone() per interrompere direttamente il suono. Se non si definisce una durata in tone(), il segnale sonoro verrà sempre generato a meno che una noTone() non lo interrompa.
Per la scheda ESP32, può essere prodotto un solo suono alla volta. Se un pin di ESP32 sta generando un segnale sonoro tramite tone(), non è accettabile emettere un suono tramite questa funzione su un altro pin.
Tabella dei toni

Codice:
Trascina un blocco “Tone” da
come mostrato di seguito, e imposta il pin su IO16.

Puoi selezionare una frequenza a piacere.

No Tone: Viene utilizzato per disattivare tutti i toni.

Codice completo:

Risultato del test:
Metodo 1: Il buzzer continua a emettere un suono.
Metodo 2: Il buzzer emette un allarme tramite la funzione tone().
Espansione: Riproduci musica
Riproduci musica tramite tone().
Codice completo:

4.3.4 Sistema di allarme
In questo esperimento, costruiremo un sistema di allarme con un sensore di movimento PIR, un buzzer e un LED. Quando il sensore rileva un movimento, il buzzer emette un suono e il LED lampeggia per segnalare un’invasione.
Schema elettrico:
Collega il sensore di movimento PIR a io23, il buzzer a io16 e il LED a io27.
Attenzione: Collega il giallo a S(Segnale), il rosso a V(Alimentazione) e il nero a GND. Non invertirli!

Codice di prova:
Flusso del codice:

Codice completo:

Risultato del test:
Carica il codice e il sistema di allarme inizia a funzionare. Quando rileva un movimento, il cicalino suona e il LED lampeggia.
4.3.5 FAQ
D: I toni del cicalino non sono precisi rispetto a quelli reali.
R: Questo cicalino normale si limita a stimolare i toni, quindi non è in grado di soddisfare requisiti professionali. Se si desiderano toni standard, è necessario un altoparlante più specializzato.
D: Il sensore di movimento PIR fornisce risultati errati.
R: Anche questo sensore di movimento PIR non è professionale.
Si prega di garantire le seguenti situazioni per evitare informazioni errate:
Evitare che oggetti mossi dal vento svolazzino all’interno dell’area di rilevamento, come tende, vestiti e fiori.
Evitare la luce forte nell’area di rilevamento, come luce solare, luci di automobili, faretti e altre fonti di luce.
E così via…