Satura rādītājs:

Infrasarkanais sensors ar ESP8266: 6 soļi
Infrasarkanais sensors ar ESP8266: 6 soļi

Video: Infrasarkanais sensors ar ESP8266: 6 soļi

Video: Infrasarkanais sensors ar ESP8266: 6 soļi
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Jūlijs
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Mūsu mērķis šoreiz ir izveidot programmu, kas nolasītu jebkura objekta apkārtējās vides temperatūru, kas vērsta uz mūsu sensoru. Lai to izdarītu, šajā projektā mēs izmantosim ESP8266 nodeMCU, MLX90614 infrasarkano sensoru un OLED 96 collu displeju, kas parādīs temperatūras datus.

1. darbība: WiFi ESP8266 NodeMcu ESP-12E

2. solis: infrasarkanais sensors

Infrasarkanais sensors
Infrasarkanais sensors

Šajā iestatījumā izmantotais infrasarkanais sensors MLX90614 patiesībā ir videokameras veids. Tas uzņem attēlus, izmantojot CCD (Charged Coupled Device), kas ir ļoti līdzīga sistēmai, ko izmanto nekustīgās digitālajās kamerās. Tādējādi tas reģistrē no objekta izplūstošo infrasarkano staru daudzumu un ar šo daudzumu aprēķina temperatūru. Tas ir ļoti precīzi.

3. darbība: parādiet OLED

Displejs OLED
Displejs OLED

4. solis: montāža

Montāža
Montāža

Šī ir ļoti vienkārša shēma. Man šeit ir tabula, kas ļauj viegli vizualizēt.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - līdzstrāva

D8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

GND - GND

5. darbība: bibliotēkas

Bibliotēkas
Bibliotēkas
Bibliotēkas
Bibliotēkas

Lai izmantotu OLED displeju, pievienojiet šādu bibliotēku "Adafruit-GFX-Library-master".

Vienkārši piekļūstiet sadaļai “Skice >> Iekļaut bibliotēkas >> Pārvaldīt bibliotēkas…”

Pievienojiet arī šādu bibliotēku "Adafruit Unified Sensor".

Bibliotēku lejupielādes saites ir PDF failā, kas pieejams tieši zemāk.

6. darbība: avota kods

Sāksim ar to bibliotēku un konstantu definēšanu, kuras izmantosim koda laikā.

#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 #POS_X_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 sensors; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; pludiņa tempObjeto;

Uzstādīt

Funkcijā setup () mēs inicializēsim saziņas objektu ar sensoru, kā arī saziņas objektu ar displeju. Šeit ir daži iestatījumi katram no tiem.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Atlases temperatūra Celsija 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); // konfigurējiet korporatīvo teksta displeju.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); // grafiskais displejs.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}

Cilpa

Funkcijā loop () nolasīsim sensora datus un pēc tam parādīsim tos OLED displejā.

// 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 = sensors.apkārt (); // recupera a leitura da temperatura do objeto apontado pelo sensor tempObjeto = sensors.objekts (); // 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); // pozicionēšana vai kursora parādīšana un apkārtējās vides displeja parādīšana. setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); displejs.druka ((char) 247); // simbolo de graus // pozicionēšana vai kursora iestatīšana un temperatūras paaugstināšana, lai sasniegtu sensoru un apestando display.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); displejs.druka ((char) 247); // simbolo de graus} delay (1000); // intervalo de 1 segundo para a próxima leitura}

Ieteicams: