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, uno dei più utili e versatili, è sicuramente il sensore HS3003 dedicato alla misura della temperatura e dell’umidità relativa.
Indice
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
| Produttore | u-blox |
|---|---|
| Modello | NINA-B306 |
| Tipo di modulo di comunicazione | Bluetooth Low Energy 5.0 |
| Potenza del trasmettitore | 10dBm |
| Portata | 1,4km |
| Sensibilita del ricevitore | -100dBm |
| Velocita di trasmissione dei dati | 14Mbps |
| Banda | 2,4GHz |
| Genere di architettura | Cortex M4 (Nordic Nrf52840) |
| Memoria | 256kB RAM 1MB FLASH |
| Numero ingressi/uscite | 38 |
| Temperatura di lavoro | -40...85°C |
| Tensione di alimentazione | 1,7...3,6V DC |
| Interfaccia | ADC, GPIO, I2C, I2S, SPI, UART, USB |
| Montaggio | SMD |
| Dimensioni | 10x15x3,8mm |

Schema a blocchi del modulo NINA-B306
Caratteristiche della Nano 33 BLE Sense
| Microcontrollore | Nordic Semiconductors nRF52840 |
|---|---|
| Tensione operativa | 3.3 V |
| Tensione di ingresso (massima) | 21 V |
| Corrente sui pin di I/O (massima) | 15 mA |
| Frequenza di clock | 64 MHz |
| Dimensione memoria flash | 1 MB |
| Dimensione memoria SRAM | 256 kB |
| Memoria Eeprom | Non presente |
| Pin di I/O digitali | 14 |
| Pin PWM | Tutti i pin digitali |
| UART | 1 |
| SPI | 1 |
| I2C | 1 |
| Pin di ingresso analogici | 8 |
| Pin di uscita analogici | Gli stessi utilizzabili per il PWM |
| Interrupt esterni | Associabili a tutti i pin digitali |
| Pin led utente | 13 |
| Led RGB | Red LED pin P22, Green LED pin P23, LED pin P34 |
| USB | Integrata nel processore nRF52840 |
| IMU | BMI270 (6-Assi, Accel/Giro) + BMM150 (3-Assi, Magnetometro) |
| Microfono | MP34DT06JTR |
| Sensore riconoscimento gestuale, luce e prossimità | APDS9960 |
| Sensore barometrico | LPS22HB |
| Sensore di temperatura e umidità | HS3003 |
| Lunghezza | 45 mm |
| Larghezza | 18 mm |
| Peso | 5 grammi, inclusi i pin header |
Foto della scheda

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.

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.
Cos’è il sensore HS3003
Uno dei sensori disponibili sulla Nano 33 BLE Sense è il sensore HS3003 (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.

Fonte https://docs.arduino.cc/
Sulla Nano 33 BLE Sense Rev2, il sensore è 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 HS3003
Caratteristiche del sensore HS3003
| Parametro | Valore tipico |
|---|---|
| Interfaccia | I²C |
| Range di temperatura | da -40 °C a +100 °C |
| Accuratezza temperatura | ±0.2 °C |
| Range di umidità relativa | 0% – 100% RH |
| Accuratezza umidità | ±2% RH |
| Tempo di risposta | ~5 secondi (a 63% di variazione) |
| Alimentazione | 1.8V – 3.6V |
| Consumo di corrente | < 1 µA in standby |
Pin del sensore HS3003

| N° Pin | Nome Pin | Tipo | Descrizione |
|---|---|---|---|
| 1 | SCL | IN/OUT | Serial clock |
| 2 | SDA | IN/OUT | Seial data |
| 3 | VC | - | Da collegare un condensatore di disaccoppiamento da 0,1μF da VC a GND |
| 4 | VDD | IN | Tensione di alimentazione |
| 5 | NC | - | Non connesso |
| 6 | VSS | IN | GND |

Schema tipico di collegamento del sensore HS3xxx
Come funziona internamente il sensore capacitivo HS3003
Il cuore del sensore HS3003 è costituito da un elemento sensibile capacitivo a film sottile, progettato per variare la propria capacità elettrica in funzione dell’umidità presente nell’aria.
Principio di funzionamento
Il sensore contiene due elettrodi conduttivi separati da uno strato dielettrico polimerico igroscopico.
Quando l’umidità relativa dell’ambiente cambia, le molecole di vapore acqueo vengono assorbite o rilasciate dal polimero, modificandone la costante dielettrica.
Questa variazione altera la capacità elettrica complessiva del sensore, che viene poi misurata da un circuito elettronico interno.
Il circuito integrato all’interno del chip converte la variazione di capacità in un segnale digitale calibrato, compensato in temperatura grazie a un termistore integrato. Questo consente di ottenere letture di umidità e temperatura stabili, lineari e già corrette, senza necessità di tarature esterne.
Compensazione e calibrazione
Ogni HS3003 è calibrato in fabbrica e memorizza i coefficienti di calibrazione in una memoria non volatile interna.
In questo modo, i dati forniti via interfaccia I²C sono già pronti per l’uso e non risentono delle normali variazioni dovute all’invecchiamento o alle tolleranze di produzione.
Vantaggi della tecnologia capacitiva
La tecnologia capacitiva, rispetto ai sensori resistivi o termoigrometrici tradizionali, offre:
- Maggiore stabilità nel tempo
- Minore isteresi (errore dovuto a variazioni rapide di umidità)
- Tempi di risposta più rapidi
- Basso consumo energetico
In sintesi, il principio capacitivo dell’HS3003 consente di ottenere misure precise e affidabili, rendendolo ideale per applicazioni IoT e di monitoraggio ambientale di lungo periodo.
Il sensore integra un’uscita digitale calibrata che semplifica la comunicazione con il microcontrollore Nordic nRF52840 presente sulla scheda.
Utilizzo del sensore HS3003 su Arduino Nano 33 BLE Sense
Nano 33 BLE Sense HS3003 Arduino ha semplificato enormemente l’uso dell’HS3003 grazie alla libreria Arduino_HS300x, che permette di accedere facilmente ai dati di temperatura e umidità 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 HS300x.

- Trova Arduino_HS300x (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:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <Arduino_HS300x.h> void setup() { Serial.begin(9600); while (!Serial); if (!HS300x.begin()) { Serial.println("Errore: sensore HS3003 non trovato!"); while (1); } Serial.println("Sensore HS3003 pronto!"); } void loop() { float temperature = HS300x.readTemperature(); float humidity = HS300x.readHumidity(); Serial.print("Temperatura: "); Serial.print(temperature); Serial.println(" °C"); Serial.print("Umidità: "); Serial.print(humidity); Serial.println(" %"); Serial.println("--------------------------"); delay(1000); } |
Cosa fa questo codice:
- inizializza la connessione I²C con l’HS3003;
- verifica che sia connesso;
- legge i valori ambientali ogni secondo;
- li visualizza sulla seriale (9600 baud).
Verifica del funzionamento
Per testare che tutto funzioni:
- 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 e apri il Monitor Seriale, verifica che la velocità sia impostata a 9600
- Dovresti vedere in tempo reale i valori di temperatura e umidità cambiare se soffi vicino al sensore o tocchi la scheda.

Risoluzione dei problemi
| Problema | Possibile causa | Soluzione |
|---|---|---|
| “Sensore non trovato” | Libreria non installata o sensore non inizializzato | Verifica l’installazione e la scheda corretta |
| Letture “0.00” o costanti | Sensore non risponde su I²C | Riavvia la scheda o ricontrolla la libreria |
| Letture instabili | Umidità condensata o variazioni termiche rapide | Lascia stabilizzare la scheda per qualche minuto |
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

Codice per lettura dati su display OLED
Sotto il codice utilizzato per la lettura dati del sensore HS3003 su display OLED
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include <Arduino_HS300x.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); void setup() { Serial.begin(9600); while (!Serial) ; if (!HS300x.begin()) { Serial.println("Sensore HS3003 non trovato!"); while (1) ; } if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println("Display OLED non trovato!"); while (1) ; } display.clearDisplay(); display.setTextSize(2); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.println("Avvio..."); display.display(); delay(1000); } void loop() { float temperatura = HS300x.readTemperature(); float umidita = HS300x.readHumidity(); display.clearDisplay(); display.setTextSize(1.5); display.setCursor(0, 0); display.println("WWW.ADRIROBOT.IT"); display.println("Lettura sens. HS3003"); display.println("----------------- --"); display.print("Temperatura: "); display.print(temperatura, 1); display.println(" C"); display.print("Umidita' : "); display.print(umidita, 1); display.println(" %"); display.display(); delay(1000); } |
Cosa fa questo codice:
- Include le librerie necessarie;
- Imposta le caratteristiche del display;
- inizializza la connessione I²C con l’HS3003;
- verifica che sia connesso;
- inizializza la connessione I²C con il display;
- verifica che sia connesso;
- legge i valori ambientali 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 temperatura e umidità mostrati sul display.

Dove trovare la scheda
La scheda Nano 33 BLE Sense, può essere acquistata su molti siti online, come:
- Arduino Store
- Amazon tramite lo Store di Arduino link https://amzn.to/3VEM8gY
- Presso il sito TechMaker codice SKU: AR438621.
Inserire nel carrello il codice sconto “ADRIROBOT” per ottenere uno sconto del 3%.

Prossimamente
In questo post abbiamo visto come utilizzare il sensore HS3003, dedicato alla misura della temperatura e dell’umidità relativa.
Nel prossimo post vedremo come utilizzare il sensore di Pressione Barometrica LPS22HB.
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ù!
Vedere anche gli articoli:







