Kazalo:

Infrardeči senzor z ESP8266: 6 korakov
Infrardeči senzor z ESP8266: 6 korakov

Video: Infrardeči senzor z ESP8266: 6 korakov

Video: Infrardeči senzor z ESP8266: 6 korakov
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Julij
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Naš tokratni cilj je ustvariti program, ki bo prebral temperaturo okolja katerega koli predmeta, usmerjenega proti našemu senzorju. V ta namen bomo v tem projektu uporabili vozlišče ESP8266MCU, infrardeči senzor MLX90614 in 96 -palčni zaslon OLED, ki bo prikazal podatke o temperaturi.

Korak: WiFi ESP8266 NodeMcu ESP-12E

Korak: Infrardeči senzor

Infrardeči senzor
Infrardeči senzor

Infrardeči senzor MLX90614, uporabljen pri tej nastavitvi, je pravzaprav vrsta videokamere. Zajema slike prek CCD (Charged Coupled Device Device), sistema, ki je zelo podoben tistemu, ki se uporablja v digitalnih fotoaparatih. Tako zabeleži količino infrardeče svetlobe, ki prihaja iz predmeta, in s to količino izračuna temperaturo. Je zelo natančen.

3. korak: Prikažite OLED

Zaslon OLED
Zaslon OLED

4. korak: Montaža

Montaža
Montaža

To je zelo preprosta shema. Tukaj imam mizo, ki omogoča enostavno vizualizacijo.

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

5. korak: Knjižnice

Knjižnice
Knjižnice
Knjižnice
Knjižnice

Če želite uporabljati zaslon OLED, dodajte naslednjo knjižnico "Adafruit-GFX-Library-master".

Preprosto odprite "Skica >> Vključi knjižnice >> Upravljanje knjižnic …"

Dodajte tudi naslednjo knjižnico "Adafruit Unified Sensor".

Povezave za prenos knjižnic so v PDF -ju, na voljo tik spodaj.

6. korak: izvorna koda

Začeli bomo z opredelitvijo knjižnic in konstant, ki jih bomo uporabljali med kodo.

#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 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_O_BAM_POSEBENO_POSLOVNO 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // konstruktor do objeto para comunicar com o display OLED Adafruit_SSD1331 display = Adafruit_SSD1331 (cs, dc, mosi, sclk, rst) // objeto responseável pela comunicação com o sensor infravermelho IRTherm sensor; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; float tempObjeto;

Nastaviti

V funkciji setup () bomo inicializirali naš objekt komunikacije s senzorjem, pa tudi objekt komunikacije s prikazom. Tu je nekaj nastavitev za vsakega od njih.

void setup () {// Inicializacijski senzor za temperaturo infravermelho sensor.begin (); // Izbira temperature po Celzijevem senzorju.setUnit (TEMP_C); // nastavimo ali izkoristimo TEMP_F po Fahrenheitu // ou TEMP_K po Kelvinu // inicializiramo objekte za komunikacijo z zaslonom OLED display.begin (); // pinta a tela toda de preto display.fillScreen (BLACK); // konfiguracija o tem, da besedilo ni prikazano na zaslonu.setTextSize (0); // konfiguriramo cor branca za ali texto display.setTextColor (BELO); // 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}

Zanka

V funkciji loop () preberemo podatke senzorja in jih nato prikažemo na zaslonu OLED.

// chamamos o método "read" do sensor para realizar a leitura da temperature // read retornará 1 caso consiga realizar a leitura, ou 0 caso contrário if (sensor.read ()) {// recupera a leitura da temperature do ambiente tempAmbiente = sensor.ambient (); // recupera a leitura da temperature do objeto apontado pelo sensor tempObjeto = sensor.object (); // limpa a área onde colocamos o valor da temperatura do ambiente in 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, ČRNO); // pozicioniranje kurzorja in dvig temperature ambiente display.setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // simbolo de graus // pozicioniranje kurzorja in povišanje temperature do cilja na senzor está apontando display.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); display.print ((char) 247); // simbolo de graus} zakasnitev (1000); // intervalo de 1 segundo para a próxima leitura}

Priporočena: