Cha aria tira? Ce lo dice il sensore di particolato PMS5003

Come funziona la tecnologia di diffusione laser per il conteggio delle polveri sottili


Occupiamoci ora di un dispositivo piccolo ma... molto intelligente: il sensore PMS5003

Spesso sentiamo parlare di inquinamento, ma come facciamo a misurarlo concretamente? Questo sensore è lo strumento adatto per capire, dati alla mano, la qualità dell'aria che respiriamo ogni giorno.

 


 

PM... cosa?

Prima di vedere come funziona, definiamo cosa misura. Parliamo di PM, ovvero Particulate Matter

Sono particelle minuscole sospese nell'aria, classificate in base al loro diametro: PM1.0, PM2.5 e PM10. Le più pericolose per noi sono le PM2.5, perché sono così piccole da riuscire a penetrare in profondità nei nostri polmoni. Per proteggerci, dobbiamo prima essere in grado di 'vederle'.

 


 

Bello, ma come funziona?

Il funzionamento del PMS5003 si basa sulla diffusione laser

Immaginatelo come un piccolo tunnel:

  1. All'interno c'è una ventolina che aspira l'aria ambiente.

  2. Appena l'aria entra, le particelle attraversano un raggio laser.

     


     

     

  3. Quando una particella colpisce il raggio, la luce viene deviata — un po' come quando vediamo la polvere illuminata da un raggio di sole che entra dalla finestra.

     


     

     

  4. Un sensore sensibile, chiamato fotodiodo, cattura questi flash di luce. Il chip interno analizza quanti flash arrivano e quanto sono intensi, trasformando questi impulsi elettrici in un dato preciso sulla concentrazione di polveri.

     

    Colleghiamoci! 

    Questo sensore è estremamente versatile e poco costoso, inoltre non richiede un progetto troppo complesso: basta un microcontrollore come Arduino per creare una stazione di monitoraggio personale. 

     

    Il sensore PMS5003 (a sinistra) e
    quello di temperatura / umidità DHT11
    collegati ad Arduino R4

     


    Il sensore utilizza la comunicazione UART (Seriale).  

    È importante incrociare i pin TX e RX fra sensore e Arduino: il PMS5003 invia i dati sulla sua porta TX e il microcontroller li riceve sul pin RX.

    Viceversa Arduino può inviare dei comandi tramite la sua porta di trasmissione seriale dedicata (TX di Serial1) verso il pin in ricezione RX del sensore. 

     

     
     
     

    Pin PMS5003FunzionePin Arduino R4
    VCCAlimentazione (+5V)5V
    GNDGroundGND
    TXDati in uscita dal sensoreSerial1 RX
    RXDati in ingresso al sensoreSerial1 TX

     

    A differenza dell'Arduino classico, ho utilizzato l'Arduino R4 che mette a disposizione più porte seriali hardware. 

    Questo ha permesso di dedicare la porta fisica Serial1 esclusivamente al sensore.

    Il vantaggio è una maggiore affidabilità nella ricezione dei dati e un codice più efficiente, poiché il processore non deve simulare la comunicazione seriale via software.

     

    Trucchi per una collaborazione armoniosa

     

    Il sensore PMS5003 è un componente elettronico che funziona internamente a 3.3V: i suoi pin di comunicazione (in particolare il pin RX, che riceve i dati) sono progettati per gestire segnali elettrici che non superano questa soglia. 

     

    La compatibilità dei livelli logici

    In elettronica digitale, un segnale è composto da due stati: 

    • 0 (LOW) 
    • 1 (HIGH)

     


    Per un componente che funziona a 3.3V, un segnale HIGH è solitamente riconosciuto se è superiore a circa 2.4V - 2.6V 

Il microcontroller Arduino lavora invece a 5V e, se lo collegassimo direttamente, invierebbe al PMS5003 un segnale "troppo alto" che il componente interpreta correttamente come "1", ma che tecnicamente è fuori specifica (fenomeno di overvoltage).

In queste condizioni, anche se tutto sembra funzionare per brevi periodi, stiamo in realtà stressando i circuiti interni di protezione del sensore. 
Questo può portare a un surriscaldamento del chip o, nel peggiore dei casi, alla distruzione permanente del ricevitore seriale del sensore. 

 

Evitiamo i rischi  

 

Ricapitoliamo un momento il problema: immaginate che il sensore sia un orecchio umano e Arduino sia una persona che deve parlargli. 

Arduino parla a un volume sonoro 5 (che è il suo standard), ma l'orecchio del sensore è progettato per sentire bene solo fino a un volume di 3.3

Se Arduino gli... urla direttamente nelle orecchie a volume 5 rischia di danneggiarle. 

Dobbiamo quindi adottare un partitore di tensione che agisce come un riduttore di volume: mantiene il messaggio (l'informazione digitale) intatto, ma lo abbassa a un livello che il sensore può ricevere in totale sicurezza. 

 

Il partitore di tensione

 

Nella foto qui sopra si vedono le due resistenze da 1kΩ e 2kΩ  che formano il partitore di tensione. 

Perché questi due valori?  

 


Questa combinazione è considerata "da manuale" per diverse ragioni tecniche:


  • Tensione ideale: il calcolo teorico 



    restituisce esattamente 3.33V, che è il valore ottimale per le logiche a 3.3V del sensore. 

  • Sicurezza: riduce il segnale da 5V (inviato da Arduino) a un livello sicuro, evitando di stressare o distruggere il ricevitore seriale del sensore.

  • Basso consumo: l'uso di resistenze nell'ordine dei kilo-Ohm mantiene la corrente molto bassa (circa 1.6mA), evitando di sovraccaricare i componenti o generare calore eccessivo.

  • Stabilità: questa configurazione non introduce ritardi significativi, mantenendo la comunicazione seriale veloce e precisa 

 

In conclusione...

Abbiamo tirato fuori pinze, cacciaviti, cavetti e resistenze ed ora siamo pronti per un'altra tappa della nostra avventura tecnologica.

Ancora un po' di lavoro con il software e presto inizierà la fase di acquisizione dei dati per conoscere meglio la situazione dell'ambiente in cui viviamo (e... respiriamo) ogni giorno. 

 

 

Alla prossima puntata!

 

 


 

Commenti

Post popolari in questo blog

Una sentinella in cielo: il satellite Sentinel-5P

Facciamo lavorare Arduino

Diario di bordo Giornata della Scienza 2026