Tutoriale ESP32 25/55 - Misurare la temperatura utilizzando NTC e LCD | Kit di apprendimento IoT ESP32 di SunFounder

Tutoriale ESP32 25/55 - Misurare la temperatura utilizzando NTC e LCD | Kit di apprendimento IoT ESP32 di SunFounder

In questo tutorial, impareremo come misurare la temperatura utilizzando un termistore a coefficiente di temperatura negativo (NTC) e visualizzare le letture su uno schermo LCD utilizzando il microcontrollore ESP32. Il progetto comporterà il collegamento di un termistore NTC all'ESP32 e l'uso di un LCD per mostrare le letture della temperatura sia in Celsius che in Fahrenheit. Questo è un ottimo modo per iniziare con le tecniche di rilevamento e visualizzazione della temperatura utilizzando la piattaforma ESP32.

ESP32-25-NTC_termometroLCD

Utilizzeremo la scheda di espansione ESP32 di SunFounder, che migliora le capacità dell'ESP32 con Wi-Fi e Bluetooth integrati. Questa scheda può essere facilmente integrata con vari sensori e display, rendendola ideale per progetti IoT. Il termistore NTC fornirà letture della temperatura basate sulla sua resistenza, che varia in modo inverso rispetto alla temperatura. Per ulteriori chiarimenti sulla configurazione e sul codice, assicurati di controllare il video (nel video a 00:00).

Hardware Spiegato

I componenti principali utilizzati in questo progetto includono il microcontrollore ESP32, un termistore NTC, una resistenza e un display LCD. L'ESP32 funge da unità centrale di elaborazione, gestendo i dati provenienti dal termistore e controllando il display LCD. Il termistore NTC varia la sua resistenza in base alla temperatura, permettendoci di calcolare la temperatura in base alla configurazione del partitore di tensione con una resistenza fissa.

NTC_termistore

Il display LCD mostrerà le letture della temperatura sia in gradi Celsius che Fahrenheit. Utilizzeremo il protocollo I2C per comunicare con il LCD, il che semplifica il cablaggio riducendo il numero di pin necessari. Il termistore NTC ha una caratteristica in cui la sua resistenza diminuisce con un aumento della temperatura, cosa fondamentale per i nostri calcoli.

Dettagli della scheda dati

Produttore SunFounder
Numero di parte Termistore NTC
Resistenza Nominale 10 kΩ
Valore Beta 3950 K
Intervallo di Temperatura da -40°C a 125°C
Pacchetto Asseiale

  • Assicurati che il termistore sia classificato per l'intervallo di temperatura previsto.
  • Usa un resistore da 10 kΩ per il partitore di tensione; altrimenti, le letture saranno imprecise.
  • Verifica le connessioni per evitare cortocircuiti.
  • Mantieni corretto l'indirizzo I2C del LCD (tipicamente 0x27).
  • Utilizzare livelli di alimentazione appropriati per l'ESP32 e le periferiche.
  • Controlla che il baud rate del monitor seriale corrisponda alle impostazioni del codice (115200).
NTC_formula

Istruzioni per il cablaggio

ESP32-11_LCD-wiring
ESP32-25-NTC_thermometer_wiring

Per collegare i componenti, inizia collegando il termistore NTC all'ESP32. Il termistore non ha polarità, quindi può essere collegato in entrambe le direzioni. Collega un capo del termistore al pin di terra (GND) sull'ESP32. L'altro capo si collega a una resistenza da 10 kΩ, che poi si collega al pin 3.3V sull'ESP32. Il punto di giunzione tra il termistore e la resistenza si collegherà al pin35sull'ESP32, che leggerà la tensione per i calcoli della temperatura.

Per il LCD, collegare il pin di terra (tipicamente il secondo pin dall'alto) a GND sull'ESP32. Quindi, collegare il VCC (spesso il primo pin) al pin 5V sull'ESP32. Il pin SDA (di solito il terzo pin) dovrebbe collegarsi al pin21sull'ESP32 e il pin SCL (spesso il quarto pin) dovrebbe collegarsi al pin22Assicurati che tutte le connessioni siano sicure e controlla di nuovo i numeri dei pin per evitare errori.

Esempi di codice e guida passo passo

Il codice inizia definendo le costanti per il termistore, inclusi il numero di pin, la tensione di riferimento e i valori di resistenza. La funzione di setup inizializza la comunicazione seriale e imposta il pin del termistore come ingresso.

const int thermistorPin = 35; // Pin connected to the thermistor
const float referenceVoltage = 3.3;
const float referenceResistor = 10000; // the 'other' resistor

Il ciclo principale legge il valore analogico dal pin del termistore, calcola la resistenza e poi calcola la temperatura sia in Celsius che in Fahrenheit utilizzando l'equazione del parametro Beta. I valori calcolati vengono stampati sul monitor seriale.

int adcValue = analogRead(thermistorPin); // Read ADC value
float voltage = (adcValue * referenceVoltage) / 4095.0; // Calculate voltage
float resistance = (voltage * referenceResistor) / (referenceVoltage - voltage); // Calculate thermistor resistance

Infine, la temperatura viene visualizzata sul LCD. Lalcd.print()La funzione viene utilizzata per mostrare i valori della temperatura, insieme al simbolo di grado.

lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(tempC, 1);
lcd.write(223); // Degree symbol
lcd.print("C");

Questo codice aggiornano efficacemente il LCD ogni 300 millisecondi con le ultime letture della temperatura, consentendo il monitoraggio in tempo reale.

Dimostrazione / Cosa Aspettarsi

Eseguendo il codice e completando il cablaggio, dovresti vedere le letture della temperatura visualizzate sul LCD sia in Celsius che in Fahrenheit. Se tieni il termistore in mano, dovresti notare l'aumento della temperatura man mano che la resistenza diminuisce. Fai attenzione alla polarità invertita e assicurati che le connessioni siano sicure, poiché un cablaggio improprio può portare a letture inaccurate (nel video a 04:50).

Timestamp video

  • 00:00 Inizio
  • 1:50 introduzione al progetto
  • 5:32 cablaggio spiegato
  • 8:20 Codice NTC Arduino per ESP32 spiegato
  • 13:38 Selezione della scheda ESP32 e della porta COM nell'Arduino IDE
  • 15:20 Dimostrazione di misurazione della temperatura NTC
  • 17:34 temperatura NTC su LCD1602 con ESP32
  • 18:42 Codice NTC Arduino con LCD spiegato
  • 21:15 Dimostrazione della temperatura su LCD
  • 23:13 LCD verde o LCD blu1601?

Immagini

ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
ESP32-11_LCD-wiring-schematic
NTC_thermistor
NTC_thermistor
ESP32-25-NTC_thermometer_schematic
ESP32-25-NTC_thermometer_schematic
ESP32-25-NTC_thermometer_wiring
ESP32-25-NTC_thermometer_wiring
NTC_formula
NTC_formula
ESP32-25-NTC_thermometeLCD
ESP32-25-NTC_thermometeLCD
824-ESP32 Tutorial 25/55- SunFounder doc page NTC Thermometer
Lingua: C++
825-ESP32 Tutorial 25/55- Arduino code for LCD with NTC thermistor
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Nessun file disponibile.