Sisällysluettelo:

Infrapuna -anturi ESP8266: 6 askelta
Infrapuna -anturi ESP8266: 6 askelta

Video: Infrapuna -anturi ESP8266: 6 askelta

Video: Infrapuna -anturi ESP8266: 6 askelta
Video: Servo motor and Arduino uno and battery and infrared Obstacle Avoidance Sensor 2024, Heinäkuu
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Tavoitteenamme tällä kertaa on luoda ohjelma, joka lukee minkä tahansa anturin suuntaan osoittavan kohteen ympäristön lämpötilan. Tätä varten käytämme tässä projektissa ESP8266 nodeMCU: ta, MLX90614 -infrapuna -anturia ja OLED 96 -näyttöä, joka näyttää lämpötilatiedot.

Vaihe 1: WiFi ESP8266 NodeMcu ESP-12E

Vaihe 2: Infrapuna -anturi

Infrapuna -anturi
Infrapuna -anturi

Tässä asetuksessa käytetty MLX90614 -infrapuna -anturi on itse asiassa eräänlainen videokamera. Se ottaa kuvia CCD: n (Charged Coupled Device) kautta, joka on hyvin samanlainen järjestelmä kuin digitaalikameroissa. Siten se tallentaa kohteesta tulevan infrapunamäärän ja laskee lämpötilan tällä määrällä. Se on erittäin tarkka.

Vaihe 3: Näytä OLED

Näyttö OLED
Näyttö OLED

Vaihe 4: Kokoonpano

Kokoonpano
Kokoonpano

Tämä on hyvin yksinkertainen kaava. Minulla on tässä taulukko, joka mahdollistaa helpon visualisoinnin.

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

Vaihe 5: Kirjastot

Kirjastot
Kirjastot
Kirjastot
Kirjastot

Jos haluat käyttää OLED-näyttöä, lisää seuraava "Adafruit-GFX-Library-master" -kirjasto.

Avaa vain "Luonnos >> Sisällytä kirjastot >> Hallitse kirjastoja…"

Lisää myös seuraava "Adafruit Unified Sensor" -kirjasto.

Kirjastojen latauslinkit ovat PDF -muodossa, joka on saatavana alla.

Vaihe 6: Lähdekoodi

Aloitamme määrittelemällä kirjastot ja vakiot, joita käytämme koodimme aikana.

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

Perustaa

Setup () -toiminnossa alustamme viestintäkohteemme anturin kanssa ja viestintäkohde näytön kanssa. Tässä on joitain asetuksia kullekin niistä.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Lämpötilan valinta Celsius -anturilla.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 (MUSTA); // configura o tamnaho do texto que escreveremos em tela display.setTextSize (0); // määritä tekstin näyttö. setTextColor (VALKOINEN); // os comandos abaixo posicionam tai kohdistin nro (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); // sivun väri gra. 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}

Silmukka

Silmukka () -toiminnossa luetaan anturitiedot ja näytetään ne sitten OLED -näytöllä.

// 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 = anturi.ympyrä (); // recupera a leitura da temperatura do objeto apontado pelo sensor tempObjeto = sensor.object (); // limpa area 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, MUSTA); // sijainti tai kohdistin ja lämpötilan ympäristön näyttö. setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); näyttö. tulostus ((char) 247); // simbolo de graus // sijainti tai kohdistin ja escreve a lämpötila to objeto que o sensor está apontando display.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); näyttö. tulostus ((char) 247); // simbolo de graus} delay (1000); // intervalo de 1 segundo para a próxima leitura}

Suositeltava: