Taula de continguts:

Sensor d'infrarojos amb ESP8266: 6 passos
Sensor d'infrarojos amb ESP8266: 6 passos

Vídeo: Sensor d'infrarojos amb ESP8266: 6 passos

Vídeo: Sensor d'infrarojos amb ESP8266: 6 passos
Vídeo: ESP8266 light sensor 2024, Juliol
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

El nostre objectiu aquesta vegada és crear un programa que llegeixi la temperatura ambiental de qualsevol objecte que apunti cap al nostre sensor. Per fer-ho, utilitzarem en aquest projecte un nodeMCU ESP8266, un sensor d’infrarojos MLX90614 i una pantalla OLED de 96 , que mostrarà les dades de temperatura.

Pas 1: WiFi ESP8266 NodeMcu ESP-12E

Pas 2: sensor d'infrarojos

Sensor d'infrarojos
Sensor d'infrarojos

El sensor d'infrarojos MLX90614 que s'utilitza en aquesta configuració és en realitat un tipus de càmera de vídeo. Captura imatges mitjançant el CCD (Charged Coupled Device), un sistema molt similar al que s’utilitza a les càmeres digitals fixes. Així, registra la quantitat d'infraroig que surt de l'objecte i, amb aquesta quantitat, calcula la temperatura. És molt precís.

Pas 3: Mostra el LED OLED

Pantalla OLED
Pantalla OLED

Pas 4: Muntatge

muntatge
muntatge

Aquest és un esquema molt senzill. Aquí tinc una taula que permet una visualització fàcil.

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

Pas 5: biblioteques

Biblioteques
Biblioteques
Biblioteques
Biblioteques

Per utilitzar la pantalla OLED, afegiu la següent biblioteca "Adafruit-GFX-Library-master".

Simplement accediu a "Sketch >> Inclou biblioteques >> Gestiona biblioteques …"

A més, afegiu la següent biblioteca "Adafruit Unified Sensor".

Els enllaços de descàrrega de les biblioteques es troben al PDF, disponible just a sota.

Pas 6: codi font

Començarem definint les biblioteques i les constants que farem servir durant el nostre codi.

#include // Biblioteca para I2C # include // Biblioteca para comunicação com o sensor #include // Biblioteca para propiedades gráficas #include // Biblioteca para comunicação com dipsplay OLED // pinagem para o NodeMCU ESP8266 #define sclk D5 #define mosi D7. 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // construtor do objecte for 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 temperatures lidas float tempAmbiente; float tempObjeto;

Configuració

A la funció setup (), inicialitzarem el nostre objecte de comunicació amb el sensor, així com l’objecte de comunicació amb la pantalla. Aquí teniu alguns paràmetres per a cadascun d’ells.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Seleciona temperatura em Celsius sensor.setUnit (TEMP_C); // podem ajudar-nos a utilitzar TEMP_F per Fahrenheit // o TEMP_K para Kelvin // inicialitzar o objecte per a comunicar-se amb pantalla OLED display.begin (); // pinta a tela tota de preto display.fillScreen (BLACK); // configura o tamnaho do text que escrivim en tela display.setTextSize (0); // configura a cor branca per al text display.setTextColor (BLANC); // os comandos abaixo posicionam o cursor no (x, y) desejado para 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ímbol 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}

Bucle

A la funció loop (), llegim les dades del sensor i les mostrem a la pantalla OLED.

// chamamos o método "read" do sensor para realizar a leitura da temperatura // read retornará 1 caso consiga realizado a leitura, o 0 caso contrário if (sensor.read ()) {// recupera una leitura da temperatura do ambiente tempAmbiente = sensor.ambient (); // recupera a leitura da temperatura do objecte apontado pelo sensor tempObjeto = sensor.object (); // limpa a l'àrea on es col·loca o valora la temperatura de l'ambient i l'objecte display.fillRect (POS_X_AMBIENTE + 35, POS_Y_AMBIENTE, 35, 10, BLACK); display.fillRect (POS_X_OBJETO + 35, POS_Y_OBJETO, 35, 10, NEGRE); // posiciona o cursor e escreve a temperatura ambiente display.setCursor (POS_X_AMBIENTE + 35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // símbol de graus // posició o cursor i escreve a temperatura do objecte que o sensor està apontando display.setCursor (POS_X_OBJETO + 35, POS_Y_OBJETO); display.print (tempObjeto); display.print ((char) 247); // símbol de graus} delay (1000); // intervalo de 1 segon para a próxima leitura}

Recomanat: