Բովանդակություն:

Ինֆրակարմիր տվիչ ESP8266: 6 քայլով
Ինֆրակարմիր տվիչ ESP8266: 6 քայլով

Video: Ինֆրակարմիր տվիչ ESP8266: 6 քայլով

Video: Ինֆրակարմիր տվիչ ESP8266: 6 քայլով
Video: สอนใช้งานบอร์ด Arduino กับ Infrared Photoelectric Switch E3F-R2N1 & Reflector Plateพร้อมโค้ดตัวอย่าง 2024, Հուլիսի
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Այս անգամ մեր նպատակն է ստեղծել ծրագիր, որը կկարդա մեր սենսորին ուղղված ցանկացած օբյեկտի շրջակա ջերմաստիճանը: Դա անելու համար մենք այս նախագծում կօգտագործենք ESP8266 nodeMCU, MLX90614 ինֆրակարմիր տվիչ և OLED 96 դյույմ էկրան, որը կցուցադրի ջերմաստիճանի տվյալները:

Քայլ 1. WiFi ESP8266 NodeMcu ESP-12E

Քայլ 2: Ինֆրակարմիր ցուցիչ

Ինֆրակարմիր ցուցիչ
Ինֆրակարմիր ցուցիչ

Այս տեղադրման մեջ օգտագործվող MLX90614 ինֆրակարմիր տվիչը իրականում տեսախցիկի տեսակ է: Այն նկարում է պատկերներ CCD- ի (Charged Coupled Device) միջոցով, համակարգ, որը շատ նման է դեռեւս թվային տեսախցիկներում օգտագործվող համակարգին: Այսպիսով, այն գրանցում է օբյեկտից դուրս եկող ինֆրակարմիր ծավալը, և այդ քանակությամբ այն հաշվարկում է ջերմաստիճանը: Շատ ճշգրիտ է:

Քայլ 3: Displayուցադրել OLED- ը

Displayուցադրել OLED
Displayուցադրել OLED

Քայլ 4: Հավաքում

Ժողով
Ժողով

Սա շատ պարզ սխեմա է: Ես այստեղ ունեմ սեղան, որը թույլ է տալիս հեշտությամբ պատկերացնել:

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - ՕԳՆ

D4 - DC

D8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

GND - GND

Քայլ 5: Գրադարաններ

Գրադարաններ
Գրադարաններ
Գրադարաններ
Գրադարաններ

OLED էկրանն օգտագործելու համար ավելացրեք հետևյալ «Adafruit-GFX-Library-master» գրադարանը:

Պարզապես մուտք գործեք «Էսքիզներ >> Ներառեք գրադարաններ >> Կառավարեք գրադարանները …"

Ավելացրեք նաև հետևյալ «Adafruit Unified Sensor» գրադարանը:

Գրադարանների ներբեռնման հղումները PDF- ում են ՝ հասանելի ստորև:

Քայլ 6: Աղբյուրի կոդ

Մենք կսկսենք ՝ սահմանելով այն գրադարաններն ու հաստատունները, որոնք մենք կօգտագործենք մեր ծածկագրի ընթացքում:

#ներառել // 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 sclk D5 #define #define cs D8 #define rst D3 #define dc D4 // definição das cores que serão utilisadas #define BLACK 0x0000 #define WHITE 0xFFFF // definição da coordenada onde escreveremos cada_um dos_DOF_BOBEBE 2 #սահմանել POS_Y_OBJETO 55 #սահմանել POS_X_TITULO 10 #սահմանել POS_Y_TITULO 4 // OLED Adafruit_SSD1331 ցուցադրման համար անհրաժեշտ է ցուցադրել = Adafruit_SSD1331 (cs, dc, mosi, sclk, rst) // objeto responsável pela comunicação com o sensor infravermelho IRTherm ցուցիչ; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; float tempObjeto;

Կարգավորում

Setup () գործառույթում մենք նախաստորագրելու ենք սենսորի հետ մեր հաղորդակցության օբյեկտը, ինչպես նաև ցուցադրման հետ հաղորդակցության օբյեկտը: Ահա դրանցից յուրաքանչյուրի համար մի քանի կարգավորումներ:

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // leելսիուսի ջերմաստիճանի սենսոր. // pinta a tela toda de preto display.fillScreen (ՍԵՎ); // 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 կուրսորը no (x, y) desejado for 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 () գործառույթում եկեք կարդանք սենսորների տվյալները, այնուհետև դրանք ցուցադրենք OLED էկրանին:

// chamamos o método «կարդալ» do sensor para realizar a leitura da temperatura // կարդալ retornará 1 caso consiga realizar a leitura, կամ 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, ՍԵՎ); display.fillRect (POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, ՍԵՎ); // կուրսորը և ջերմաստիճանը ցուցադրող ջերմաստիճանի ցուցադրում: setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // simbolo de graus // հնարավորությունը կամ կուրսորը պետք է պահպանել ջերմաստիճանը և օբյեկտիվ կամ օժանդակ ցուցիչը ցուցադրել: setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); display.print ((char) 247); // simbolo de graus} ուշացում (1000); // intervalo de 1 segundo para a próxima leitura}

Խորհուրդ ենք տալիս: