Nota

Ciao, benvenuto nella community di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti a noi?

  • Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.

  • Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.

  • Anteprime Esclusive: Ottieni accesso anticipato ai nuovi annunci di prodotti e anteprime.

  • Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni Festive e Giveaway: Partecipa a concorsi e promozioni festive.

👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti subito!

2.2.7 PIR

Introduzione

In questo progetto, realizzeremo un dispositivo utilizzando i sensori a infrarossi piroelettrici per il corpo umano. Quando qualcuno si avvicina al LED, quest’ultimo si accenderà automaticamente. Se non c’è nessuno nelle vicinanze, la luce si spegnerà. Questo sensore di movimento a infrarossi è un tipo di sensore in grado di rilevare gli infrarossi emessi da esseri umani e animali.

Componenti Necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

../_images/list_2.2.4_pir2.png

È sicuramente conveniente acquistare un kit completo, ecco il link:

Nome

COMPONENTI IN QUESTO KIT

LINK

Raphael Kit

337

Raphael Kit

Puoi anche acquistarli separatamente dai link seguenti.

INTRODUZIONE AI COMPONENTI

LINK PER L’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

LED RGB

ACQUISTA

Modulo Sensore di Movimento PIR

-

Schema Elettrico

../_images/image327.png

Procedure Sperimentali

Passo 1: Costruisci il circuito.

../_images/image214.png

Passo 2: Vai alla cartella del codice.

cd ~/raphael-kit/c/2.2.7/

Passo 3: Compila il codice.

gcc 2.2.7_PIR.c -lwiringPi

Passo 4: Esegui il file eseguibile.

sudo ./a.out

Dopo l’esecuzione del codice, il PIR rileva l’ambiente circostante e fa accendere l’RGB LED di colore giallo se rileva una persona in movimento.

Sul modulo PIR ci sono due potenziometri: uno per regolare la sensibilità e l’altro per regolare la distanza di rilevamento. Per far funzionare meglio il modulo PIR, è necessario ruotare entrambi in senso antiorario fino in fondo.

../_images/PIR_TTE.png

Nota

Se non funziona dopo l’esecuzione o appare un errore come: wiringPi.h No such file or directory, fai riferimento a Installa e Controlla wiringPi.

Codice

#include <wiringPi.h>
#include <softPwm.h>
#include <stdio.h>
#define uchar unsigned char

#define pirPin    0     // il pir collegato a GPIO0
#define redPin    1
#define greenPin  2
#define bluePin   3

void ledInit(void){
    softPwmCreate(redPin,  0, 100);
    softPwmCreate(greenPin,0, 100);
    softPwmCreate(bluePin, 0, 100);
}
void ledColorSet(uchar r_val, uchar g_val, uchar b_val){
    softPwmWrite(redPin,   r_val);
    softPwmWrite(greenPin, g_val);
    softPwmWrite(bluePin,  b_val);
}
int main(void)
{
    int pir_val;
    if(wiringPiSetup() == -1){ //quando l'inizializzazione wiring fallisce, stampa messaggio a schermo
        printf("setup wiringPi failed !");
        return 1;
    }
    ledInit();
    pinMode(pirPin, INPUT);
    while(1){
    pir_val = digitalRead(pirPin);
        if(pir_val== 1){ // se il pir legge livello ALTO
            ledColorSet(0xff,0xff,0x00);
        }
        else {
        ledColorSet(0x00,0x00,0xff);
        }
    }
    return 0;
}

Spiegazione del Codice

void ledInit(void);
void ledColorSet(uchar r_val, uchar g_val, uchar b_val);

Questi codici vengono utilizzati per impostare il colore dell’RGB LED, per maggiori dettagli fai riferimento a 1.1.2 LED RGB.

int main(void)
{
    int pir_val;
    //……
    pinMode(pirPin, INPUT);
    while(1){
    pir_val = digitalRead(pirPin);
        if(pir_val== 1){ //se il pir legge livello ALTO
            ledColorSet(0xff,0xff,0x00);
        }
        else {
        ledColorSet(0x00,0x00,0xff);
        }
    }
    return 0;
}

Quando il PIR rileva lo spettro infrarosso umano, l’RGB LED emette luce gialla; in caso contrario, emette luce blu.

Immagine del Fenomeno

../_images/image215.jpeg