Inhoudsopgave:

Infraroodsensor met ESP8266 - Ajarnpa
Infraroodsensor met ESP8266 - Ajarnpa

Video: Infraroodsensor met ESP8266 - Ajarnpa

Video: Infraroodsensor met ESP8266 - Ajarnpa
Video: ESP8266 NODEMCU & IR Sensor for Object Detection IoT Application 2024, November
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Ons doel deze keer is om een programma te maken dat de omgevingstemperatuur leest van elk object dat naar onze sensor wijst. Om dit te doen, zullen we in dit project een ESP8266-nodeMCU, een MLX90614-infraroodsensor en een OLED 96-inch display gebruiken, dat de temperatuurgegevens zal weergeven.

Stap 1: WiFi ESP8266 NodeMcu ESP-12E

Stap 2: Infraroodsensor

Infrarood sensor
Infrarood sensor

De infraroodsensor MLX90614 die in deze opstelling wordt gebruikt, is eigenlijk een soort camcorder. Het legt beelden vast via de CCD (Charged Coupled Device), een systeem dat erg lijkt op het systeem dat wordt gebruikt in digitale camera's. Het registreert dus de hoeveelheid infrarood die uit het object komt en berekent met deze hoeveelheid de temperatuur. Het is heel precies.

Stap 3: OLED weergeven

OLED weergeven
OLED weergeven

Stap 4: Montage

samenkomst
samenkomst

Dit is een heel eenvoudig schema. Ik heb hier een tabel die een gemakkelijke visualisatie mogelijk maakt.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - DC

D8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

GND - GND

Stap 5: Bibliotheken

Bibliotheken
Bibliotheken
Bibliotheken
Bibliotheken

Om het OLED-scherm te gebruiken, voegt u de volgende "Adafruit-GFX-Library-master"-bibliotheek toe.

Ga gewoon naar "Schets >> Bibliotheken opnemen >> Bibliotheken beheren …"

Voeg ook de volgende "Adafruit Unified Sensor"-bibliotheek toe.

De downloadlinks voor de bibliotheken staan in de PDF, die hieronder beschikbaar is.

Stap 6: Broncode

We beginnen met het definiëren van de bibliotheken en constanten die we tijdens onze code zullen gebruiken.

#include //Biblioteca para I2C#include //Biblioteca para comunicação com o sensor #include //Biblioteca para propriedades graficas #include //Biblioteca para comunicação com dipsplay OLED // pinagem para o #defineMCU ESP8266 #defineMCU ESP8266 #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_AM_AM #define POS_AM_AM_AM_define POS_AM_X_AM_define WHITE 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // construtor voor communicatie voor het weergeven van OLED Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, mosi, sclk, rst); //objeto responsavel pela comunicação com o sensor infravermelho IRTherm-sensor; //variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; float tempObjeto;

Opstelling

In de setup ()-functie zullen we ons communicatieobject met de sensor initialiseren, evenals het object van communicatie met het display. Hier zijn enkele instellingen voor elk van hen.

void setup() {//Inicializa sensor de temperatuur infravermelho sensor.begin(); //Seleciona temperatuur em Celsius 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 toda de preto display.fillScreen (ZWART); //configura of tamnaho do texto que escreveremos em tela display.setTextSize (0); // configureer een cor branca voor tekstdisplay.setTextColor (WHITE); //os comandos abaixo posicionam of cursor no (x, y) desejado para a seguir escrevermos em tela display.setCursor (POS_X_TITULO, POS_Y_TITULO); display.print("TEMPERATUUR"); display.setCursor(POS_X_TITULO+20, POS_Y_TITULO+15); display.print("("); display.print((char)247); //symbool van 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}

Lus

Laten we in de loop ()-functie de sensorgegevens lezen en deze vervolgens op het OLED-display weergeven.

//chamamos o método "read" do sensor para realizar een leitura da temperatura//read retornará 1 caso consiga realizar a leitura, ou 0 caso contrário if (sensor.read ()) { // recupera een leitura da temperatura do ambiente tempAmbiente = sensor.omgeving(); //recuperatie van de temperatuur van de sensor tempObjeto = sensor.object(); //limpa a área onde colocamos o valor da temperatura do ambiente en objeto display.fillRect(POS_X_AMBIENTE+35, POS_Y_AMBIENTE, 35, 10, BLACK); display.fillRect(POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, ZWART); //posiciona o cursor e escreve een temperatuur ambiente display.setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print(tempAmbiente); display.print((char)247); //simbolo de graus //posiciona of cursor en escreve a temperatura do objeto que of sensor está apontando display.setCursor(POS_X_OBJETO+35, POS_Y_OBJETO); display.print(tempObjeto); display.print((char)247); //simbolo de graus} vertraging (1000); //interval van 1 segundo para a proxima leitura }

Aanbevolen: