ESP32 Cảm Biến Nhiệt Độ

Hướng dẫn này sẽ chỉ bạn cách sử dụng ESP32 để đọc nhiệt độ từ cảm biến nhiệt độ DS18B20 và hiển thị kết quả lên Serial Monitor.

Linh Kiện Cần Thiết

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×DS18B20 Temperature Sensor (CÓ Adapter)
1×DS18B20 Temperature Sensor (KHÔNG Adapter)
1×breadboard (bo mạch thí nghiệm)
1×dây jumper (dây nối)
1×(Tùy chọn) DC Power Jack
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Giới Thiệu Về Cảm Biến Nhiệt Độ One Wire - DS18B20

Sơ Đồ Chân DS18B20 Temperature Sensor

Cảm biến nhiệt độ DS18B20 có ba chân:

  • Chân GND: kết nối chân này với GND (0V)
  • Chân VCC: kết nối chân này với VCC (5V hoặc 3.3V)
  • Chân DATA: là 1-Wire Data Bus. Chân này được kết nối với một chân digital trên ESP32.

Cảm biến DS18B20 có hai dạng:

  • Dạng TO-92 package (trông giống như một transistor)
  • Dạng probe chống nước. Chúng ta sẽ sử dụng dạng này trong hướng dẫn.
ds18b20 cảm biến nhiệt độ sơ đồ chân

Việc kết nối cảm biến nhiệt độ DS18B20 với Arduino thường cần một điện trở kéo lên (pull-up resistor), có thể gây phiền toái. Tuy nhiên, một số nhà sản xuất đã làm cho quá trình này đơn giản hơn bằng cách cung cấp adapter đấu nối có điện trở kéo lên tích hợp sẵn và screw terminal block để dễ dàng kết nối.

Sơ Đồ Đấu Nối Giữa Cảm Biến Nhiệt Độ DS18B20 và ESP32

  • Cách kết nối ESP32 và cảm biến nhiệt độ DS18B20 sử dụng breadboard.
ESP32 cảm biến nhiệt độ sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.

  • Cách kết nối ESP32 và cảm biến nhiệt độ DS18B20 sử dụng breadboard và adapter.
ESP32 ds18b20 sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

how to connect ESP32 and cảm biến nhiệt độ
  • Sơ đồ đấu nối thực tế với adapter
ESP32 ds18b20 adapter sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Để dễ dàng kết nối, bạn nên mua cảm biến DS18B20 đi kèm với adapter đấu nối có tích hợp sẵn điện trở, loại bỏ nhu cầu sử dụng thêm điện trở trong quá trình đấu nối.

Code ESP32

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/esp32-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN 17 // ESP32 pin GPIO17 connected to DS18B20 sensor's DATA pin OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); float tempC; // temperature in Celsius float tempF; // temperature in Fahrenheit void setup() { Serial.begin(9600); // initialize serial DS18B20.begin(); // initialize the DS18B20 sensor } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures tempC = DS18B20.getTempCByIndex(0); // read temperature in °C tempF = tempC * 9 / 5 + 32; // convert °C to °F Serial.print("Temperature: "); Serial.print(tempC); // print the temperature in °C Serial.print("°C"); Serial.print(" ~ "); // separator between °C and °F Serial.print(tempF); // print the temperature in °F Serial.println("°F"); delay(500); }

Các Bước Thực Hiện

  • Nếu đây là lần đầu bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Thực hiện đấu nối theo sơ đồ trên.
  • Kết nối board ESP32 với PC của bạn qua cáp micro USB
  • Mở Arduino IDE trên PC.
  • Chọn đúng board ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
  • Click vào biểu tượng Libraries ở thanh bên trái của Arduino IDE.
  • Tìm kiếm "DallasTemperature" trong ô tìm kiếm, sau đó tìm thư viện DallasTemperature của Miles Burton.
  • Click nút Install để cài đặt thư viện DallasTemperature.
ESP32 dallas temperature thư viện
  • Bạn sẽ được hỏi để cài đặt dependency. Click nút Install All để cài đặt thư viện OneWire.
ESP32 onewire thư viện
  • Sao chép code trên và dán vào Arduino IDE.
  • Biên dịch và upload code lên board ESP32 bằng cách click nút Upload trên Arduino IDE
  • Làm cho cảm biến nóng hơn hoặc lạnh hơn bằng cách nắm cảm biến nhiệt độ DS18B20 trong tay, hoặc nhúng nó vào nước nóng và nước lạnh.
  • Xem kết quả trên Serial Monitor. Nó sẽ hiển thị như dưới đây:
COM6
Send
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Bình Luận