Πίνακας περιεχομένων:

Αισθητήρας υπερύθρων με ESP8266: 6 βήματα
Αισθητήρας υπερύθρων με ESP8266: 6 βήματα

Βίντεο: Αισθητήρας υπερύθρων με ESP8266: 6 βήματα

Βίντεο: Αισθητήρας υπερύθρων με ESP8266: 6 βήματα
Βίντεο: Using 28BYJ-48 Stepper Motor Push button Speed with 8 projects: Ultimate Video Tutorial Lesson 107 2024, Ιούλιος
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Ο στόχος μας αυτή τη φορά είναι να δημιουργήσουμε ένα πρόγραμμα που θα διαβάζει τη θερμοκρασία περιβάλλοντος κάθε αντικειμένου που δείχνει προς τον αισθητήρα μας. Για να γίνει αυτό, θα χρησιμοποιήσουμε σε αυτό το έργο έναν κόμβο ESP8266MCU, έναν αισθητήρα υπερύθρων MLX90614 και μια οθόνη OLED 96 , η οποία θα εμφανίζει τα δεδομένα θερμοκρασίας.

Βήμα 1: WiFi ESP8266 NodeMcu ESP-12E

Βήμα 2: Αισθητήρας υπερύθρων

Αισθητήρας υπερύθρων
Αισθητήρας υπερύθρων

Ο αισθητήρας υπερύθρων MLX90614 που χρησιμοποιείται σε αυτήν τη ρύθμιση είναι στην πραγματικότητα ένας τύπος βιντεοκάμερας. Καταγράφει εικόνες μέσω του CCD (Charged Coupled Device), ένα σύστημα πολύ παρόμοιο με αυτό που χρησιμοποιείται στις ακόμα ψηφιακές φωτογραφικές μηχανές. Έτσι, καταγράφει την ποσότητα υπερύθρων που βγαίνει από το αντικείμενο και με αυτήν την ποσότητα, υπολογίζει τη θερμοκρασία. Είναι πολύ ακριβές.

Βήμα 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".

Απλώς αποκτήστε πρόσβαση στο "Sketch >> Include Libraries >> Manage Libraries …"

Επίσης, προσθέστε την ακόλουθη βιβλιοθήκη "Adafruit Unified Sensor".

Οι σύνδεσμοι λήψης για τις βιβλιοθήκες είναι σε PDF, διαθέσιμοι ακριβώς από κάτω.

Βήμα 6: Πηγαίος κώδικας

Θα ξεκινήσουμε καθορίζοντας τις βιβλιοθήκες και τις σταθερές που θα χρησιμοποιήσουμε κατά τη διάρκεια του κώδικα.

#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 #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_BOBEBOBE 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // construtor do objeto para comunicar com or 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;

Ρύθμιση

Στη συνάρτηση 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 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 (ΛΕΥΚΟ); // 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}

Βρόχος

Στη λειτουργία βρόχου (), ας διαβάσουμε τα δεδομένα του αισθητήρα και, στη συνέχεια, να τα εμφανίσουμε στην οθόνη OLED.

// chamamos o método "read" do sensor para realizar a leitura da temperatura // read 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, ΜΑΥΡΟ); // 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 or está apontando display.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}

Συνιστάται: