Pomiar temperatury za pomocą ESPTOP 10 za pomocą Arduino IDE

Pomiar temperatury za pomocą ESPTOP 10 za pomocą Arduino IDE
ESP32 to płyta IoT oparta na mikrokontrolerze. Korzystając z ESP32, możemy połączyć różne moduły i przesyłać te dane na dowolnym serwerze w celu lepszego monitorowania urządzeń. Podobnie jak Arduino, ESP32 jest w stanie łączyć się z dużą gamą sprzętu dzięki swoim pinom GPIO. Dzisiaj omówimy, w jaki sposób ESP32 może służyć swojemu celowi w obserwowaniu zmian temperatury za pomocą czujnika temperatury LM35.

ESP32 z LM35

Aby rozpocząć pomiar temperatury z ESP32, potrzebujemy czujnika zewnętrznego. Będziemy więc używać LM35, czujnika temperatury szeroko stosowanego z płytkami mikrokontrolerowymi. Można zmierzyć maksymalny zakres temperatury od 55 ° C do 150 ° C. Po prostu trzeba go włączyć i natychmiast odczytuje poziom napięcia na zacisku wyjściowym. Vout pin mapuje temperaturę wyjściową na pin ESP32.

Poniżej przedstawiono niektóre techniczne specyfikacje LM35:

  • Współczynnik skali liniowej + 10 mV/° C
  • 0.5 ° C zapewnia dokładność (w 25 ° C)
  • Zakres temperatur od -55 ° C do 150 ° C
  • Zakres napięcia od 4 V do 30 V
  • Mniej niż 60 μA prąd odpływowy
  • Tylko nieliniowość ± ¼ ° C

LM35 Pinout

Czujnik LM35 ma trzy różne szpilki:

Kod PIN Nazwa pin Opis
1 VCC Ten pin może przyjąć napięcie wejściowe 5 V
2 Analog Dla wzrostu o 1 °. Typowy zakres wynosi od -1 V (-55 ° C) do 6 V (150 ° C)
3 Grunt Połączone z GND ESP32

Okrążenie

Podłącz LM35 z ESP32 za pomocą trzech zacisków na czujniku. Dwa z bocznych nóg zostaną podłączone do pin GND i VIN ESP32, podczas gdy centralny pin vout będzie podłączony do pinu GPIO ESP32. Następujący obraz ilustruje połączenia płyt ESP32 z LM35:

Poniżej tabela Wyjaśnij styk połączenia dla czujnika temperatury LM35:

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

Sprzęt komputerowy

Aby utworzyć obwód ESP32 z czujnikiem temperatury LM35 po listach komponentów.

  • Czujnik temperatury LM35
  • ESP32 Board
  • Przewody zworki
  • Tablica chleba
  • Kabel mikro USB

Kod

Otwórz kod zapisu IDE poniżej w edytorze. Wybierz płytę ESP32 i kliknij Prześlij.

#include "esp_adc_cal.H " /*ESP32 Plik kalibracji ADC* /
#Define LM35_GPIO_PIN 35 /*Digital Pin 35 jest ustawiony* /
int lm35_input = 0;
float tempc = 0.0; /*TEMPC zmienna jest inicjowana*/
float tempf = 0.0; /*zmienna TEMPF jest inicjowana*/
napięcie zmiennoprzecinkowe = 0.0; /*Zmienne napięcie jest inicjowane*/
void Setup ()

Seryjny.rozpocząć (115200); /*Rozpoczyna się komunikacja szeregowa*/

Void Loop ()

Lm35_input = analogread (lm35_gpio_pin); /*Odczyt LM35_GPIO_PIN ADC Pin*/
Voltage = readAdc_Cal (lm35_input); /*Kalibruj ADC i uzyskaj napięcie (w MV)*/
Tempc = napięcie / 10; /*Tempc = napięcie (mv) / 10* /
Tempf = (tempc * 1.8) + 32; /* Wydrukuj odczyty*/
Seryjny.wydruku („Temperatura w ° C =”);
Seryjny.druk (tempc); /*Drukuj temp w C*/
Seryjny.druk (", temperatura w ° f =");
Seryjny.println (tempf); /*Drukuj temp w F*/
opóźnienie (1000);

/*Kod kalibracji cyfrowej, aby uzyskać precyzyjne odczyty*/
uint32_t readAdc_Cal (int adc_raw)

esp_adc_cal_characteristics_t adc_chars;
esp_adc_cal_characterize (adc_unit_1, adc_atten_db_11, adc_width_bit_12, 1100 i adc_chars);
return (ESP_ADC_CAL_RAW_TO_VOLTAGE (ADC_RAW, & ADC_CHARS));

Aby rozpocząć pomiar temperatury za pomocą ESP32, musimy dołączyć plik kalibracji ADC w kodzie. Za pomocą tego możemy zwiększyć wrażliwość na temperaturę LM35.

#include "esp_adc_cal.H"

Zdefiniuj styk LM35, z którym jest on połączony z ESP32. Ten pin GPIO będzie używany jako kanał wejściowy analogowy ADC.

#Define LM35_GPIO_PIN 35

Teraz utwórz cztery zmienne, jedna z int i 3 platforma Typy danych, które będą przechowywać wejście LM35 i odczytać napięcie z czujnika w celu przekonwertowania wartości na temperaturę stopnia i Celsjusza. Poniżej znajdują się cztery zmienne:

int lm35_input = 0;
float tempc = 0.0;
float tempf = 0.0;
napięcie zmiennoprzecinkowe = 0.0;

W organizować coś część kodu zainicjowana komunikacja szeregowa poprzez definiowanie szybkości transmisji.

void Setup ()

Seryjny.rozpocząć (115200);

w pętla Część wartości analogowych odczytu szkicu i przechowuj je w zmiennych napięcia.

Lm35_input = analogread (lm35_gpio_pin);
Voltage = readAdc_Cal (lm35_input);

Następnie wydrukuj temperaturę w ° C i ° F.

Tempc = napięcie / 10;
Tempf = (tempc * 1.8) + 32;
Seryjny.wydruku („Temperatura w ° C =”);
Seryjny.druk (tempc);
Seryjny.druk (", temperatura w ° f =");
Seryjny.println (tempf);

Dodaj ten kod do swojego szkicu To skalibruje odczyt wejściowy ADC i przekonwertuje je na temperaturę ° C i ° F.

uint32_t readAdc_Cal (int adc_raw)

esp_adc_cal_characteristics_t adc_chars;
esp_adc_cal_characterize (adc_unit_1, adc_atten_db_11, adc_width_bit_12, 1100 i adc_chars);
return (ESP_ADC_CAL_RAW_TO_VOLTAGE (ADC_RAW, & ADC_CHARS));

Wyjście

Korzystając z komunikacji szeregowej, możemy wydrukować wyjście na monitorze szeregowym. Wyświetlone zostaną dwie różne temperatury, jedna będzie reprezentowana w C i drugiej jednej w F.

Po nałożeniu ciepła do czujnika za pomocą zapalniczki gazowej zostanie zaobserwowana stopniowa zmiana temperatury.

Wniosek

ESP32 jest łatwy w użyciu i obsługuje przyjazną dla użytkownika płytę mikrokontrolera, która może łączyć się z dużą ilością czujników. Tutaj, w tym zapisie. Używany jest czujnik temperatury LM35, który wydrukuje zmierzoną temperaturę na monitorze szeregowym. Dostępnych jest również wiele innych czujników temperatury o większej precyzji niż LM35, aby dowiedzieć się o nich kliknij tutaj.