Cảm biến nhiệt độ hồng ngoại MLX90614 với Arduino, Sơ đồ mạch và Lập trình
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
Phần cứng cần thiết:
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();
}
Đăng nhận xét