Indholdsfortegnelse:

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

Video: Infrarød sensor med ESP8266: 6 trin

Video: Infrarød sensor med ESP8266: 6 trin
Video: #322 12 Light Sensors Tested: Measuring Light with Microcontrollers (Arduino or ESP8266, ESP32) 2024, November
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Vores mål denne gang er at oprette et program, der vil læse omgivelsestemperaturen for ethvert objekt, der peger mod vores sensor. For at gøre dette vil vi i dette projekt bruge en ESP8266 nodeMCU, en MLX90614 infrarød sensor og et OLED 96 display, som viser temperaturdataene.

Trin 1: WiFi ESP8266 NodeMcu ESP-12E

Trin 2: Infrarød sensor

Infrarød sensor
Infrarød sensor

MLX90614 infrarød sensor, der bruges i denne opsætning, er faktisk en type videokamera. Det tager billeder via CCD (Charged Coupled Device), et system, der meget ligner det, der bruges i stadig digitale kameraer. Således registrerer den mængden af infrarød, der kommer ud af objektet, og med denne mængde beregner den temperaturen. Det er meget præcist.

Trin 3: Vis OLED

Vis OLED
Vis OLED

Trin 4: Montering

montage
montage

Dette er en meget enkel ordning. Jeg har en tabel her, der giver mulighed for let 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

Trin 5: Biblioteker

Biblioteker
Biblioteker
Biblioteker
Biblioteker

For at bruge OLED-skærmen skal du tilføje følgende "Adafruit-GFX-Library-master" -bibliotek.

Du skal blot få adgang til "Skitse >> Inkluder biblioteker >> Administrer biblioteker …"

Tilføj også følgende "Adafruit Unified Sensor" -bibliotek.

Downloadlinkene til bibliotekerne findes i PDF -filen, som er tilgængelig lige herunder.

Trin 6: Kildekode

Vi starter med at definere de biblioteker og konstanter, vi vil bruge under vores kode.

#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_AMBIENTE #POS_X_AMBIE_POS_X_AMBIENTE #POS_X_AMBIENTE #35 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // konstruktør gør 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; flyde tempObjeto;

Opsætning

I funktionen setup () vil vi initialisere vores kommunikationsobjekt med sensoren samt kommunikationsobjektet med displayet. Her er nogle indstillinger for hver af dem.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Valg af 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 (SORT); // konfiguration o tamnaho do texto que escreveremos em tela display.setTextSize (0); // konfiguration 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}

Sløjfe

I loop () -funktionen, lad os læse sensordataene og derefter vise dem på OLED -displayet.

// chamamos o método "læs" gør 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 área onde 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, SORT); // posiciona o cursor e escreve a temperatura ambiente display.setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((tegn) 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 ((tegn) 247); // simbolo de graus} forsinkelse (1000); // intervalo de 1 segundo para a próxima leitura}

Anbefalede: