Obsah:

Infračervený senzor s ESP8266: 6 kroků
Infračervený senzor s ESP8266: 6 kroků

Video: Infračervený senzor s ESP8266: 6 kroků

Video: Infračervený senzor s ESP8266: 6 kroků
Video: ESP8266 Smart Light Switch with Servo Motor 2024, Červenec
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Naším cílem je tentokrát vytvořit program, který bude číst okolní teplotu jakéhokoli objektu směřujícího k našemu senzoru. K tomu použijeme v tomto projektu ESP8266 nodeMCU, infračervený senzor MLX90614 a 96 OLED displej, který bude zobrazovat údaje o teplotě.

Krok 1: WiFi ESP8266 NodeMcu ESP-12E

Krok 2: Infračervený senzor

Infračervený senzor
Infračervený senzor

Infračervený senzor MLX90614 použitý v tomto nastavení je vlastně typem videokamery. Pořizuje snímky pomocí CCD (Charged Coupled Device), což je systém velmi podobný tomu, který se používá v digitálních fotoaparátech. Zaznamenává tedy množství infračerveného záření vycházejícího z objektu a s tímto množstvím vypočítává teplotu. Je to velmi přesné.

Krok 3: Zobrazte OLED

Displej OLED
Displej OLED

Krok 4: Sestavení

Shromáždění
Shromáždění

Toto je velmi jednoduché schéma. Mám zde tabulku, která umožňuje snadnou vizualizaci.

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

Krok 5: Knihovny

Knihovny
Knihovny
Knihovny
Knihovny

Chcete-li použít OLED displej, přidejte následující knihovnu „Adafruit-GFX-Library-master“.

Jednoduše otevřete "Skica >> Zahrnout knihovny >> Spravovat knihovny …"

Také přidejte následující knihovnu „Adafruit Unified Sensor“.

Odkazy ke stažení pro knihovny jsou v PDF, dostupné hned níže.

Krok 6: Zdrojový kód

Začneme definováním knihoven a konstant, které použijeme během našeho kódu.

#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 sclk D5 #define mosi D7 #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 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, rst); // objeto responzel pela comunicação com o senzor infravermelho IRTherm sensor; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; float tempObjeto;

Založit

Ve funkci setup () budeme inicializovat náš objekt komunikace se senzorem, stejně jako předmět komunikace s displejem. Zde jsou některá nastavení pro každé z nich.

neplatné nastavení () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Volba teploty a Celsiovy senzor.setUnit (TEMP_C); // použití a využití TEMP_F para Fahrenheit // ou TEMP_K para Kelvin // inicializace o objeto para comunicarmos com o display OLED display.begin (); // pinta a tela toda de preto display.fillScreen (BLACK); // konfigurace o tamnaho do texto que escreveremos em tela display.setTextSize (0); // konfigurace a další funkce pro textový displej.setTextColor (BÍLÁ); // osa abaixo pozice kurzoru 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}

Smyčka

Ve funkci loop () přečteme data senzorů a poté je zobrazíme na OLED displeji.

// 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 (); // rekuperace a leitura teploty do objeto apontado pelo sensor tempObjeto = sensor.object (); // limpa a áreadede colocamos o valor da temperatura 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, ČERNÝ); // pozice kurzoru escreve a temperatura ambiente display.setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // simbolo de graus // pozice kurzoru a 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} zpoždění (1000); // intervalo de 1 segundo para a próxima leitura}

Doporučuje: