Cảm biến nhiệt độ là một trong những linh kiện phổ biến trong các hệ thống giám sát và điều khiển tự động. Trong bài viết này, chúng ta sẽ tìm hiểu về các loại cảm biến nhiệt độ và cách kết nối với Arduino để đo nhiệt độ thực tế.
1. Cảm biến nhiệt độ là gì?
🔹 Cảm biến nhiệt độ là thiết bị đo nhiệt độ môi trường và chuyển đổi thành tín hiệu điện để vi điều khiển có thể đọc được.
🔹 Ứng dụng phổ biến:
✔ Đo nhiệt độ môi trường trong nhà và ngoài trời
✔ Giám sát nhiệt độ trong công nghiệp
✔ Điều khiển quạt, điều hòa không khí, cảnh báo nhiệt độ cao
2. Các loại cảm biến nhiệt độ phổ biến
Loại cảm biến | Phạm vi đo (°C) | Tín hiệu đầu ra | Độ chính xác |
---|---|---|---|
DHT11 | 0 – 50°C | Kỹ thuật số | ±2°C |
DHT22 (AM2302) | -40 – 80°C | Kỹ thuật số | ±0.5°C |
LM35 | -55 – 150°C | Analog | ±0.5°C |
DS18B20 | -55 – 125°C | 1-Wire | ±0.5°C |
💡 DHT11 và DHT22 là cảm biến kỹ thuật số, dễ sử dụng nhưng DHT22 có độ chính xác cao hơn.
💡 LM35 là cảm biến analog, cho giá trị điện áp tỷ lệ với nhiệt độ.
💡 DS18B20 sử dụng giao thức 1-Wire, có thể đọc nhiều cảm biến cùng lúc trên một dây tín hiệu.
3. Kết nối cảm biến nhiệt độ với Arduino
a) Kết nối DHT11/DHT22 với Arduino
Chân DHT11/DHT22 | Kết nối Arduino |
---|---|
VCC (Chân 1) | 5V |
Data (Chân 2) | Chân 2 |
GND (Chân 4) | GND |
💡 Lưu ý: DHT11/DHT22 cần điện trở 10KΩ giữa chân VCC và Data để hoạt động ổn định.
b) Kết nối LM35 với Arduino
Chân LM35 | Kết nối Arduino |
---|---|
VCC | 5V |
OUT | A0 |
GND | GND |
💡 LM35 xuất tín hiệu điện áp tuyến tính, 10mV tương ứng với 1°C.
c) Kết nối DS18B20 với Arduino
Chân DS18B20 | Kết nối Arduino |
---|---|
VCC | 5V |
Data | Chân 2 |
GND | GND |
💡 DS18B20 cũng cần điện trở 4.7KΩ giữa VCC và Data để hoạt động đúng.
4. Lập trình đo nhiệt độ với Arduino
a) Code đo nhiệt độ với DHT11/DHT22
Cài đặt thư viện:
1️⃣ Mở Arduino IDE, vào Sketch → Include Library → Manage Libraries
2️⃣ Tìm DHT sensor library và cài đặt
<!-- Thư viện DHT -->
#include < DHT.h >
#define DHTPIN 2 // Chân kết nối cảm biến
#define DHTTYPE DHT11 // Đổi thành DHT22 nếu dùng DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float temp = dht.readTemperature(); // Đọc nhiệt độ
Serial.print("Nhiệt độ: ");
Serial.print(temp);
Serial.println(" °C");
delay(2000);
}
b) Code đo nhiệt độ với LM35
#define LM35 A0 // Cảm biến LM35 nối chân A0
void setup() {
Serial.begin(9600);
}
void loop() {
int raw = analogRead(LM35);
float temp = (raw * 5.0 * 100.0) / 1024.0; // Chuyển đổi giá trị ADC thành độ C
Serial.print("Nhiệt độ: ");
Serial.print(temp);
Serial.println(" °C");
delay(1000);
}
c) Code đo nhiệt độ với DS18B20
Cài đặt thư viện:
1️⃣ Cài OneWire và DallasTemperature từ Arduino Library Manager
#include < OneWire.h >
#include < DallasTemperature.h >
#define ONE_WIRE_BUS 2 // DS18B20 nối chân số 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600);
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
Serial.print("Nhiệt độ: ");
Serial.print(temp);
Serial.println(" °C");
delay(2000);
}
5. Ứng dụng mở rộng của cảm biến nhiệt độ
✅ Điều khiển quạt hoặc máy lạnh tự động
✅ Giám sát nhiệt độ trong tủ lạnh, nhà kính
✅ Hệ thống cảnh báo nhiệt độ cao bằng còi hoặc màn hình LCD
✅ Lưu trữ dữ liệu nhiệt độ vào thẻ SD hoặc gửi lên IoT
6. Kết luận
Bạn đã học cách kết nối và lập trình cảm biến nhiệt độ trên Arduino. Trong bài tiếp theo, chúng ta sẽ tìm hiểu về cảm biến ánh sáng và cách ứng dụng nó! 🚀
👉 Bạn đã thử đo nhiệt độ bằng Arduino chưa? Nếu gặp lỗi, hãy để lại bình luận để được hỗ trợ nhé! 🎯