Sisukord:

Infrapunaandur ESP8266 -ga: 6 sammu
Infrapunaandur ESP8266 -ga: 6 sammu

Video: Infrapunaandur ESP8266 -ga: 6 sammu

Video: Infrapunaandur ESP8266 -ga: 6 sammu
Video: Сповіщувач руху інфрачервоний Crow Swan QuadОсновні . 2024, Juuli
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Meie eesmärk on seekord luua programm, mis loeb kõigi meie anduri poole suunatud objektide ümbritseva õhu temperatuuri. Selleks kasutame selles projektis ESP8266 nodeMCU, MLX90614 infrapunaandurit ja OLED 96 ekraani, mis kuvavad temperatuuri andmeid.

Samm: WiFi ESP8266 NodeMcu ESP-12E

Samm: infrapunaandur

Infrapuna andur
Infrapuna andur

Selles seadistuses kasutatav infrapunaandur MLX90614 on tegelikult teatud tüüpi videokaamera. See jäädvustab pilte CCD (Charged Coupled Device) kaudu, mis on väga sarnane süsteemiga, mida kasutatakse digitaalkaamerates. Seega salvestab see objektist väljuva infrapunakiirguse ja selle summaga arvutab temperatuuri. See on väga täpne.

Samm: kuvage OLED

Ekraan OLED
Ekraan OLED

4. samm: kokkupanek

Kokkupanek
Kokkupanek

See on väga lihtne skeem. Mul on siin tabel, mis võimaldab hõlpsalt visualiseerida.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - alalisvool

D8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

GND - GND

Samm: raamatukogud

Raamatukogud
Raamatukogud
Raamatukogud
Raamatukogud

OLED-ekraani kasutamiseks lisage järgmine teek "Adafruit-GFX-Library-master".

Avage lihtsalt jaotis "Visand >> Kaasa raamatukogud >> Raamatukogude haldamine …"

Lisage ka järgmine teek "Adafruit Unified Sensor".

Raamatukogude allalaadimislingid on PDF -failis, mis on saadaval allpool.

6. samm: lähtekood

Alustuseks määratleme teegid ja konstandid, mida meie koodi ajal kasutame.

#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 DC 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 responseável pela comunicação com o sensor infravermelho IRTherm sensor; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; ujuk tempObjeto;

Seadistamine

Funktsioonis setup () lähtestame oma anduriga suhtlemise objekti, samuti ekraaniga suhtlemise objekti. Siin on mõned seaded igaühe jaoks.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Valitud temperatuur Celsiuse sensor.setUnit (TEMP_C); // podemos ainda utilizar TEMP_F para Fahrenheit // ou TEMP_K para Kelvin // inicializa o objeto para comunicarmos com display OLED display.begin (); // pinta a tela toda de preto display.fillScreen (MUST); // configura o tamnaho do texto que escreveremos em tela display.setTextSize (0); // seadistage teksti korrektselt ekraanile.setTextColor (VALGE); // 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); // ekraani print.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}

Loop

Funktsioonis loop () loeme anduri andmed ja kuvame need seejärel OLED -ekraanil.

// 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 (); // recupera a leitura da temperatura do objeto apontado pelo sensor tempObjeto = sensor.object (); // limpa a área on 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, MUST); // positsioon või kursor ja ümbritseva temperatuuri kuvamine. setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); kuva.print ((char) 247); // simbolo de graus // positsioon või kursor ja escreve a temperatura do objeto que o sensor and está apontando display.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); kuva.print ((char) 247); // simbolo de graus} delay (1000); // intervalo de 1 segundo para a próxima leitura}

Soovitan: