Talaan ng mga Nilalaman:

Infrared Sensor Sa ESP8266: 6 na Hakbang
Infrared Sensor Sa ESP8266: 6 na Hakbang

Video: Infrared Sensor Sa ESP8266: 6 na Hakbang

Video: Infrared Sensor Sa ESP8266: 6 na Hakbang
Video: IR Sensor Project | IR Sensor Module Working | IR Module Project | IR Project | 2024, Nobyembre
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Ang aming layunin sa oras na ito ay upang lumikha ng isang programa na basahin ang temperatura ng paligid ng anumang bagay na tumuturo patungo sa aming sensor. Upang magawa ito, gagamitin namin sa proyektong ito ang isang ESP8266 nodeMCU, isang MLX90614 infrared sensor, at isang OLED 96 na display, na magpapakita ng data ng temperatura.

Hakbang 1: WiFi ESP8266 NodeMcu ESP-12E

Hakbang 2: Infrared Sensor

Infrared Sensor
Infrared Sensor

Ang MLX90614 infrared sensor na ginamit sa setup na ito ay talagang isang uri ng camcorder. Nakukuha nito ang mga imahe sa pamamagitan ng CCD (Charged Coupled Device), isang system na halos kapareho ng ginagamit sa mga digital camera pa rin. Sa gayon, itinatala nito ang dami ng infrared na paglabas ng object, at sa halagang ito, kinakalkula nito ang temperatura. Napaka tumpak nito.

Hakbang 3: Ipakita ang OLED

Ipakita ang OLED
Ipakita ang OLED

Hakbang 4: Assembly

Assembly
Assembly

Ito ay isang napaka-simpleng pamamaraan. Mayroon akong isang talahanayan dito na nagbibigay-daan para sa madaling visualization.

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

Hakbang 5: Mga Aklatan

Mga aklatan
Mga aklatan
Mga aklatan
Mga aklatan

Upang magamit ang OLED display, idagdag ang sumusunod na "Adafruit-GFX-Library-master" library.

I-access lamang ang "Sketch >> Isama ang Mga Aklatan >> Pamahalaan ang Mga Aklatan …"

Gayundin, idagdag ang sumusunod na library ng "Adafruit Unified Sensor".

Ang mga link sa pag-download para sa mga aklatan ay nasa PDF, na magagamit sa ibaba lamang.

Hakbang 6: Source Code

Magsisimula kami sa pamamagitan ng pagtukoy sa mga aklatan at mga Constant na gagamitin namin sa panahon ng aming code.

#include // Biblioteca para I2C # isama // Biblioteca para sa comunicação com o sensor #include // Biblioteca para sa propriedades gráficas #include // Biblioteca para comunicação com dipsplay OLED // pinagem para sa 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_AMBIENTE 2 #define POS_Odine POS_O_DEBE POS_O_DEBE POS_O_DEJE POS 2 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 float tempAmbiente; float tempObjeto;

Pag-set up

Sa pag-andar ng setup (), isasimula namin ang aming object ng komunikasyon sa sensor, pati na rin ang object ng komunikasyon sa display. Narito ang ilang mga setting para sa bawat isa sa kanila.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Seleciona temperatura em Celsius sensor.setUnit (TEMP_C); // podemos ainda utilizar TEMP_F para 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 do texto que escreveremos em tela display.setTextSize (0); // configura a cor branca para 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

Sa pagpapaandar ng loop (), basahin natin ang data ng sensor, at pagkatapos ay ipakita ang mga ito sa OLED display.

// 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 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); // 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} pagkaantala (1000); // intervalo de 1 segundo para a próxima leitura}

Inirerekumendang: