Სარჩევი:

ინფრაწითელი სენსორი ESP8266: 6 ნაბიჯი
ინფრაწითელი სენსორი ESP8266: 6 ნაბიჯი

ვიდეო: ინფრაწითელი სენსორი ESP8266: 6 ნაბიჯი

ვიდეო: ინფრაწითელი სენსორი ESP8266: 6 ნაბიჯი
ვიდეო: ESP8266 ESP01 WIFI-UART | LDmicro-Roboremo პროგრამირება 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– ს საშუალებით (დამუხტული მოწყობილობა), სისტემა, რომელიც ძალიან ჰგავს ჯერ კიდევ ციფრულ კამერებს. ამრიგად, ის აღრიცხავს ობიექტიდან გამოსული ინფრაწითელი რაოდენობის რაოდენობას და ამ რაოდენობით, იგი ითვლის ტემპერატურას. ძალიან ზუსტია.

ნაბიჯი 3: აჩვენეთ OLED

OLED ჩვენება
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".

უბრალოდ შედით "ესკიზი >> ბიბლიოთეკების ჩათვლით >> ბიბლიოთეკების მართვა …"

ასევე, დაამატეთ შემდეგი ბიბლიოთეკა "ადაფრუტის ერთიანი სენსორი".

ბიბლიოთეკების გადმოსაწერი ბმულები მოცემულია PDF– ში, ხელმისაწვდომია ქვემოთ.

ნაბიჯი 6: საწყისი კოდი

ჩვენ დავიწყებთ ბიბლიოთეკების და მუდმივების განსაზღვრით, რომელსაც გამოვიყენებთ ჩვენი კოდის დროს.

#მოიცავს // Biblioteca para I2C #მოიცავს // 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 #define cs D8 #define rst D3 #define dc D4 // განსაზღვრეთ das cores que serão utilisadas #define BLACK 0x0000 #define WHITE 0xFFFF // definição da koordenada onde escreveremos cada um dos_Dos_DOF_BEOBEBOE DABE 2 #განსაზღვრეთ POS_Y_OBJETO 55 #განსაზღვრეთ POS_X_TITULO 10 #განსაზღვრეთ POS_Y_TITULO 4 // კონსტრუქტორი კომუნიკაციისთვის OLED Adafruit_SSD1331 ჩვენება = Adafruit_SSD1331 (cs, dc, mosi, sclk, rsk) // 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 (); // Seleciona temperatura em Celsius sensor.setUnit (TEMP_C); // podemos ainda utilisar TEMP_F para Fahrenheit // ou TEMP_K para Kelvin // inicializa o objeto para comunicarmos com or 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 cor corca 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); ჩვენება. ბეჭდვა ("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}

მარყუჟი

მარყუჟის () ფუნქციაში, მოდით წავიკითხოთ სენსორის მონაცემები და შემდეგ აჩვენოთ ისინი OLED ეკრანზე.

// chamamos o metodo "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, შავი); display.fillRect (POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, შავი); // კურსორი და ტემპერატურის გარემოს ჩვენება. setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); ჩვენება. ბეჭდვა (tempAmbiente); ჩვენება. ბეჭდვა ((char) 247); // simbolo de graus // პოზიციისა და კურსორის გასაზრდელად ტემპერატურისა და ტემპერატურის მონიტორინგისას, რაც სენსორი გამოჩნდება display.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); ჩვენება. ბეჭდვა (tempObjeto); ჩვენება. ბეჭდვა ((char) 247); // simbolo de graus} დაყოვნება (1000); // intervalo de 1 segundo para a próxima leitura}

გირჩევთ: