Module cảm biến nhiệt độ không tiếp xúc MLX90614 I2C. Sử dụng tia hồng ngoại IR để đo nhiệt độ trên bề mặt vật thể. Không cẩn phải tiếp xúc với bề mặt vật thể nên rất an toàn khi sử dụng.
Sử dụng cho các ứng dụng đo nhiệt độ, Arduino,…. giúp bạn có thể nhanh chóng biết được nhiệt độ của một vật thể mà không cần phải đo tiếp xúc.
Thông số kĩ thuật
- Điện áp hoạt động: 5VDC
- Dải nhiệt độ đo: -70 – +380C
- Giao tiếp: I2C có gắn sẵn điện trở kéo lên 10k
- Độ phân giải: 0.02ºC
- Độ chính xác: 0.1ºC
Sơ đồ chân mô-đun MLX90614
Mô-đun MLX90614 đưa ra các kết nối sau.
VCClà chân nguồn. Bạn có thể kết nối nó với đầu ra 3,3V hoặc 5V từ Arduino của bạn.
GNDlà mặt đất.
SCLlà chân Clock I2C, kết nối với dòng đồng hồ I2C của Arduino của bạn.
SDAlà chân Data I2C, kết nối với dòng dữ liệu I2C của Arduino của bạn.
Cảm biến nhiệt độ môi trường thay thế :
DHT11 , DHT22 , PT100 , TMP36, DS18B20
Ứng dụng của MLX90614
- Đo nhiệt độ của các đối tượng chuyển động
- Súng nhiệt công nghiệp
- Đo nhiệt độ cơ thể con người
- Kiểm soát nhiệt độ tại nhà / văn phòng
- Giám sát chăn nuôi
- Phát hiện chuyển động
Phần cứng cần thiết:
- MLX90614 Mạch Cảm Biến Nhiệt Độ Không Tiếp Xúc
- Oled LCD
- Arduino
Sơ đồ kết nối:
Thư viện / Datasheet:
MLX90614 và ssd1306 Mã Arduino Oled :
#include <Adafruit_MLX90614.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define bt 3
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
double temp_amb;
double temp_obj;
void setup()
{
Serial.begin(9600);
mlx.begin(); //Initialize MLX90614
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //initialize with the I2C addr 0x3C (128x64)
Serial.println("Cam bien nhiet do MLX90614");
pinMode(bt, INPUT_PULLUP);
display.clearDisplay();
display.setCursor(25, 15);
display.setTextSize(1);
display.setTextColor(WHITE);
display.println(" mlx90614");
display.setCursor(25, 35);
display.setTextSize(1);
display.print("Dang khoi tao");
display.display();
delay(5000);
}
void loop()
{
//Reading room temperature and object temp
//for reading Fahrenheit values, use
//mlx.readAmbientTempF() , mlx.readObjectTempF() )
temp_amb = mlx.readAmbientTempC();
temp_obj = mlx.readObjectTempC();
//Serial Monitor
if (digitalRead(bt) == LOW)
{
display_temp_obj();
delay(1000);
}
else {
Serial.print("Nhiet do phong = ");
Serial.println(temp_amb);
Serial.print("Nhiet do doi tuong = ");
Serial.println(temp_obj);
display.clearDisplay();
display.setCursor(25, 10);
display.setTextSize(1);
display.setTextColor(WHITE);
display.println("Nhiet do phong");
display.setCursor(25, 30);
display.setTextSize(2);
display.print(temp_amb);
display.print((char)247);
display.print("C");
display.display();
}
delay(1000);
}
void display_temp_obj()
{
display.clearDisplay();
display.setCursor(25, 10);
display.setTextSize(1);
display.setTextColor(WHITE);
display.println(" Nhiet do Obj");
display.setCursor(25, 30);
display.setTextSize(2);
display.print(temp_obj);
display.print((char)247);
display.print("C");
display.display();
}
Nhận xét