Innehållsförteckning:

Infraröd sensor med ESP8266: 6 steg
Infraröd sensor med ESP8266: 6 steg

Video: Infraröd sensor med ESP8266: 6 steg

Video: Infraröd sensor med ESP8266: 6 steg
Video: Как запрограммировать модуль реле Wi-Fi ESP8266 ESP-01 2024, November
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Vårt mål den här gången är att skapa ett program som kommer att läsa omgivningstemperaturen för alla objekt som pekar mot vår sensor. För att göra detta kommer vi i detta projekt att använda en ESP8266 nodMCU, en MLX90614 infraröd sensor och en OLED 96 display, som visar temperaturdata.

Steg 1: WiFi ESP8266 NodeMcu ESP-12E

Steg 2: Infraröd sensor

Infraröd sensor
Infraröd sensor

MLX90614 -infraröda sensorn som används i den här inställningen är faktiskt en typ av videokamera. Den tar bilder via CCD (Charged Coupled Device), ett system som liknar det som används i stillbildskamera. Således registrerar den mängden infrarött som kommer ut från objektet, och med denna mängd beräknar den temperaturen. Det är väldigt exakt.

Steg 3: Visa OLED

Visa OLED
Visa OLED

Steg 4: Montering

hopsättning
hopsättning

Detta är ett mycket enkelt schema. Jag har en tabell här som möjliggör enkel visualisering.

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

Steg 5: Bibliotek

Bibliotek
Bibliotek
Bibliotek
Bibliotek

Om du vill använda OLED-skärmen lägger du till följande "Adafruit-GFX-Library-master" -bibliotek.

Gå bara till "Skiss >> Inkludera bibliotek >> Hantera bibliotek …"

Lägg också till följande "Adafruit Unified Sensor" -bibliotek.

Nedladdningslänkarna för biblioteken finns i PDF -filen, tillgänglig precis nedan.

Steg 6: Källkod

Vi börjar med att definiera bibliotek och konstanter som vi kommer att använda under vår kod.

#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 scl #define cs D8 #define rst D3 #define dc D4 // definição das cores que serão utilizadas #define BLACK 0x0000 #define WHITE 0xFFFF // definição da coordenada onde escreveremos cada um dos dados #define POS_X_AMBIE_POS_X_AMBIE_POS_X_AMBIE_POS_X_AMBIE #2 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, // 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;

Uppstart

I funktionen setup () kommer vi att initiera vårt kommunikationsobjekt med sensorn, liksom kommunikationsobjektet med displayen. Här är några inställningar för var och en av dem.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Val av temperatur 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 a tela toda de preto display.fillScreen (SVART); // konfiguration o tamnaho do texto que escreveremos em tela display.setTextSize (0); // konfigura a cor branca para o texto display.setTextColor (WHITE); // os comandos abaixo posicionam o cursor 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}

Slinga

I loop () -funktionen, låt oss läsa sensordata och sedan visa dem på OLED -skärmen.

// 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 temperaturena do ambiente tempAmbiente = sensor.ambient (); // recupera a leitura da temperaturena do objeto apontado pelo sensor tempObjeto = sensor.object (); // limpa a pårea onde colocamos o valor da temperaturena do ambiente e do objeto display.fillRect (POS_X_AMBIENTE+35, POS_Y_AMBIENTE, 35, 10, SVART); display.fillRect (POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, SVART); // posiciona o cursor e escreve a 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} fördröjning (1000); // intervalo de 1 segundo para a próxima leitura}

Rekommenderad: