Sử dụng camera nhiệt tầm xa MLX90640 để đo nhiệt độ môi trường

Camera nhiệt tầm xa thường được sử dụng giám sát nhiệt độ trong các hệ thống công nghiệp, phát hiện sớm các sự cố nhiệt, kiểm tra các tòa nhà và hệ thống điện, cũng như hỗ trợ các hoạt động cứu hộ và an ninh.

Camera nhiệt tầm xa sử dụng cảm biến MLX90640 là một cảm biến ảnh nhiệt hồng ngoại (thermal infrared sensor) do hãng Melexis sản xuất, tích hợp ma trận 32×24 điểm ảnh nhiệt (total 768 pixel). Mỗi điểm ảnh có khả năng đo nhiệt độ từ xa mà không cần tiếp xúc vật lý với vật thể. Nhờ đó, cảm biến này có thể tái tạo bản đồ nhiệt của khu vực trước mặt một cách trực quan.

Với giao tiếp I²C đơn giản, MLX90640 có thể dễ dàng kết nối với các vi điều khiển như Arduino, ESP32, Raspberry Pi. Cảm biến hoạt động ổn định trong dải nhiệt độ rộng từ –40 °C đến +300 °C, với độ chính xác khoảng ±1 °C, độ nhạy nhiệt (NETD) tốt và tốc độ làm mới lên đến 64 Hz. Tài liệu kĩ thuật của cảm biến nhiệt hồng ngoại MLX90640-D110 tại đây.

Chuẩn bị phần cứng để đọc dữ liệu cảm biến ảnh nhiệt hồng ngoại trên Raspberry Pi

Chúng ta sẽ cần:

Sơ đồ kết nối để đọc dữ liệu cảm biến nhiệt hồng ngoại trên Raspberry Pi

Cảm biến nhiệt hồng ngoại Raspberry Pi
VCC 5V
GND GND
SDA SDA (BCM2)
SCL SCL (BCM3)

Sau khi kết nối chân với nhau, chúng ta cắm nguồn và thiết lập chương trình trên phần mềm. Kích hoạt bus Raspberry Pi I2C, SPI và Serial Port và khởi động lại sau khi cài đặt. Nên khởi động lại sau khi thiết lập bước tiếp theo. Chúng ta sẽ lập trình ngôn ngữ là C++ để hiển thị thông số ảnh nhiệt hồng ngoại.

Điều chỉnh tốc độ I2C và thêm tham số tốc độ vào tệp /boot/config.txt. Khởi động lại để có hiệu lực sau khi thay đổi. Các lệnh như hình dưới đây:

sudo nano /boot/config.txt
dtparam=i2c_arm=on,i2c_arm_baudrate=400000

Nếu bạn muốn tự mình cài đặt thư viện và tải xuống bản demo ví dụ C/C++ theo nhà sản xuất Waveshare, bạn có thể tham khảo các lệnh sau:

cd ~
wget https://files.waveshare.com/upload/5/57/Mlx90640-thermal_camera.zip
unzip Mlx90640_thermal_camera.zip
cd mlx90640_thermal_camera/RaspberryPi/cpp/
chmod +x install.sh
sudo ./install.sh

Nhập tiếp các lệnh sau vào terminal Raspberry Pi

make
sudo -E ./main

Trong trường hợp báo lỗi không thể chạy lệnh make, chúng ta cần thay đổi dữ liệu trong tệp makefile trong thư mục mlx90640_thermal_camera/RaspberryPi/cpp/ như sau:

CC = g++
CXXFLAGS = -O -g $(shell sdl2-config --cflags) -I ./Include -I ./Include/mlx90640-driver
LDFLAGS = $(shell sdl2-config --libs) -lSDL2_ttf

# Files
OBJS = main.o MLX90640_API.o MLX90640_LINUX_I2C_Driver.o
TARGET = main
STATIC_LIB = libMLX90640_API.a

# Targets
all: $(TARGET)

$(TARGET): main.o $(STATIC_LIB)
    $(CC) -o $@ main.o $(STATIC_LIB) $(LDFLAGS)

main.o: main.cpp
    $(CC) $(CXXFLAGS) -c $<

MLX90640_API.o: Source/mlx90640-driver/MLX90640_API.cpp
    $(CC) $(CXXFLAGS) -c $< -o $@

MLX90640_LINUX_I2C_Driver.o: Source/mlx90640-driver/MLX90640_LINUX_I2C_Driver.cpp
    $(CC) $(CXXFLAGS) -c $< -o $@

$(STATIC_LIB): MLX90640_API.o MLX90640_LINUX_I2C_Driver.o
    ar rcs $@ $^

# Clean
.PHONY: clean
clean:
    rm -f *.o *.a $(TARGET)

Và tèn ten, nếu chúng ta làm và cấu hình đúng, kết quả sẽ như thế này:

Dữ liệu Min: 29°C | Max: 37°C (góc dưới bên trái và phải):

  • Dải nhiệt độ hiển thị từ 29 đến 37 độ C.

  • Đây là giới hạn nhiệt độ đang được cảm biến đo trong khung hình hiện tại.

Cảm biến ảnh nhiệt MLX90640-D110 là một lựa chọn tuyệt vời cho các dự án đo nhiệt độ từ xa, phát hiện người, giám sát môi trường hay phát triển các ứng dụng AI – IoT thông minh. Với khả năng đo chính xác, góc nhìn siêu rộng 110°, giao tiếp I²C dễ tích hợp và nhiều thư viện mã nguồn mở hỗ trợ, bạn có thể nhanh chóng xây dựng các hệ thống hiển thị ảnh nhiệt trực quan, từ đơn giản đến chuyên nghiệp.

Dù độ phân giải chỉ là 32×24, nhưng thông qua xử lý ảnh hoặc nội suy, bạn vẫn có thể thu được kết quả hiển thị mượt mà và sinh động. Bên cạnh đó, cảm biến hoạt động ổn định trong nhiều điều kiện nhiệt độ, phù hợp cho cả môi trường công nghiệp lẫn dân dụng.

Hy vọng qua bài viết này, bạn đã nắm được cách kết nối, lập trình và khai thác sức mạnh của MLX90640-D110 trong dự án của mình. Nếu bạn cần mở rộng ứng dụng, tích hợp hiển thị web, hoặc phân tích dữ liệu nhiệt chuyên sâu hơn, đừng ngần ngại khám phá thêm các thư viện và công cụ hỗ trợ từ cộng đồng mã nguồn mở.