Sul modulo breakout descritto in questo articolo è presente un sensore AHT10, questo permette la misura della temperatura e umidità. I dati sono trasmessi su bus I2C.
Temperatura da -40 a +85 °C con precisione ±0.3 °C, Umidità da 0 a 100 % con precisione ±2%.
Indice
Descrizione
Il sensore AHT10 (datasheet) è un sensore digitale di temperatura e umidità integrato. Il package SMD misura 4×5 mm per un’altezza di 1,6 mm.
Il sensore AHT10 è dotato di un ASIC (acronimo di Application Specific Integrated Circuit ossia un circuito integrato per applicazione specifica) di nuova concezione; un elemento di rilevamento dell’umidità capacitivo a semiconduttore MEMS (acronimo di Micro Electro-Mechanical Systems) migliorato e un elemento di rilevamento della temperatura su chip standard.
Il sensore rileva l’umidità relativa e la temperatura misurando la resistenza elettrica tra i due elettrodi.
La conduttività tra gli elettrodi aumenta all’aumentare dell’umidità relativa.
Il minuscolo sensore ha un intervallo di alimentazione di 1,8-3,6 V, ma 3,3 V è la tensione operativa consigliata.
Può emettere un segnale digitale calibrato nel formato I 2 C standard, per tale motivo è molto semplice da utilizzare con qualsiasi board Arduino e Raspberry.
Prestazioni del sensore per Temperatura
Parametro | Condizione | min | tipico | max | unità |
---|---|---|---|---|---|
Risoluzione | typical | 0.01 | °C | ||
Precisione | typical | ±0.3 | °C | ||
Ripetibilità | ±0.1 | °C | |||
Isteresi | ±0.1 | °C | |||
Risposta | t 63% | 5 | 30 | S | |
Range di misura | estensione | -40 | 85 | °C | |
deriva | <0.04 | °C/yr |
Prestazioni del sensore per Umidità
Parametro | Condizione | min | tipico | max | unit |
---|---|---|---|---|---|
Risoluzione | tipico | 0.024 | %RH | ||
Precisione | tipico | ±2 | %RH | ||
Ripetibilità | ±0.1 | %RH | |||
Isteresi | ±1 | %RH | |||
Non lineare | <0.1 | %RH | |||
Risposta | t 63% | 8 | S | ||
Range di misura | estensione | 0 | 100 | %RH | |
Deriva | normale | <0.5 | %RH/yr |
Riassunto delle caratteristiche del sensore ATH10
- Intervallo di temperatura: da -40 a 85 ° C (precisione di ±0,3 ° C);
- Intervallo di umidità relativa: da 0 a 100 RH% (±2% di precisione);
- Alimentazione: 1,8 – 3,6V
- Indirizzo I2C: 0x38
Schema elettrico del modulo sensore AHT10
Sotto è riportato lo schema elettrico del modulo sensore trovato in rete. Dimensione PCB: 15×10 mm.
Per l’alimentazione viene utilizzato un regolatore XC6206-3.3V (datasheet) che viene utilizzato per ottenere i 3.3V per il sensore AHT10, dall’alimentazione di ingresso.
È inoltre accompagnato dai condensatori di filtro necessari per livellare l’uscita.
Il modulo include anche uno shifter di livello per la linea I2C, che è costruito da una rete di array di resistori SMD 10Kx4 (103) e da un chip MOSFET a doppio canale N a 6 pin tipo 2N7002KDW (K27 datasheet)
Comparazione con altri sensori
Oltre a questo sensore troviamo in commercio molti altri altri sensori di Temperatura/Umidità, come il modello ATH20, DHT11 e il DHT22.
Questi hanno hanno una forma diversa , il DHT11 ha la custodia di color blu mentre il DHT22 ha la custodia di color bianco. Il DHT11 è più economico del DHT22 a discapito però di una minore precisione.
Anche il tipo di interfaccia è diversa, single-bus per i tipi DHT e I2c per il tipo AHT10
![]() |
![]() |
![]() |
![]() |
AHT10 | AHT20 | DHT11 | DHT22 |
Di seguito una tabella con i margini di operabilità dei quattro sensori a confronto
AHT10 | AHT20 | DHT11 | DHT22 | |
---|---|---|---|---|
Intervallo di temperatura | -40- 85 °C | -40- 85 °C | 0-50 °C | -40-80 °C |
Precisione della temperatura | ±0.3% °C | ±0.3% °C | ±2% °C | ±0.5% °C |
Intervallo di umidità | 0-100% RH | 0-100% RH | 20-90% RH | 0-100% RH |
Precisione dell'umidità | ±2% RH | ±2% RH | ±5% RH | ±2% RH |
Tensione di funzionamento | 3.3V-6V | 3.3V-6V | 3.3V- 5.5V | 3.3V-6V |
Tipo di comunicazione | I2C | I2C | single-bus | single-bus |
Dove trovare il modulo AHT10
Il sensore AHT10 potrà essere acquistato online per esempio sul sito AliExpress a questo link
Il modulo è inviato all’interno di una busta antistatica, contenente anche un pin-strip maschio che deve essere saldato a vostra cura.
La descrizione dei pin è riportata nella parte inferiore del PCB
Libreria di gestione de sensore AHT10
Per facilitare l’uso del sensore è disponibile l’apposita libreria, basterà inserire nel campo di ricerca “Adafruit AHTx0“. Insieme alla libreria sarà richiesto di caricare delle dipendenze per questa libreria, accettare e installare tutto.
Vedete anche l’articolo Arduino – Tutorial, come installare una libreria
Test base del modulo sensore AHT10 con Arduino
Materiale occorrente
Per testare il funzionamento del modulo sensore monteremo un semplice circuito, il materiale occorrente è:
![]() |
![]() |
Arduino UNO o suo clone | Modulo sensore AHT10 |
![]() |
![]() |
Cavi di collegamento M/F | Bread board (opzionale) |
Schema dei collegamenti
I collegamenti sono mostrati nella figura sottostante.
Nota: nel prototipo è stata utilizzata al posto della scheda Arduino UNO, una scheda KS0486 Keyestudio PLUS completamente compatibile con l’ambiente di sviluppo Arduino IDE. Contiene tutte le funzioni della scheda Arduino UNO R3 e alcuni miglioramenti che ne rafforzano notevolmente la funzione.
Sulla scheda sono presenti del connettori per collegare direttamente i moduli.
Programma base per lettura dati da ATH10
Una volta caricato lo sketch si dovrà attivare il monitor seriale dell’IDE, a questo punto si dovrebbero leggere i valori della temperatura e dell’umidità letti dal sensore ATH20 che si aggiorneranno ogni secondo.
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 |
/********* Lettura sensore ATH10 con Monitor seriale https://www.adrirobot.it/ *********/ #include <Adafruit_AHTX0.h> Adafruit_AHTX0 aht; void setup() { Serial.begin(115200); Serial.println("Test lettura sensore AHT10"); if (!aht.begin()) { Serial.println("Impossibile trovare il sensore AHT10"); while (1) delay(10); } Serial.println("Sensore AHT10 trovato"); Serial.println("---------------------"); } void loop() { sensors_event_t humidity, temp; aht.getEvent(&humidity, &temp); // lettura dati aggiornati Serial.print("Temperatura: "); Serial.print(temp.temperature); Serial.println(" *C"); Serial.print("Umidità: "); Serial.print(humidity.relative_humidity); Serial.println("% rH"); Serial.println(); delay(1000); } |
Nel caso fosse riportata la scritta “Impossibile trovare il sensore”, controllare che il modulo sia correttamente alimentato, o che non siano invertiti i cavi SDA e SCL.
Sotto l’esempio dell’output tramite il monitor seriale.
Lettura valori tramite display OLED
Un’altra possibilità di utilizzo è quella di visualizzare i dati letti dal sensore AHT10 su un display OLED in questo caso un OLED da 0.96 ” con una risoluzione di 128×64 pixel, che sfrutta il driver SSD1306 e si interfaccia tramite la connessioni I2C.
Il display ha la particolarità di avere una parte superiore di colore giallo e quella inferiore di colore blu
Per informazioni sul modulo display vedere l’articolo Display bicolore OLED 0.96″ 128×64 – SSD1306
Materiale occorrente
![]() |
![]() |
Arduino UNO o suo clone | Modulo sensore AHT10 |
![]() |
![]() |
OLED da 0.96 ” 128×64 pixel | Cavi colorati M/M |
![]() |
|
Bread board |
Schema dei collegamenti
I collegamenti sono mostrati nella figura sottostante.
Libreria di gestione per il display OLED
Per utilizzare il display OLED è necessario installare l’apposita libreria. Può essere cercata tra le librerie installabili nell’IDE, basterà inserire nel campo di ricerca “Adafruit_SSD1306“.
Sarà anche mostrata una finestra che segnala che la libreria ha una dipendenza con la libreria grafica “Adafruit GFX Library“. Procedete premendo su “Install all”.
Per altre informazioni su come installare le librerie vedete l’articolo Arduino – Tutorial, come installare una libreria
Programma per lettura dati da AHT10 su display
Una volta caricati i dati letti dal sensore della temperatura e dell’umidità letti dal sensore AHT20 saranno mostrati sul display OLED, si aggiorneranno ogni secondo.
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 57 |
/********* Lettura sensore AHT10 su OLED SSD1306 128x64 https://www.adrirobot.it/ *********/ #include <Wire.h> #include <Adafruit_SSD1306.h> #include <Adafruit_AHTX0.h> #define OLED_ADDR 0x3C //verificare che sia corretto per il proprio modello #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_AHTX0 aht; Adafruit_Sensor *aht_humidity, *aht_temp; Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT); void setup() { Serial.begin(9600); display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); // Avviamo il display pronto a ricevere le informazioni da visualizzare delay(500); // Pausa di 0,5 secondi display.clearDisplay(); display.setTextColor(WHITE); Serial.println("Test lettura sensore AHT10"); if (!aht.begin()) { Serial.println("Impossibile trovare il sensore AHT10"); while (1) delay(10); } Serial.println("Sensore AHT10 trovato"); Serial.println("---------------------"); } void loop() { display.clearDisplay(); sensors_event_t humidity, temp; // Richaima i dati aggiornati di temperatura e umidità aht.getEvent(&humidity, &temp); // Mostra i dati sul display display.setCursor(0, 0); display.println("Sensore Temp/Umidita'"); display.setCursor(0, 20); display.print("Temp.: "); display.print(temp.temperature, 1); display.println(" C"); display.setCursor(0, 40); display.print("Umid.: "); display.print(humidity.relative_humidity, 1); display.println(" %"); // yield(); display.display(); delay(1000); //Tempo tra le misure } |
Nel caso fosse riportata la scritta “Impossibile trovare il sensore”, controllare che il modulo sia correttamente alimentato, o che non siano invertiti i cavi SDA e SCL.
Nel caso sul display non fossero visibili i dati, controllare che il display sia correttamente alimentato, o che non siano invertiti i cavi SDA e SCL. verificare anche che l’indirizzo del display sia quello indicato nel programma.
Sotto l’esempio dell’output tramite display OLED
Sensore di Temperatura e umidità tipo AHT20
E’ disponibile anche un modulo con un sensore tipo AHT20 (datasheet) , in questo caso montato insieme ad un sensore tipo BMP280 che permette la misura della pressione barometrica. Entrambi hanno un’uscita su bus I2C.
Raccolta di sensori di temperatura e umidità
Per altri modelli di sensore potete visitare la Raccolta di sensori di temperatura e umidità. Sono presenti sensori: misuratori di sola temperatura di tipo analogico o con uscita digitale, misuratori di temperatura IR, sensori di sola umidità, dispositivi che possono misurare sia la temperatura che l’umidità, altri ancora misurano anche altri parametri.