INHOUDSOPGAWE:

Infrarooi sensor met ESP8266: 6 stappe
Infrarooi sensor met ESP8266: 6 stappe

Video: Infrarooi sensor met ESP8266: 6 stappe

Video: Infrarooi sensor met ESP8266: 6 stappe
Video: Using Non-Contact MLX90614 Temperature Sensor with NodeMCU D1 Mini over WiFi 2024, November
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Ons doel hierdie keer is om 'n program te skep wat die omgewingstemperatuur van enige voorwerp wat na ons sensor wys, sal lees. Om dit te doen, gebruik ons in hierdie projek 'n ESP8266 nodeMCU, 'n MLX90614 infrarooi sensor en 'n OLED 96 skerm wat die temperatuurdata vertoon.

Stap 1: WiFi ESP8266 NodeMcu ESP-12E

Stap 2: Infrarooi sensor

Infrarooi sensor
Infrarooi sensor

Die MLX90614 infrarooi sensor wat in hierdie opstelling gebruik word, is eintlik 'n tipe kamera. Dit neem beelde met die CCD (Charged Coupled Device), 'n stelsel wat baie ooreenstem met die wat in digitale kamera's gebruik word. Dit registreer dus die hoeveelheid infrarooi wat uit die voorwerp kom, en met hierdie hoeveelheid bereken dit die temperatuur. Dit is baie presies.

Stap 3: Vertoon OLED

Vertoon OLED
Vertoon OLED

Stap 4: Montering

Vergadering
Vergadering

Dit is 'n baie eenvoudige skema. Ek het 'n tabel hier wat maklike visualisering moontlik maak.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - GS

D8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

GND - GND

Stap 5: Biblioteke

Biblioteke
Biblioteke
Biblioteke
Biblioteke

Voeg die volgende "Adafruit-GFX-Library-master" -biblioteek by om die OLED-skerm te gebruik.

Gaan eenvoudig na "Skets >> Sluit biblioteke in >> Beheer biblioteke …"

Voeg ook die volgende 'Adafruit Unified Sensor' -biblioteek by.

Die aflaai -skakels vir die biblioteke is in die PDF, net hieronder beskikbaar.

Stap 6: Bronkode

Ons begin met die definisie van die biblioteke en konstantes wat ons tydens ons kode sal gebruik.

#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 #definieer eerste D3 #definieer 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_AMBIENTE #POS_X_AMBIENTE #POS_X_AMBIENT #35 2 #define POS_Y_OBJETO 55 #defineer POS_X_TITULO 10 #definieer POS_Y_TITULO 4 // bouer doen 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; vlot tempObjeto;

Stel op

In die setup () -funksie, sal ons ons voorwerp van kommunikasie met die sensor, sowel as die doel van kommunikasie met die skerm, initialiseer. Hier is 'n paar instellings vir elkeen.

ongeldige opstelling () {// 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 a tela toda de preto display.fillScreen (SWART); // konfigurasie of tamnaho om teks te stuur om dit te vertoon.setTextSize (0); // configura 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}

Lus

In die lus () -funksie, lees ons die sensordata en vertoon dit dan op die OLED -skerm.

// chamamos o método "sensor" om temperatuur te bereik of te lees // lees 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 (); // herstel van die temperatuur na die temperatuur van die 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, SWART); display.fillRect (POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, SWART); // posisionering of wyser om 'n temperatuur in die omgewing te vertoon. 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} vertraging (1000); // intervalo de 1 segundo para a próxima leitura}

Aanbeveel: