Obsah:

Infračervený snímač s ESP8266: 6 krokov
Infračervený snímač s ESP8266: 6 krokov

Video: Infračervený snímač s ESP8266: 6 krokov

Video: Infračervený snímač s ESP8266: 6 krokov
Video: ESP8266 ESP01 WI-FI-UART | Программирование LDmicro-Roboremo 2024, November
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Našim cieľom je tentoraz vytvoriť program, ktorý bude čítať teplotu okolia akéhokoľvek objektu smerujúceho k nášmu senzoru. Na tento účel použijeme v tomto projekte nodeMCU ESP8266, infračervený snímač MLX90614 a 96 -palcový OLED displej, ktorý bude zobrazovať údaje o teplote.

Krok 1: WiFi ESP8266 NodeMcu ESP-12E

Krok 2: Infračervený snímač

Infračervený senzor
Infračervený senzor

Infračervený snímač MLX90614 použitý v tomto nastavení je v skutočnosti typ videokamery. Sníma obrázky pomocou CCD (Charged Coupled Device), systému, ktorý je veľmi podobný systému používanému v digitálnych fotoaparátoch. Zaznamenáva teda množstvo infračerveného žiarenia vychádzajúceho z objektu a s týmto množstvom vypočítava teplotu. Je to veľmi presné.

Krok 3: Zobrazte OLED

Displej OLED
Displej OLED

Krok 4: Zostavenie

zhromaždenie
zhromaždenie

Toto je veľmi jednoduchá schéma. Mám tu tabuľku, ktorá umožňuje jednoduchú vizualizáciu.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - OZE

D4 - DC

D8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

GND - GND

Krok 5: Knižnice

Knižnice
Knižnice
Knižnice
Knižnice

Ak chcete používať OLED displej, pridajte nasledujúcu knižnicu „Adafruit-GFX-Library-master“.

Jednoducho vstúpte do „Náčrtu >> Zahrnúť knižnice >> Spravovať knižnice …"

Pridajte tiež nasledujúcu knižnicu „Adafruit Unified Sensor“.

Odkazy na stiahnutie pre knižnice sú v PDF, dostupné hneď nižšie.

Krok 6: Zdrojový kód

Začneme definovaním knižníc a konštánt, ktoré použijeme počas nášho 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 // konštruktér pre obj para paracomunic 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;

Nastaviť

Vo funkcii setup () budeme inicializovať náš objekt komunikácie so senzorom, ako aj predmet komunikácie s displejom. Tu sú niektoré nastavenia pre každé z nich.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Výber teplôt a stupňov Celzia Senzor.setUnit (TEMP_C); // použitie viacerých TEMP_F para Fahrenheit // ou TEMP_K para Kelvin // inicializácia objektu pre paraunu comunicarmos com o displej OLED display.begin (); // pinta a tela toda de preto display.fillScreen (BLACK); // konfigurácia tamnaho do texto que escreveremos em tela display.setTextSize (0); // konfigurácia a konfigurácia textového displeja.setTextColor (BIELY); // os abaixo Posicionam or 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}

Slučka

Vo funkcii loop () čítajme údaje zo senzorov a potom ich zobrazme 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 ()) {// rekuperácia a leitura da temperatura do ambiente tempAmbiente = senzor.ambient (); // rekuperácia a temperovanie teploty do objeme apontado pelo senzora 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, BLACK); display.fillRect (POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, ČIERNY); // pozicia alebo kurzor eskreuje teplotu okolia display.setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // simbolo graus // pozícia alebo kurzor 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} oneskorenie (1000); // intervalo de 1 segundo para a próxima leitura}

Odporúča: