Innholdsfortegnelse:

Infrarød sensor med ESP8266: 6 trinn
Infrarød sensor med ESP8266: 6 trinn

Video: Infrarød sensor med ESP8266: 6 trinn

Video: Infrarød sensor med ESP8266: 6 trinn
Video: ESP8266 Беспроводной ЧМИ Nextion || Внешний ПЛК Arduino 2024, November
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Målet vårt denne gangen er å lage et program som vil lese omgivelsestemperaturen til ethvert objekt som peker mot sensoren vår. For å gjøre dette vil vi bruke i dette prosjektet en ESP8266 nodeMCU, en MLX90614 infrarød sensor og en OLED 96 skjerm, som viser temperaturdataene.

Trinn 1: WiFi ESP8266 NodeMcu ESP-12E

Trinn 2: Infrarød sensor

Infrarød sensor
Infrarød sensor

MLX90614 infrarød sensor som brukes i dette oppsettet er faktisk en type videokamera. Den tar bilder via CCD (Charged Coupled Device), et system som er veldig likt det som brukes i digitale kameraer. Dermed registrerer den mengden infrarød som kommer ut av objektet, og med denne mengden beregner den temperaturen. Det er veldig presist.

Trinn 3: Vis OLED

Vis OLED
Vis OLED

Trinn 4: Montering

montering
montering

Dette er en veldig enkel ordning. Jeg har et bord her som gjør det enkelt å visualisere.

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

Trinn 5: Biblioteker

Biblioteker
Biblioteker
Biblioteker
Biblioteker

For å bruke OLED-skjermen, legg til følgende "Adafruit-GFX-Library-master" -bibliotek.

Bare få tilgang til "Skisse >> Inkluder biblioteker >> Administrer biblioteker …"

Legg også til følgende "Adafruit Unified Sensor" -bibliotek.

Nedlastingskoblingene for bibliotekene er i PDF -filen, tilgjengelig like nedenfor.

Trinn 6: Kildekode

Vi starter med å definere bibliotekene og konstantene vi skal bruke under koden.

#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_AMBIENTE_POS_X_AMBIENTE #POS_X_AMBIE 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; flyte tempObjeto;

Oppsett

I setup () -funksjonen vil vi initialisere kommunikasjonsobjektet med sensoren, så vel som kommunikasjonsobjektet med displayet. Her er noen innstillinger for hver av dem.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Valg av temperatur i 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); // konfigurer eller tamner kan gjøre tekst for å vise 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 ((røyke) 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}

Løkke

I loop () -funksjonen, la oss lese sensordataene og deretter vise dem på OLED -skjermen.

// 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 temperaturena do objeto apontado pelo sensor tempObjeto = sensor.object (); // limpa a area one colocamos o valor da temperaturena 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, SVART); // posisiona o cursor e escreve a temperatura ambiente display.setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((røyke) 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 ((røyke) 247); // simbolo de graus} forsinkelse (1000); // intervalo de 1 segundo para a próxima leitura}

Anbefalt: