Cov txheej txheem:

Infrared Sensor Nrog ESP8266: 6 Cov Kauj Ruam
Infrared Sensor Nrog ESP8266: 6 Cov Kauj Ruam

Video: Infrared Sensor Nrog ESP8266: 6 Cov Kauj Ruam

Video: Infrared Sensor Nrog ESP8266: 6 Cov Kauj Ruam
Video: Improved Cleaning Quality and Efficiency with Disruptive Technologies & Datec 2024, Lub Xya hli ntuj
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Peb lub hom phiaj lub sijhawm no yog txhawm rau tsim txoj haujlwm uas yuav nyeem qhov kub ib puag ncig ntawm txhua yam khoom taw qhia rau peb lub ntsuas. Txhawm rau ua qhov no, peb yuav siv hauv txoj haujlwm no ESP8266 nodeMCU, lub ntsuas hluav taws xob MLX90614, thiab OLED 96 zaub, uas yuav tso saib cov ntaub ntawv ntsuas kub.

Kauj Ruam 1: WiFi ESP8266 NodeMcu ESP-12E

Kauj ruam 2: Infrared Sensor

Infrared Sensor
Infrared Sensor

Lub MLX90614 lub teeb pom kev zoo siv hauv qhov teeb tsa no yeej yog ib yam ntawm cov koob yees duab. Nws ntes cov duab ntawm CCD (Charged Coupled Device), lub kaw lus zoo ib yam li uas siv hauv cov koob yees duab digital. Yog li, nws sau cov nyiaj infrared tawm los ntawm qhov khoom, thiab nrog tus lej no, nws suav qhov ntsuas kub. Nws yog qhov tseeb heev

Kauj Ruam 3: Zaub OLED

Zaub OLED
Zaub OLED

Kauj ruam 4: Sib dhos

Los ua ke
Los ua ke

Qhov no yog txheej txheem yooj yim heev. Kuv muaj ib lub rooj ntawm no uas tso cai rau pom kev yooj yim.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - DC

D8 - TSO

3, 3v - VCC

GND - NCO

TIAB SA 90614

D1 - TSO

D2 - SDA

3, 3v - VCC

GND - NCO

Kauj ruam 5: Cov tsev qiv ntawv

Tsev qiv ntawv
Tsev qiv ntawv
Tsev qiv ntawv
Tsev qiv ntawv

Txhawm rau siv OLED zaub, ntxiv cov ntawv hauv qab no "Adafruit-GFX-Library-master".

Cias nkag mus rau "Sketch >> suav nrog Tsev Qiv Ntawv >> Tswj Tsev Qiv Ntawv …"

Tsis tas li, ntxiv cov ntawv hauv qab no "Adafruit Unified Sensor".

Cov kab ntawv rub tawm rau cov tsev qiv ntawv muaj nyob hauv PDF, muaj nyob hauv qab no.

Kauj ruam 6: Source Code

Peb yuav pib los ntawm kev txhais cov tsev qiv ntawv thiab qhov peb yuav siv thaum lub sijhawm peb cov cai.

#include // Biblioteca para I2C #include // Biblioteca para comunicação com o sensor #include // Biblioteca rau propriedades gráficas #include // Biblioteca para comunicação com dipsplay OLED // pinagem para o NodeMCU ESP8266 #define sclk D5 #define #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_AMBENEN #PF_X_AMBIENE2 #PF_O_BAM_BAM_BAM 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 responsável pela comunicação com o sensor infravermelho IRTherm sensor; // variáveis que armazenarão o valor das temperaturas lidas ntab tempAmbiente; ntab tempObjeto;

Teeb

Hauv kev teeb tsa () ua haujlwm, peb yuav pib peb lub hom phiaj ntawm kev sib txuas lus nrog lub sensor, nrog rau lub hom phiaj ntawm kev sib txuas lus nrog cov zaub. Nov yog qee qhov chaw rau txhua tus ntawm lawv.

teeb tsa tsis muaj dab tsi () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Seleciona temperatura em Celsius sensor.setUnit (TEMP_C); // podemos ainda utilizar TEMP_F rau Fahrenheit // ou TEMP_K para Kelvin // inicializa o objeto para comunicarmos com o display OLED display.begin (); // pinta a tela toda de preto display.fillScreen (BLACK); // configura o tamnaho ua texto que escreveremos em tela display.setTextSize (0); // teeb tsa tus qauv branca rau o texto display.setTextColor (WHITE); // 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}

Loop

Hauv lub voj () ua haujlwm, cia peb nyeem cov ntaub ntawv ntsuas, thiab tom qab ntawd tso lawv rau ntawm OLED zaub.

// chamamos o método "nyeem" ua sensor rau realizar a leitura da temperatura // nyeem 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 area onde colocamos o valor da temperatura do ambiente e objeto display.fillRect (POS_X_AMBIENTE+35, POS_Y_AMBIENTE, 35, 10, BLACK); display.fillRect (POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, DUB); // posiciona o cursor e escreve a temperatura ambiente display.setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // simbolo de graus // posiciona o cursor e escreve a temperatura do objeto que o sensor está apontando display.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); display.print ((char) 247); // simbolo de graus} ncua (1000); // intervalo de 1 segundo para a próxima leitura}

Pom zoo: