Sensore LPS22HB Pressione barometrica – Nano 33 BLE Sense

Tra le tante schede Arduino pensate per il mondo IoT e l’elaborazione dei dati ambientali, la Arduino Nano 33 BLE Sense Rev2 si distingue per la sua compattezza e la ricca dotazione di sensori integrati.
Tra questi, troviamo il sensore LPS22HB dedicato alla misura della Pressione Barometrica.

Nano 33 BLE Sense LPS22HB

Descrizione Arduino Nano 33 BLE Sense

La Arduino Nano 33 BLE Sense Rev2 è l’evoluzione di una scheda già di successo, progettata per portare le capacità dell’intelligenza artificiale e del machine learning (TinyML) direttamente nei vostri progetti IoT e wearable.
Il suo cuore pulsante è il microcontrollore Nordic nRF52840, un SoC (System-on-Chip) a 32-bit basato su ARM Cortex-M4F, che offre prestazioni elevate e un basso consumo energetico.
Questo è inserito all’interno del modulo NINA-B306 (datasheet) prodotto dalla u-blox.

Foto del Modulo NINA-B306

Caratteristiche del modulo NINA-B306

Produttoreu-blox
ModelloNINA-B306
Tipo di modulo di comunicazioneBluetooth Low Energy 5.0
Potenza del trasmettitore10dBm
Portata1,4km
Sensibilita del ricevitore-100dBm
Velocita di trasmissione dei dati14Mbps
Banda2,4GHz
Genere di architetturaCortex M4 (Nordic Nrf52840)
Memoria256kB RAM 1MB FLASH
Numero ingressi/uscite38
Temperatura di lavoro-40...85°C
Tensione di alimentazione1,7...3,6V DC
InterfacciaADC, GPIO, I2C, I2S, SPI, UART, USB
MontaggioSMD
Dimensioni10x15x3,8mm

Schema a blocchi del modulo NINA-B306

Caratteristiche della Nano 33 BLE Sense

MicrocontrolloreNordic Semiconductors nRF52840
Tensione operativa3.3 V
Tensione di ingresso (massima)21 V
Corrente sui pin di I/O (massima)15 mA
Frequenza di clock64 MHz
Dimensione memoria flash1 MB
Dimensione memoria SRAM256 kB
Memoria EepromNon presente
Pin di I/O digitali14
Pin PWMTutti i pin digitali
UART1
SPI1
I2C1
Pin di ingresso analogici8
Pin di uscita analogiciGli stessi utilizzabili per il PWM
Interrupt esterniAssociabili a tutti i pin digitali
Pin led utente13
Led RGB Red LED pin P22, Green LED pin P23, LED pin P34
USBIntegrata nel processore nRF52840
IMUBMI270 (6-Assi, Accel/Giro) + BMM150 (3-Assi, Magnetometro)
MicrofonoMP34DT06JTR
Sensore riconoscimento gestuale, luce e prossimitàAPDS9960
Sensore barometricoLPS22HB
Sensore di temperatura e umiditàHS3003
Lunghezza45 mm
Larghezza18 mm
Peso5 grammi, inclusi i pin header

Foto della scheda

Nano 33 BLE Sense

Sensori presenti sulla scheda

Ciò che rende davvero speciale questa scheda è la sua incredibile dotazione di sensori integrati, che la trasformano in un vero e proprio laboratorio portatile per la raccolta dati:

  • Sensore di Movimento a 9 Assi (IMU). Rispetto a quello presente nella prima versione, è  ora diviso in due chip per garantire una migliore reperibilità: il BMI270 (Accelerometro e Giroscopio a 6 assi – Bosch Sensortec) e il BMM150 (Magnetometro a 3 assi – Bosch Sensortec) . Questo potente IMU è ideale per il rilevamento del movimento, l’orientamento, la navigazione e il TinyML.
  • Sensore di Pressione Barometrica. Il LPS22HB (STMicroelectronics) permette di misurare la pressione atmosferica e, di conseguenza, l’altitudine. È utile per stazioni meteo, droni o sistemi di navigazione.
  • Sensore di Umidità e Temperatura. L’HS3003 (Renesas) sostituisce il precedente HTS221, consentendo di monitorare le condizioni ambientali, fondamentale per progetti di domotica o monitoraggio climatico.
  • Microfono Digitale (PDM). Il MP34DT06JTR (STMicroelectronics) è un piccolo ma potente microfono per acquisire segnali audio, aprendo le porte a progetti di riconoscimento vocale e sound sensing.
  • Sensore di Prossimità, colore e Luce Ambientale (con riconoscimento dei gesti), Il APDS-9960 (Broadcom), oltre a rilevare l’intensità della luce ambientale, ha capacità avanzate di rilevamento del colore, consentendo di identificare tonalità e interpretare gesti specifici, ampliando le possibilità di interazione utente.

Nano 33 BLE Sense HS3003

Inoltre, la connettività Bluetooth Low Energy (BLE) la rende perfetta per comunicare in modalità wireless con smartphone, tablet o altri dispositivi BLE, consentendo di creare applicazioni IoT a basso consumo e facilmente interfacciabili.

Nano 33 BLE Sense - pin

Cos’è il sensore LPS22HB

Uno dei sensori disponibili sulla Nano 33 BLE Sense è il sensore LPS22HB (datasheet), per la misura della temperatura e umidità digitale di alta precisione, prodotto da TE Connectivity, progettato per fornire letture affidabili e stabili anche in condizioni ambientali variabili.

Nano 33 BLE Sense LPS22HB

Fonte https://docs. arduino.cc/

Sulla Nano 33 BLE Sense il sensore LPS22HB è già integrato a bordo, il che significa che non serve alcun cablaggio esterno o modulo aggiuntivo: basta utilizzare le librerie giuste per iniziare subito a leggere i dati.

Schema a blocchi del sensore LPS22HB

Nano 33 BLE Sense LPS22HB

Caratteristiche del sensore LPS22HB

ParametroValore
Pressione max290,08psi (2000kPa)
Precisione±0,015psi (±0,1kPa)
Tipo di uscitaI2C, SPI
Uscita24 b
Tensione - Alimentazione1,7 ~ 3,6V
CaratteristicheCompensato in temperatura
Temperatura di funzionamento-40°C ~ 85°C

Pin del sensore LPS22HB

Nano 33 BLE Sense LPS22HB

Numero PinNomeFunzione
1Vdd_IOAlimentazione per i pin di I/O
2SCL / SPCClock seriale I²C (SCL) / Clock porta seriale SPI (SPC)
3ReservedRiservato (collegare a GND)
4SDA / SDI / SDI/SDODati seriali I²C (SDA) / Ingresso dati SPI a 4 fili (SDI) / Ingresso/Uscita dati SPI a 3 fili (SDI/SDO)
5SDO / SA0Uscita dati SPI a 4 fili (SDO) / Bit meno significativo dell’indirizzo dispositivo I²C (SA0)
6CSAbilitazione SPI / Selezione modalità I²C/SPI (1: SPI inattivo / I²C abilitato; 0: SPI attivo / I²C disabilitato)
7INT_DRDYInterrupt o segnale Data Ready
8GNDAlimentazione 0 V (massa)
9GNDAlimentazione 0 V (massa)
10VDDAlimentazione principale

Come funziona il sensore LPS22HB

Internamente, il LPS22HB utilizza una membrana piezoresistiva MEMS che si deforma in funzione della pressione atmosferica.

Nano 33 BLE Sense LPS22HB

Fonte https://docs. arduino.cc/

La variazione meccanica viene convertita in un segnale elettrico, digitalizzato da un ADC ad alta risoluzione e compensato tramite:

  • calibrazione di fabbrica
  • compensazione termica
  • filtri digitali

Il risultato finale è un valore di pressione stabile e preciso, accessibile tramite registri interni.

Come funzionano la pressione atmosferica e l’altitudine

La pressione atmosferica viene rilevata in base alla deformazione del diaframma, dovuta alla pressione risultante. Maggiore è la pressione, maggiore è il movimento del diaframma, con conseguente aumento della lettura del barometro.
Una volta recuperati i valori del sensore della pressione atmosferica in kPa (unità di misura), possiamo utilizzare la seguente formula matematica per calcolare l’altitudine approssimativa dell’ambiente in metri:

H = 44330 * [1 – (P/p0)^(1/5.255) ]

Dove ” H ” sta per altitudine, ” P ” è la pressione misurata (kPa) dal sensore e “ p0 ” è la pressione di riferimento al livello del mare (101,325 kPa).
Questo grafico mostra la relazione matematica tra la pressione atmosferica e l’altitudine sul livello del mare.

Nano 33 BLE Sense LPS22HB

Fonte https://docs. arduino.cc/

Il sensore misura anche la temperatura?

Ebbene si, il sensore LPS22HB è un sensore di pressione barometrica, ma include anche una funzione di misura della temperatura. La ragione per cui fornisce anche il valore di temperatura è dovuta al fatto che la temperatura influisce sulla pressione atmosferica e viceversa. Misurare entrambi i parametri consente di ottenere letture più accurate e di compensare eventuali variazioni.
In molti casi, il valore di temperatura fornito dal sensore è considerato accettabile per applicazioni di base, poiché è generalmente utilizzato per la compensazione della pressione. Tuttavia, se è necessaria una misurazione della temperatura di alta precisione per applicazioni critiche, potrebbe essere più appropriato utilizzare un sensore di temperatura dedicato, poiché il LPS22HB è principalmente progettato per misurare la pressione.

Collegamento della scheda Arduino Nano 33 BLE Sense 

Prima di tutto connettiamo la scheda Arduino Nano 33 BLE Sense al computer tramite un cavo USB.
Andiamo poi su Strumenti > Scheda e seleziona “Arduino Nano 33 BLE ” nella sezione “Arduino Mbed OS Nano Boards”.

Nano 33 BLE Sense

Vai su Strumenti > Porta e seleziona la porta seriale corrispondente alla tua scheda (di solito appare come “COMx” su Windows o “/dev/cu.usbmodemxxxx” su macOS/Linux).

Nano 33 BLE Sense

Potremo ora caricare i nostri programma.

Utilizzo del sensore LPS22HB su Arduino Nano 33 BLE Sense

Nano 33 BLE Sense ha semplificato enormemente l’uso del sensore LPS22HB grazie alla libreria Arduino_ LPS22HB, che permette di accedere facilmente ai dati di pressione con poche righe di codice.

Come installare la libreria tramite Library Manager

  • Apri l’Arduino IDE.
  • Vai su Sketch → Include Library → Manage Libraries…
  • Nel campo di ricerca scrivi Arduino_LPS22HB.

  • Trovata la libreria Arduino_LPS22HB (sviluppata da Arduino), clicca su Install.
    💡 Suggerimento: Assicurati di avere l’IDE aggiornato alla versione 2.x o successiva per il pieno supporto della Nano 33 BLE Sense Rev2.

Codice di base per lettura dati del sensore

Ecco un semplice esempio:

Cosa fa questo codice:

  • inizializza la connessione I²C con l’LPS22HB;
  • verifica che sia connesso;
  • legge i valori di pressione e temperatura ogni secondo;
  • li visualizza sulla seriale (9600 baud).


Verifica del funzionamento

Per testare che tutto funzioni:

  • Collega la Arduino Nano 33 BLE Sense  al PC.
  • Seleziona la scheda corretta in Strumenti → Scheda → Arduino Nano 33 BLE.

Nano 33 BLE Sense

  • Seleziona la porta COM corretta.

Nano 33 BLE Sense

  • Carica lo sketch e apri il Monitor Seriale, verifica che la velocità sia impostata a 9600
  • Dovresti vedere in tempo reale i valori di Pressione barometrica e temperatura ambiente

Nano 33 BLE Sense LPS22HB

Lettura dei dati su display OLED

Vediamo ora un’esempio più completo, ora i dati saranno mostrati su un display OLED, connesso anche questo tramite I2cC.
Per maggiori informazioni sul display OLED 0.96″ 128×64 – SSD1306  utilizzato e come fare per utilizzarlo leggete il post Display OLED 0.96″ 128×64 – SSD1306.

Schema dei collegamenti

Nano 33 BLE Sense HS3003

Codice per lettura dati su display OLED

Sotto il codice utilizzato per la lettura dati del sensore LPS22HB  sul display OLED

Cosa fa questo codice:

  • Include le librerie necessarie;
  • Imposta le caratteristiche del display;
  • inizializza la connessione I²C con l’LPS22HB;
  • verifica che sia connesso;
  • inizializza la connessione I²C con il display;
  • verifica che sia connesso;
  • legge i valori di pressione barometrica e temperatura ogni secondo;
  • li visualizza sul display


Verifica del funzionamento

Per testare che tutto funzioni:

  • Effettua i collegamenti, illustrati precedentemente;
  • Collega la Arduino Nano 33 BLE Sense Rev2 al PC;
  • Seleziona la scheda corretta in Strumenti → Scheda → Arduino Nano 33 BLE Sense;
  • Seleziona la porta COM corretta;
  • Carica lo sketch;
  • Dovresti vedere in tempo reale i valori di Pressione barometrica espressi il hPa, il valore di temperatura  i °C e valore di altitudine in metri riferiti al livello del mare.


Nota per migliorare la precisione
Per ottenere un’altitudine più accurata puoi, leggere la pressione reale della tua città, sostituire nel programma il valore in:

ad esempio con

Nano 33 BLE Sense LPS22HB

Dove trovare la scheda

La scheda Nano 33 BLE Sense, può essere acquistata su molti siti online, come:

Prossimamente

In questo post come utilizzare il sensore di Pressione Barometrica LPS22HB.
Precedentemente avevamo visto come utilizzare il sensore HS3003, dedicato alla misura della temperatura e dell’umidità relativa.

Nel prossimo post vedremo come utilizzare il Sensore di Prossimità, colore e Luce Ambientale APDS-9960

Altre schede Arduino

In questa pagina sono riportate alcune schede del mondo Arduino e suoi cloni e fanno parte della mia personale raccolta. Le schede in realtà sono molte di più!

schede originali Arduino

Vedere anche gli articoli: