Sommario:

Sensore a infrarossi con ESP8266: 6 passaggi
Sensore a infrarossi con ESP8266: 6 passaggi

Video: Sensore a infrarossi con ESP8266: 6 passaggi

Video: Sensore a infrarossi con ESP8266: 6 passaggi
Video: Tutorial Arduino ITA 27: modulo WiFi ESP8266 2024, Luglio
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Il nostro obiettivo questa volta è creare un programma che legga la temperatura ambiente di qualsiasi oggetto che punta verso il nostro sensore. Per fare ciò, utilizzeremo in questo progetto un nodeMCU ESP8266, un sensore a infrarossi MLX90614 e un display OLED 96 , che visualizzerà i dati della temperatura.

Passaggio 1: WiFi ESP8266 NodeMcu ESP-12E

Passaggio 2: sensore a infrarossi

Sensore a infrarossi
Sensore a infrarossi

Il sensore a infrarossi MLX90614 utilizzato in questa configurazione è in realtà un tipo di videocamera. Cattura le immagini tramite il CCD (Charged Coupled Device), un sistema molto simile a quello utilizzato nelle fotocamere digitali fisse. Pertanto, registra la quantità di infrarossi che esce dall'oggetto e con questa quantità calcola la temperatura. È molto preciso.

Passaggio 3: visualizza OLED

Display OLED
Display OLED

Passaggio 4: assemblaggio

Assemblea
Assemblea

Questo è uno schema molto semplice. Ho una tabella qui che consente una facile visualizzazione.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - DC

RE8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

GND - GND

Passaggio 5: biblioteche

Biblioteche
Biblioteche
Biblioteche
Biblioteche

Per utilizzare il display OLED, aggiungi la seguente libreria "Adafruit-GFX-Library-master".

Accedi semplicemente a "Schizzo >> Includi librerie >> Gestisci librerie …"

Inoltre, aggiungi la seguente libreria "Adafruit Unified Sensor".

I link per il download delle librerie sono nel PDF, disponibile appena sotto.

Passaggio 6: codice sorgente

Inizieremo definendo le librerie e le costanti che useremo durante il nostro codice.

#include //Biblioteca per I2C#include //Biblioteca per la comunicazione con il sensore #include //Biblioteca per le grafiche di proprietà #include //Biblioteca per la comunicazione con display OLED // pinagem per 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 #define POS_X_AMBIENTE_AMJETOfine POS_Y_AMBIENTE 2 #define POS_Y_AMBIENTE 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // costruttore di oggetti per comunicare con il display OLED Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, mosi, sclk, rst); //objeto responsável pela comunicação com o sensor infravermelho Sensore IRTherm; //variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; float tempObjeto;

Impostare

Nella funzione setup() inizializzeremo il nostro oggetto di comunicazione con il sensore, così come l'oggetto di comunicazione con il display. Ecco alcune impostazioni per ciascuno di essi.

void setup(){ //Inizializzazione sensore di temperatura infravermelho sensor.begin(); //Selezione temperatura em Celsius sensor.setUnit(TEMP_C);//podemos aiuta a utilizzare TEMP_F per Fahrenheit //ou TEMP_K per 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 en tela display.setTextSize(0); //configura un ramo per il testo display.setTextColor(WHITE); //os comandis 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); //simbolo di colore 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 }

Ciclo continuo

Nella funzione loop(), leggiamo i dati del sensore e poi li visualizziamo sul display OLED.

//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 = sensore.ambiente(); //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, NERO); //posiciona o cursor e escreve a temperatura ambiente display.setCursor(POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print(tempAmbiente); display.print((carattere)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((carattere)247); //simbolo de graus } delay(1000); //intervallo di 1 secondo para a próxima leitura }

Consigliato: