Misurazione della temperatura con ESPTOP 10 usando Arduino IDE

Misurazione della temperatura con ESPTOP 10 usando Arduino IDE
ESP32 è una scheda IoT basata su microcontrollori. Utilizzando ESP32 possiamo interfacciarsi diversi moduli e caricare tali dati su qualsiasi server per un migliore monitoraggio dei dispositivi. Proprio come Arduino, ESP32 è in grado di interfacciarsi con una vasta gamma di hardware grazie ai suoi pin GPIO. Oggi discuteremo di come ESP32 può servire al suo scopo nell'osservazione delle variazioni di temperatura usando il sensore di temperatura LM35.

ESP32 con LM35

Per iniziare a misurare la temperatura con ESP32 abbiamo bisogno di un sensore esterno. Quindi, useremo LM35, un sensore di temperatura ampiamente utilizzato con le schede di microcontrollore. Un intervallo di temperatura massimo da 55 ° C a 150 ° C può essere misurato. Bisogna solo accenderlo e leggerà istantaneamente il livello di tensione sul terminale di uscita. Il pin VOUT mappe la temperatura di uscita sul pin ESP32.

Di seguito sono riportate alcune specifiche tecniche di LM35:

  • Fattore di scala lineare + 10-mV/° C
  • 0.5 ° C Accuratezza garantita (a 25 ° C)
  • Intervallo di temperatura da -55 ° C a 150 ° C
  • Intervallo di tensione da 4 V a 30 V
  • Drenaggio di corrente inferiore a 60 μA
  • Non linearità solo ± ¼ ° C tipica

Pinout LM35

Il sensore LM35 ha tre piani diversi:

Codice PIN Nome PIN Descrizione
1 VCC Questo pin può prendere la tensione di ingresso di 5V
2 Analogico Per un aumento di 1c verrà osservato un aumento di tensione di 10 mV. L'intervallo tipico è da -1 V (-55 ° C) a 6 V (150 ° C)
3 Terra Collegato a GND di ESP32

Circuito

Collegare LM35 con ESP32 utilizzando i tre terminali sul sensore. Due delle gambe laterali saranno collegate al pin GND e VIN di ESP32 mentre il pin vout centrale sarà collegato al pin GPIO di ESP32. La seguente immagine illustra le connessioni delle schede ESP32 con LM35:

La tabella seguente spiega il perno di connessione per il sensore di temperatura LM35:

Pin LM35 ESP32 PIN
Pin 1 vs Vin
PIN 2 VOUT D35
Pin 3 GND GND

Hardware

Per creare il circuito di ESP32 con il sensore di temperatura LM35, sarà necessario un elenco di componenti.

  • Sensore di temperatura LM35
  • Scheda ESP32
  • Fili jumper
  • Breadboard
  • Cavo micro USB

Codice

Apri il codice di scrittura IDE di seguito in editor. Seleziona la scheda ESP32 e fai clic su Carica.

#include "ESP_ADC_CAL.H " /*ESP32 File di calibrazione ADC* /
#define LM35_GPIO_PIN 35 /*Il pin digitale 35 è impostato* /
int lm35_input = 0;
float tempc = 0.0; /*La variabile tempc è inizializzata*/
Float tempf = 0.0; /*La variabile tempf è inizializzata*/
Tensione float = 0.0; /*La tensione variabile è inizializzata*/
void setup ()

Seriale.Inizia (115200); /*Inizia la comunicazione seriale*/

void loop ()

Lm35_input = analogread (LM35_GPIO_PIN); /*Leggi LM35_GPIO_PIN PIN ADC*/
Voltage = readaDC_cal (lm35_input); /*Calibra l'ADC e ottengono tensione (in mv)*/
Tempc = tensione / 10; /*Tempc = tensione (mv) / 10* /
Tempf = (tempc * 1.8) + 32; /* Stampa le letture*/
Seriale.stampa ("temperatura in ° C =");
Seriale.print (tempc); /*Stampa temperatura in C*/
Seriale.print (", temperatura in ° f =");
Seriale.println (tempf); /*Stampa temperatura in f*/
ritardo (1000);

/*Codice per la calibrazione digitale per ottenere letture precise*/
uint32_t readadc_cal (int adc_raw)

ESP_ADC_CAL_CHARACTERISTIS_T ADC_CHARS;
ESP_ADC_CAL_CHARACTERIZE (ADC_UNIT_1, ADC_ATTEN_DB_11, ADC_WIDTH_BIT_12, 1100 e ADC_CHARS);
return (ESP_ADC_CAL_RAW_TO_VOLTAGE (ADC_RAW, & ADC_CHARS));

Per iniziare a misurare la temperatura usando ESP32 dobbiamo includere un file di calibrazione ADC nel codice. Usando questo possiamo aumentare la sensibilità alla temperatura LM35.

#include "ESP_ADC_CAL.H"

Definire il perno LM35 in cui è collegato con ESP32. Questo pin GPIO verrà utilizzato come canale di ingresso analogico ADC.

#define LM35_GPIO_PIN 35

Ora crea quattro variabili, una di int e 3 galleggiante Tipi di dati che manterranno l'ingresso LM35 e leggi la tensione dal sensore per convertire i valori in grado e temperatura Celsius. Di seguito sono riportate le quattro variabili:

int lm35_input = 0;
float tempc = 0.0;
Float tempf = 0.0;
Tensione float = 0.0;

In impostare Parte della comunicazione seriale inizializzata del codice definendo il tasso di baud.

void setup ()

Seriale.Inizia (115200);

Nel ciclo continuo Parte dello schizzo Leggi i valori analogici e memorizzali nelle variabili di tensione.

Lm35_input = analogread (LM35_GPIO_PIN);
Voltage = readaDC_cal (lm35_input);

Quindi stampare la temperatura in ° C e ° F.

Tempc = tensione / 10;
Tempf = (tempc * 1.8) + 32;
Seriale.stampa ("temperatura in ° C =");
Seriale.print (tempc);
Seriale.print (", temperatura in ° f =");
Seriale.println (tempf);

Aggiungi questo codice al tuo schizzo Questo calibra la lettura dell'ADC input e li convertirà in temperatura ° C e ° F.

uint32_t readadc_cal (int adc_raw)

ESP_ADC_CAL_CHARACTERISTIS_T ADC_CHARS;
ESP_ADC_CAL_CHARACTERIZE (ADC_UNIT_1, ADC_ATTEN_DB_11, ADC_WIDTH_BIT_12, 1100 e ADC_CHARS);
return (ESP_ADC_CAL_RAW_TO_VOLTAGE (ADC_RAW, & ADC_CHARS));

Produzione

Utilizzando la comunicazione seriale, possiamo stampare l'output su un monitor seriale. Verranno mostrate due diverse temperature, una rappresenterà in C e altro in F.

Dopo aver applicato il calore al sensore utilizzando un accendino a gas, si osserva una variazione graduale di temperatura.

Conclusione

ESP32 è facile da usare e gestisce una scheda microcontrollore intuitiva che può interfacciarsi con una vasta gamma di sensori. Qui in questa scrittura evidenziamo tutti i passaggi necessari per iniziare a misurare la temperatura utilizzando la scheda ESP32. Viene utilizzato un sensore di temperatura LM35 che stampa la temperatura misurata sul monitor seriale. Sono disponibili anche altri sensori di temperatura con più precisione di LM35 per saperne clic qui.