Sadržaj:

Infracrveni senzor sa ESP8266: 6 koraka
Infracrveni senzor sa ESP8266: 6 koraka

Video: Infracrveni senzor sa ESP8266: 6 koraka

Video: Infracrveni senzor sa ESP8266: 6 koraka
Video: ESP8266 ESP01 WI-FI-UART | Программирование LDmicro-Roboremo 2024, Novembar
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Naš cilj je ovaj put stvoriti program koji će očitavati temperaturu okoline bilo kojeg objekta usmjerenog prema našem senzoru. Da bismo to učinili, u ovom ćemo projektu koristiti čvor ESP8266MCU, infracrveni senzor MLX90614 i OLED ekran od 96 koji će prikazati podatke o temperaturi.

Korak 1: WiFi ESP8266 NodeMcu ESP-12E

Korak 2: Infracrveni senzor

Infracrveni senzor
Infracrveni senzor

Infracrveni senzor MLX90614 koji se koristi u ovom postavljanju je zapravo vrsta kamkordera. Snima slike putem CCD -a (Charged Coupled Device), sistema vrlo sličnog onom koji se koristi u digitalnim fotoaparatima. Tako bilježi količinu infracrvene veze koja izlazi iz objekta i s tom količinom izračunava temperaturu. Vrlo je precizno.

Korak 3: Prikažite OLED

OLED ekran
OLED ekran

Korak 4: Montaža

Montaža
Montaža

Ovo je vrlo jednostavna shema. Ovdje imam stol koji omogućava laku vizualizaciju.

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

Korak 5: Biblioteke

Biblioteke
Biblioteke
Biblioteke
Biblioteke

Da biste koristili OLED ekran, dodajte sljedeću biblioteku "Adafruit-GFX-Library-master".

Jednostavno pristupite "Sketch >> Include Libraries >> Manage Libraries …"

Dodajte i sljedeću biblioteku "Adafruit Unified Sensor".

Linkovi za preuzimanje biblioteka nalaze se u PDF -u, dostupni ispod.

Korak 6: Izvorni kod

Započet ćemo definiranjem biblioteka i konstanti koje ćemo koristiti za vrijeme koda.

#include // Biblioteka za I2C #include // Biblioteka para comunicação com o sensor #include // Biblioteca para propriedades gráficas #include // Biblioteca para comunicação com dipsplay OLED // pinemam para o NodeMCU ESP8266 #define sclk D5 #D7 # #define cs D8 #define rst D3 #define dc D4 // definirajte das cores que serão utilizadas #define BLACK 0x0000 #define WHITE 0xFFFF // definirajte da koordinirate na escreveremos cada um dosos #define POS_EZ_BAM_POSEBENO_POSEBENO POSEBENO POSEBENO POSEBENO 7 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // konstruktor radi objekta za komunikaciju com na display OLED Adafruit_SSD1331 display = Adafruit_SSD1331 (cs, dc, mosi, sclk, rst) // objektivni odaziv za komunikaciju sa senzorom infracrveni IRTherm senzor; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; float tempObjeto;

Postaviti

U funkciji setup () inicijalizirat ćemo naš objekt komunikacije sa senzorom, kao i objekt komunikacije s zaslonom. Evo nekoliko postavki za svaku od njih.

void setup () {// Inicializacijski senzor za temperaturu infravermelho sensor.begin (); // Odabir temperature na Celzijusovom senzoru.setUnit (TEMP_C); // podešavamo ili koristimo TEMP_F po Farenhajtu // ou TEMP_K po Kelvinu // inicializiramo objekte za komunikaciju na ekranu OLED display.begin (); // pinta a tela toda de preto display.fillScreen (BLACK); // konfiguracija o tekstualnom tekstualnom prikazu ekrana.setTextSize (0); // konfiguriranje podružnice za tekstualni display.setTextColor (WHITE); // os komandi ili pozicioniranje kursora br (x, y) desejado za sigurnosni 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}

Petlja

U funkciji loop () pročitajmo podatke senzora, a zatim ih prikažimo na OLED ekranu.

// Chamamos o metodi "čitanja" do senzora za realizaciju temperature do temperature // čitanje retorike 1 caso consiga realizacija lauta, ou 0 caso contrário if (sensor.read ()) {// ponovno uspostavljanje temperature do temperature do ambijentalne temperatureAmbiente = sensor.ambient (); // recupera a leitura da temperature do objectto apontado pelo sensor senzor tempObjeto = sensor.object (); // limpa i područje na kolokamosu ili valori da temperatura do ambijenta i do objekta display.fillRect (POS_X_AMBIENTE+35, POS_Y_AMBIENTE, 35, 10, CRNO); display.fillRect (POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, CRNO); // pozicija kursora na ekranu ambijentalne temperature.setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // simbolo de graus // pozicija kursora ili povećanje temperature do objektiva que na senzoru prikazuje apontando display.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); display.print ((char) 247); // simbolo de graus} kašnjenje (1000); // intervalo de 1 segundo para a próxima leitura}

Preporučuje se: