Mục lục:

Cảm biến hồng ngoại với ESP8266: 6 bước
Cảm biến hồng ngoại với ESP8266: 6 bước

Video: Cảm biến hồng ngoại với ESP8266: 6 bước

Video: Cảm biến hồng ngoại với ESP8266: 6 bước
Video: Kit Wifi ESP8266 Kết Nối Với Các Loại Cảm Biến Tiệm Cận PNP 2024, Tháng mười một
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Mục tiêu của chúng tôi lần này là tạo ra một chương trình có thể đọc nhiệt độ môi trường xung quanh của bất kỳ vật thể nào hướng về phía cảm biến của chúng tôi. Để làm điều này, chúng tôi sẽ sử dụng trong dự án này một ESP8266 nodeMCU, một cảm biến hồng ngoại MLX90614 và một màn hình OLED 96 , sẽ hiển thị dữ liệu nhiệt độ.

Bước 1: WiFi ESP8266 NodeMcu ESP-12E

Bước 2: Cảm biến hồng ngoại

Cảm biến hồng ngoại
Cảm biến hồng ngoại

Cảm biến hồng ngoại MLX90614 được sử dụng trong thiết lập này thực chất là một loại máy quay. Nó chụp ảnh qua CCD (Charged Coupled Device), một hệ thống rất giống với hệ thống được sử dụng trong máy ảnh kỹ thuật số tĩnh. Do đó, nó ghi lại lượng tia hồng ngoại phát ra từ vật thể, và với lượng này, nó sẽ tính toán nhiệt độ. Nó rất chính xác.

Bước 3: Hiển thị OLED

Màn hình OLED
Màn hình OLED

Bước 4: Lắp ráp

cuộc họp
cuộc họp

Đây là một chương trình rất đơn giản. Tôi có một bảng ở đây cho phép bạn dễ hình dung.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - DC

D8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

GND - GND

Bước 5: Thư viện

Thư viện
Thư viện
Thư viện
Thư viện

Để sử dụng màn hình OLED, hãy thêm thư viện "Adafruit-GFX-Library-master" sau đây.

Chỉ cần truy cập "Phác thảo >> Bao gồm Thư viện >> Quản lý Thư viện…"

Ngoài ra, hãy thêm thư viện "Adafruit Unified Sensor" sau đây.

Các liên kết tải xuống cho các thư viện ở dạng PDF, có sẵn ngay bên dưới.

Bước 6: Mã nguồn

Chúng tôi sẽ bắt đầu bằng cách xác định các thư viện và hằng số mà chúng tôi sẽ sử dụng trong quá trình viết mã của mình.

#include // Biblioteca para I2C # bao gồm // Biblioteca para comunicação com o cảm biến #include // Biblioteca para propriedades gráficas #include // Biblioteca para comunicação com dip OLED // p thoát n m para o NodeMCU ESP8266 #define sclk D5 # D5 D5 #define cs D8 #define rst D3 #define dc D4 // Defção das lõi que serão Pracizadas #define BLACK 0x0000 #define WHITE 0xFFFF // Defção da coordenada onde escreveremos cadaBI um dos dados #define POS_X_AMBIENTE 2 #define POS_X_Y 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // construtor do objeto para comunicar com o display OLED Adafruit_SSD1331 display = Adafruit_SSD1331 (cs, dc, mosi, sclk, rst); // objeto responseável pela comunicação com o sensor Infravermelho IRTherm sensor; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; float tempObjeto;

Cài đặt

Trong hàm setup (), chúng ta sẽ khởi tạo đối tượng giao tiếp với cảm biến, cũng như đối tượng giao tiếp với màn hình. Dưới đây là một số cài đặt cho mỗi người trong số họ.

void setup () {// Inicializa sensor de temperatura Infravermelho sensor.begin (); // Seleciona temperatura em Celsius sensor.setUnit (TEMP_C); // podemos ainda Pracizar TEMP_F para Fahrenheit // ou TEMP_K para Kelvin // inicializa o objeto para comunicarmos com o display OLED display.begin (); // pinta a tela toda de preto display.fillScreen (BLACK); // configura o tamnaho do texto que escreveremos em tela display.setTextSize (0); // configura a cor cámca para o texto display.setTextColor (WHITE); // os comandos abaixo posicionam o con trỏ no (x, y) desejado para a seguir escrevermos em tela display.setCursor (POS_X_TITULO, POS_Y_TITULO); display.print ("TEMPERATURA"); display.setCursor (POS_X_TITULO + 20, POS_Y_TITULO + 15); display.print ("("); display.print ((char) 247); // símbolo de graus display.print ("C)"); display.setCursor (POS_X_AMBIENTE, POS_Y_AMBIENTE); display.print ("AMB:"); // AMBIENTE display.setCursor (POS_X_OBJETO, POS_Y_OBJETO); display.print ("OBJ:"); // OBJETO}

Vòng

Trong hàm loop (), hãy đọc dữ liệu cảm biến, sau đó hiển thị chúng trên màn hình OLED.

// chamamos o método "read" do sensor para realizar a leitura da temperatura // read retornará 1 caso consiga realizar a leitura, ou 0 caso contrário if (sensor.read ()) {// recupera a leitura da temperatura do ambiente tempAmbiente = sensor.ambient (); // recupera a leitura da temperatura do objeto apontado pelo sensor tempObjeto = sensor.object (); // limpa a área onde colocamos o valor da temperatura do ambiente e do objeto display.fillRect (POS_X_AMBIENTE + 35, POS_Y_AMBIENTE, 35, 10, BLACK); display.fillRect (POS_X_OBJETO + 35, POS_Y_OBJETO, 35, 10, BLACK); // posiciona o con trỏ e tránh tạo ra một temperatura ambiente display.setCursor (POS_X_AMBIENTE + 35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // simbolo de graus // posiciona o con trỏ e escreve a temperatura do objeto que o sensor está apontando display.setCursor (POS_X_OBJETO + 35, POS_Y_OBJETO); display.print (tempObjeto); display.print ((char) 247); // simbolo de graus} delay (1000); // khoảng thời gian để 1 segundo para a próxima leitura}

Đề xuất: