Tabla de contenido:

Sensor de infrarrojos con ESP8266: 6 pasos
Sensor de infrarrojos con ESP8266: 6 pasos

Video: Sensor de infrarrojos con ESP8266: 6 pasos

Video: Sensor de infrarrojos con ESP8266: 6 pasos
Video: Alarma de movimiento con sensor PIR y ESP8266 2024, Noviembre
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Nuestro objetivo esta vez es crear un programa que leerá la temperatura ambiente de cualquier objeto que apunte hacia nuestro sensor. Para ello, utilizaremos en este proyecto un nodoMCU ESP8266, un sensor de infrarrojos MLX90614 y una pantalla OLED de 96 , que mostrará los datos de temperatura.

Paso 1: WiFi ESP8266 NodeMcu ESP-12E

Paso 2: sensor de infrarrojos

Sensor infrarojo
Sensor infrarojo

El sensor de infrarrojos MLX90614 utilizado en esta configuración es en realidad un tipo de videocámara. Captura imágenes a través del CCD (dispositivo acoplado cargado), un sistema muy similar al que se usa en las cámaras digitales fijas. Así, registra la cantidad de infrarrojos que sale del objeto y con esta cantidad calcula la temperatura. Es muy preciso.

Paso 3: muestra OLED

Pantalla OLED
Pantalla OLED

Paso 4: Montaje

Montaje
Montaje

Este es un esquema muy simple. Aquí tengo una tabla que permite una fácil visualización.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - CC

D8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

GND - GND

Paso 5: Bibliotecas

Bibliotecas
Bibliotecas
Bibliotecas
Bibliotecas

Para usar la pantalla OLED, agregue la siguiente biblioteca "Adafruit-GFX-Library-master".

Simplemente acceda a "Sketch >> Incluir bibliotecas >> Administrar bibliotecas …"

Además, agregue la siguiente biblioteca "Adafruit Unified Sensor".

Los enlaces de descarga de las bibliotecas están en PDF, disponible justo debajo.

Paso 6: código fuente

Comenzaremos definiendo las bibliotecas y constantes que usaremos durante nuestro código.

#include // Biblioteca para I2C # include // Biblioteca para comunicação com o sensor #include // Biblioteca para propriedades gráficas #include // Biblioteca para comunicação com dipsplay OLED // pinagem para o NodeMCU ESP8266 #define sclk D5 #define mosi D7 #define cs D8 #define rst D3 #define dc D4 // definição das cores que serão used #define BLACK 0x0000 #define WHITE 0xFFFF // definição da coordenada onde escreveremos cada um dos dados #define POS_X_AMBIENTE 2 #define POS_Y_Y 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // constructor del objeto para comunicar com o display OLED Adafruit_SSD1331 display = Adafruit_SSD1331 (cs, dc, mosi, sclk, rst); // objeto responsável pela comunicação com o sensor infravermelho IRTherm sensor; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; float tempObjeto;

Configuración

En la función setup (), inicializaremos nuestro objeto de comunicación con el sensor, así como el objeto de comunicación con la pantalla. Aquí hay algunas configuraciones para cada uno de ellos.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Seleciona temperatura em Celsius sensor.setUnit (TEMP_C); // podemos ainda utilizar TEMP_F para Fahrenheit // ou TEMP_K para Kelvin // inicializa o objeto para comunicarmos com o display OLED display.begin (); // pinta una tela toda de preto display.fillScreen (BLACK); // configura o tamnaho do texto que escreveremos en la pantalla display.setTextSize (0); // configura un cor branca para o texto display.setTextColor (WHITE); // os comandos abaixo posicionam o cursor no (x, y) desejado para seguir escrevermos em pantalla 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}

Círculo

En la función loop (), leamos los datos del sensor y luego los mostramos en la pantalla OLED.

// chamamos o método "read" do sensor para realizar una leitura da temperatura // read retornará 1 caso consiga realizar una leitura, ou 0 caso contrário if (sensor.read ()) {// recupera a leitura da temperatura do ambiente tempAmbiente = sensor.ambiente (); // recupera una leitura de temperatura del objeto apontado pelo sensor tempObjeto = sensor.object (); // limpa un área y colocamos el valor de la temperatura del ambiente y el objeto display.fillRect (POS_X_AMBIENTE + 35, POS_Y_AMBIENTE, 35, 10, BLACK); display.fillRect (POS_X_OBJETO + 35, POS_Y_OBJETO, 35, 10, NEGRO); // posiciona el cursor y escreve una temperatura ambiente display.setCursor (POS_X_AMBIENTE + 35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // simbolo de graus // posiciona o cursor 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); // intervalo de 1 segundo para a próxima leitura}

Recomendado: