Cảm biến nhiệt độ hồng ngoại không tiếp xúc MLX90614 với ESP8266

Cảm biến nhiệt độ hồng ngoại không tiếp xúc MLX90614 với ESP8266

Giới thiệu cảm biến GY-906 MLX90614

GY-906 MLX90614 là một cảm biến nhiệt độ không tiếp xúc dựa trên IR có thể đo nhiệt độ của một vật thể cụ thể trong khoảng từ -70 ° C - 382.2 ° C và nhiệt độ môi trường xung quanh từ -40 ° C - 125 ° C mà không cần tiếp xúc vật lý với vật thể đang được quan sát. Nó được nhúng với một cổng I2C để giao tiếp đọc nhiệt độ với các bộ vi điều khiển qua bus I2C. Trên hết, nó được cung cấp bảo vệ ESD để tránh sự cố của cảm biến.

Cảm biến nhiệt độ hồng ngoại không tiếp xúc MLX90614

Thiết bị nhỏ bé có độ chính xác và độ chính xác cao do ADC mạnh mẽ của nó. ADC 17 bit được nhúng trong mô-đun để xuất ra các giá trị với độ phân giải 0,14 ° C. Melexis đã giới thiệu các phiên bản khác nhau của cảm biến này dựa trên các yêu cầu về điện áp đầu vào, tức là 3 Volts hoặc 5volts và công suất phân giải cho các yêu cầu khác nhau của dự án. Nhưng MLX90614 là một cảm biến nhiệt độ nhạy cảm có một danh sách dài các ứng dụng, đặc biệt là trong tự động hóa gia đình.

Tổng quan về mô-đun GY-906

Tổng quan về mô-đun MLX90614

Như bạn có thể thấy trong sơ đồ trên, MLX90614 được tìm thấy ở trung tâm của mô-đun. Nó là một cảm biến nhiệt độ không tiếp xúc có độ chính xác cao. Với sự hỗ trợ của cảm biến này, nhiệt độ được đo thông qua sóng hồng ngoại phát ra mà không có bất kỳ tiếp xúc vật lý nào. Ngoài ra, cảm biến này có thể đo cả nhiệt độ môi trường xung quanh và nhiệt độ vật thể với độ chính xác 0,5 ° C. Chú ý bộ lọc quang học tích hợp (vượt qua sóng dài) có trong cảm biến MLX90614. Điều này rất hữu ích trong việc cắt bỏ ánh sáng cận hồng ngoại và ánh sáng nhìn thấy được, do đó làm giảm tác động của chúng đối với các bài đọc.

Ở phía sau mô-đun, bạn có thể tìm thấy bộ điều chỉnh điện áp chính xác 662K 3.3V, do đó chúng ta có thể sử dụng một cách an toàn các bộ vi điều khiển sử dụng đầu vào / đầu ra mức 5 / 3.3 với mô-đun này.

Các tính năng chính

  • Cảm biến hồng ngoại được tích hợp với bộ lọc quang, DSP và bộ khuếch đại nhiễu thấp cho tín hiệu kỹ thuật số đầu ra tốt.

  • Thích ứng cho các ứng dụng 8-16 Volts và có thể được tích hợp dễ dàng.

  • Mô-đun cảm biến MLX90614 có công suất hoạt động thấp, vì nó sử dụng ít hơn 2mA khi đo nhiệt độ. Do đó, nó là một lựa chọn tuyệt vời để sử dụng trong các thiết bị chạy bằng pin như máy quét nhiệt, v.v.

  • Một trong những tính năng thú vị của MLX90614 là nó bao gồm hai giao diện đầu ra: SMBus (I2C) và PWM. Theo mặc định, giao diện SMBus 2 dây được sử dụng để liên lạc. Giao diện SMBus sử dụng các chân I2C SDA (dữ liệu nối tiếp) và SCL (đồng hồ nối tiếp) để bắt đầu giao tiếp thích hợp giữa chủ và phụ. Giao diện PWM cũng có thể được sử dụng để đo nhiệt độ. Tuy nhiên, trước tiên cảm biến nên được thiết lập trong giao diện SMBus trước khi sử dụng giao diện PWM. Trên chân SDA, MLX90614 tạo ra tín hiệu PWM 10 bit liên tục đại diện cho nhiệt độ đối tượng được ghi lại sau khi thiết lập. Tín hiệu PWM trải dài trong phạm vi nhiệt độ từ -20 ° C đến 120 ° C theo mặc định, với độ phân giải đầu ra 0.14 ° C, tuy nhiên điều này có thể được thay đổi bằng SMBus. Do đó, chúng ta cũng có thể sử dụng đầu ra PWM làm rơle / công tắc nhiệt bằng cách đặt phạm vi giá trị nhiệt độ. Ví dụ: chân PWM có thể được sử dụng làm ngắt và kích hoạt khi nhiệt độ vượt quá ngưỡng đã đặt.

  • Hỗ trợ chế độ tiết kiệm năng lượng và có sẵn trong các phiên bản đơn và kép

  • Nó là một cảm biến tiết kiệm năng lượng và có độ nhạy cao.

Thông số kỹ thuật

Bảng dưới đây cho thấy các thông số kỹ thuật của cảm biến này:

Điện áp hoạt động

3.3V - 5.5V

Phạm vi nhiệt độ môi trường xung quanh

-40 °C - 125 °C

Phạm vi nhiệt độ đối tượng

-70 °C - 380 °C

Độ phân giải đo lường

±0,2°C

Độ chính xác nhiệt độ

±0,5°C

Độ nhạy ESD

2kV

Dòng/ Nguồn hiện tại

25mA

Độ phân giải ADC

17 bit

Nhiệt kế hồng ngoại Nguyên lý làm việc

MLX90614 là một cảm biến nhiệt độ hồng ngoại không tiếp xúc hoạt động theo nguyên tắc Stefan Boltzmann. Nguyên tắc nói rằng mọi vật thể trên -273 ° C đều bức xạ hồng ngoại tỷ lệ thuận với nhiệt độ của nó.

MLX9416 đo bức xạ này và chuyển đổi nó thành tín hiệu kỹ thuật số được truyền qua bus I2C đến bộ vi điều khiển.

Kết nối bên trong MLX90614 với chân

Sơ đồ chức năng của Cảm biến nhiệt độ hồng ngoại MLX90614 được cung cấp dưới đây:

Sơ đồ khối MLX90614

Mô-đun cảm biến hồng ngoại bao gồm một máy dò nhiệt hồng ngoại và một bộ ASSP (Bộ xử lý ứng dụng điều hòa tín hiệu). Thermopile phục vụ chức năng thu thập bức xạ trong trường nhìn (FOV) của nó, thay đổi theo từng phiên bản và sau đó tạo ra tín hiệu điện tỷ lệ thuận với bức xạ. Bộ xử lý ASSP chuyển đổi tín hiệu tương tự này thành tín hiệu khuếch đại được lọc, sau đó được gửi đến bộ vi điều khiển.

Trường nhìn (FOV)

Một khái niệm quan trọng xuất hiện trong khi tìm hiểu hoạt động của nhiệt kế hồng ngoại là trường nhìn của cảm biến, còn được gọi là FOV. FOV là một góc rắn mà qua đó cảm biến nhạy cảm với bức xạ điện từ.

Khi MLX90614 cho chúng ta đọc nhiệt độ vật thể, đó là nhiệt độ trung bình của tất cả các vật thể có trong FOV của cảm biến. Do đó, nếu bạn muốn có được kết quả đo nhiệt độ chính xác của một vật thể, hãy đảm bảo rằng nó nằm hoàn toàn trong trường nhìn của cảm biến.

Trường nhìn của cảm biến GY-906 MLX90614 là 90 °

Do đó, khoảng cách đo cần thiết được xác định bởi trường nhìn mong muốn. Khoảng cách đo khoảng 1 cm thường được sử dụng để đo nhiệt độ bề mặt của một vật thể như IC hoặc trục quay.

Sơ đồ chân MLX90614

Mô-đun cảm biến nhiệt độ này đi kèm với bộ điều chỉnh điện áp 3.3, Bus I2C với các điện trở kéo bên trong để xác định trạng thái mặc định và tụ điện để lọc tiếng ồn. Sơ đồ chân của mô-đun Cảm biến nhiệt độ hồng ngoại MLX90614 không tiếp xúc như được hiển thị:

MLX90614 Sơ đồ sơ đồ sơ đồ chân của Cảm biến nhiệt độ hồng ngoại không tiếp xúc

MLX90614 có hai phiên bản và có sẵn trong gói TO-39. Chi tiết cấu hình pin được liệt kê trong bảng dưới đây:

Tên pin

Chức năng

VCC

Chân cung cấp năng lượng 

GND ·

Ghim dữ liệu tham chiếu

SCL

Mở cống Serial Clock pin. Đồng hồ dòng I2C xung pin để đồng bộ hóa dữ liệu.

SDA

Mở chân dữ liệu nối tiếp. Một dòng I2C để giao tiếp dữ liệu với MCU máy chủ.

Mô-đun MLX90614 giao diện với ESP8266

Phần này giải thích sự giao tiếp của cảm biến nhiệt độ hồng ngoại không tiếp xúc ESP8266 và MLX90614.

MLX90614 với ESP8266

Hình dưới đây cho thấy sơ đồ kết nối giữa cảm biến nhiệt độ MLX90614 và ESP8266.

  • Kết nối chân cấp nguồn (Vin) của cảm biến nhiệt độ với chân 3.3V của ESP8266 và chân GND của MLX90614 với chân GND của ESP8266.

  • Kết nối các chân SDA và SCL của cảm biến IR đã đề cập với các chân D2 và D1 của ESP8266 để truyền dữ liệu nối tiếp. Chân D2 và D1 của ESP8266 cũng chia sẻ chức năng thay thế của chân SDA và SCL của cổng I2C của ESP8266.

MLX90614 với sơ đồ kết nối ESP8266

Mô-đun cảm biến nhiệt độ hồng ngoại MLX90614 GY-906

ESP8266 ·

VCC

3.3V

GND ·

GND ·

SDA

D2 ·

SCL

D1 ·

Cài đặt Thư viện Adafruit MLX90614 Arduino

Chúng tôi sẽ sử dụng Arduino IDE để lập trình bảng phát triển ESP8266 của chúng tôi. Vì vậy, bạn nên có phiên bản Arduino IDE mới nhất. Ngoài ra, bạn cũng cần cài đặt plugin ESP8266.

Tiếp theo, chúng tôi sẽ tải xuống thư viện Adafruit MLX90614 Arduino và cài đặt nó trên phần mềm Arduino IDE. Rất thuận tiện để sử dụng thư viện viết sẵn dành riêng cho mô-đun và thêm nó vào các bản phác thảo để thực hiện các lệnh. Mở Arduino IDE và nhấp vào Sketch > Library > Manage Libraries

MPU-6050 Cài đặt thư viện

Cửa sổ sau sẽ mở ra.

thư viện tìm kiếm Arduino IDE

Nhập 'adafruit mlx90614' vào thanh tìm kiếm và nhấn enter. Cài đặt phiên bản mới nhất của thư viện như hình dưới đây.

Cài đặt Thư viện Adafruit MLX90614

Sau khi cài đặt thư viện, hãy khởi động lại IDE của bạn.

ESP8266 MLX90614 Bản phác thảo nhiệt kế hồng ngoại

Mở Arduino IDE của bạn và đi tới Tệp > Mới. Một tệp mới sẽ mở ra. Sao chép mã được cung cấp bên dưới trong tệp đó và lưu nó.

Mã này sẽ hiển thị nhiệt độ môi trường xung quanh và nhiệt độ vật thể ở cả độ C và độ F và cập nhật nó thành số đọc mới sau mỗi giây.

#include <Adafruit_MLX90614.h>

 

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

 

void setup() {

  Serial.begin(115200);

  while (!Serial);

 

  if (!mlx.begin()) {

    Serial.println("Error connecting to MLX sensor. Check wiring.");

    while (1);

  };

}

 

void loop() {

  Serial.print("Ambient temperature = "); 

  Serial.print(mlx.readAmbientTempC());

  Serial.print("°C");      

  Serial.print("   ");

  Serial.print("Object temperature = "); 

  Serial.print(mlx.readObjectTempC()); 

  Serial.println("°C");

  

  Serial.print("Ambient temperature = ");

  Serial.print(mlx.readAmbientTempF());

  Serial.print("°F");      

  Serial.print("   ");

  Serial.print("Object temperature = "); 

  Serial.print(mlx.readObjectTempF()); 

  Serial.println("°F");

 

  Serial.println("-----------------------------------------------------------------");

  delay(1000);

}

Mã hoạt động như thế nào?

Bước đầu tiên là bao gồm thư viện cần thiết, tức là "Adafruit_MLX90614.h" cho cảm biến nhiệt độ.

#include <Adafruit_MLX90614.h>

Tiếp theo tạo một đối tượng 'mlx' để truy cập các hàm thư viện MLX90614.

 

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

Bên trong hàm setup(), trước tiên chúng ta bắt đầu giao tiếp nối tiếp với tốc độ truyền là 115200. Sau đó, chúng ta khởi tạo cảm biến nhiệt độ bằng phương thức begin() trên đối tượng Adafruit_MLX90614.

void setup() {

  Serial.begin(115200);

  while (!Serial);

 

  if (!mlx.begin()) {

    Serial.println("Error connecting to MLX sensor. Check wiring.");

    while (1);

  };

}

Bên trong hàm loop(), chúng ta truy cập nhiệt độ môi trường xung quanh và chỉ số nhiệt độ vật thể ở cả độ C và độ F. Chúng được in trong màn hình nối tiếp sau mỗi giây.

Để có được nhiệt độ môi trường xung quanh tính bằng độ C, chúng tôi sử dụng hàm mlx.readAmbientTempC () và trong Fahrenheit, chúng tôi sử dụng mlx.readAmbientTempF (). Tương tự, để có được nhiệt độ đối tượng tính bằng độ C, chúng ta sử dụng hàm mlx.readObjectTempC() và trong Fahrenheit, chúng ta sử dụng hàm mlx.readObjectTempF().

void loop() {

  Serial.print("Ambient temperature = "); 

  Serial.print(mlx.readAmbientTempC());

  Serial.print("°C");      

  Serial.print("   ");

  Serial.print("Object temperature = "); 

  Serial.print(mlx.readObjectTempC()); 

  Serial.println("°C");

  

  Serial.print("Ambient temperature = ");

  Serial.print(mlx.readAmbientTempF());

  Serial.print("°F");      

  Serial.print("   ");

  Serial.print("Object temperature = "); 

  Serial.print(mlx.readObjectTempF()); 

  Serial.println("°F");

 

  Serial.println("-----------------------------------------------------------------");

  delay(1000);

}




Demonstration

Đảm bảo rằng bạn chọn đúng bảng và cổng COM trước khi tải mã của mình lên bảng. Đi tới Bảng > Công cụ và chọn NodeMCU1.0.

chọn bảng ESP8266 NodeMCU

Tiếp theo, đi tới Công cụ > Cổng và chọn cổng thích hợp mà qua đó bảng của bạn được kết nối.

Cổng COM ESP8266

Tiếp theo, nhấp vào nút tải lên để tải mã lên bảng phát triển ESP8266.

Sau khi bạn đã tải mã của mình và các tệp lên bảng phát triển ESP8266, hãy nhấn nút RST của nó.

Nút đặt lại ESP8266 NodeMCU

Trong Arduino IDE của bạn, hãy mở màn hình nối tiếp và bạn sẽ có thể xem số đọc nhiệt độ. Đưa cảm biến đến gần một vật thể để theo dõi nhiệt độ của nó. Hơn nữa, hãy đảm bảo rằng cảm biến cách xa sóng điện từ vì chúng có thể làm phát sinh kết quả đọc không chính xác.

MLX90614 với màn hình nối tiếp ESP8266

Bài viết cùng chuyên mục

NHANH

NHANH

Vì Đổi mới liên tục nên Nhanh hơn

ĐÚNG

ĐÚNG

Coi trọng và ưu tiên việc làm Đúng

ĐỦ

ĐỦ

Tìm và mua Đủ Đơn hàng hơn

KỊP THỜI

KỊP THỜI

Hiệu suất tối ưu bởi Kịp Thời hơn