Turinys:

Infraraudonųjų spindulių jutiklis su ESP8266: 6 žingsniai
Infraraudonųjų spindulių jutiklis su ESP8266: 6 žingsniai

Video: Infraraudonųjų spindulių jutiklis su ESP8266: 6 žingsniai

Video: Infraraudonųjų spindulių jutiklis su ESP8266: 6 žingsniai
Video: SENSORE IR di Arduino. #arduino tutti i video su @MarcelloBarca 2024, Lapkritis
Anonim
Image
Image
„WiFi“ESP8266 „NodeMcu ESP-12E“
„WiFi“ESP8266 „NodeMcu ESP-12E“

Šį kartą mūsų tikslas yra sukurti programą, kuri nuskaitytų bet kurio objekto, nukreipto į mūsų jutiklį, aplinkos temperatūrą. Norėdami tai padaryti, šiame projekte naudosime ESP8266 nodeMCU, MLX90614 infraraudonųjų spindulių jutiklį ir OLED 96 colių ekraną, kuriame bus rodomi temperatūros duomenys.

1 veiksmas: „WiFi ESP8266 NodeMcu ESP-12E“

2 žingsnis: infraraudonųjų spindulių jutiklis

Infraraudonųjų spindulių jutiklis
Infraraudonųjų spindulių jutiklis

Šioje sąrankoje naudojamas infraraudonųjų spindulių jutiklis MLX90614 iš tikrųjų yra vaizdo kameros tipas. Jis fiksuoja vaizdus per CCD („Charged Coupled Device“) - sistemą, labai panašią į tą, kuri naudojama skaitmeniniuose fotoaparatuose. Taigi jis registruoja iš objekto sklindančio infraraudonųjų spindulių kiekį ir su šiuo kiekiu apskaičiuoja temperatūrą. Tai labai tikslu.

3 veiksmas: rodyti OLED

Ekranas OLED
Ekranas OLED

4 žingsnis: Surinkimas

Surinkimas
Surinkimas

Tai labai paprasta schema. Čia turiu lentelę, kuri leidžia lengvai vizualizuoti.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - nuolatinė srovė

D8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

GND - GND

5 žingsnis: bibliotekos

Bibliotekos
Bibliotekos
Bibliotekos
Bibliotekos

Jei norite naudoti OLED ekraną, pridėkite šią biblioteką „Adafruit-GFX-Library-master“.

Tiesiog eikite į „Eskizas >> Įtraukti bibliotekas >> Tvarkyti bibliotekas …“

Taip pat pridėkite šią biblioteką „Adafruit Unified Sensor“.

Bibliotekų atsisiuntimo nuorodos yra PDF formatu, kurį rasite žemiau.

6 žingsnis: šaltinio kodas

Pradėsime apibrėždami bibliotekas ir konstantas, kurias naudosime savo kodo metu.

#include // Biblioteca para I2C #include // Biblioteca para comunicaçã com com sensor #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) // atsakymas į atsakymą pela comunicação com o jutiklio infravermelho IRTherm sensor; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; plūdės tempObjeto;

Sąranka

Funkcijoje setup () inicijuosime savo ryšio su jutikliu objektą ir ryšio su ekranu objektą. Štai keletas kiekvieno iš jų nustatymų.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Pasirinkta temperatūra pagal Celsijaus jutiklį. // pinta a tela toda de preto display.fillScreen (BLACK); // configura o tamnaho do texto que escreveremos em tela display.setTextSize (0); // sukonfigūruoti tekstinį ekraną. setTextColor (BALTA); // 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); // grafinis ekranas.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}

Kilpa

Naudodami funkciją loop (), perskaitykime jutiklio duomenis ir parodykime juos OLED ekrane.

// 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 ()) {// rekuperacija ir leitura da temperatura do ambiente tempAmbiente = jutiklis.ambient (); // recupera a leitura da temperatura do objeto apontado pelo sensor 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, BLACK); // pozicija arba žymeklis ir aplinkos temperatūros rodymas. setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); ekranas.spaudas ((char) 247); // simbolo de graus // pozicija arba žymeklis ir escreve a temperatura do objeto que o sensor está apontando display.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); ekranas.spaudas ((char) 247); // simbolo de graus} delay (1000); // intervalo de 1 segundo para a próxima leitura}

Rekomenduojamas: