Inhaltsverzeichnis:

Infrarotsensor mit ESP8266 - Gunook
Infrarotsensor mit ESP8266 - Gunook

Video: Infrarotsensor mit ESP8266 - Gunook

Video: Infrarotsensor mit ESP8266 - Gunook
Video: Test Powermeter Chint DDS666 simple phase 3200imp/kwh + ESP8266 12E : PDAControl 2024, September
Anonim
Image
Image
WLAN ESP8266 NodeMcu ESP-12E
WLAN ESP8266 NodeMcu ESP-12E

Unser Ziel ist es diesmal, ein Programm zu erstellen, das die Umgebungstemperatur jedes Objekts liest, das auf unseren Sensor zeigt. Dazu verwenden wir in diesem Projekt eine ESP8266 nodeMCU, einen MLX90614 Infrarotsensor und ein OLED 96 Display, das die Temperaturdaten anzeigt.

Schritt 1: WiFi ESP8266 NodeMcu ESP-12E

Schritt 2: Infrarotsensor

Infrarotsensor
Infrarotsensor

Der in diesem Setup verwendete Infrarotsensor MLX90614 ist eigentlich eine Art Camcorder. Es erfasst Bilder über das CCD (Charged Coupled Device), ein System, das dem in Digitalkameras sehr ähnlich ist. So zeichnet er die aus dem Objekt austretende Infrarotmenge auf und berechnet daraus die Temperatur. Es ist sehr genau.

Schritt 3: OLED anzeigen

OLED anzeigen
OLED anzeigen

Schritt 4: Montage

Montage
Montage

Dies ist ein sehr einfaches Schema. Ich habe hier eine Tabelle, die eine einfache Visualisierung ermöglicht.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - DC

D8 - CS

3, 3v - VCC

Masse - Masse

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

Masse - Masse

Schritt 5: Bibliotheken

Bibliotheken
Bibliotheken
Bibliotheken
Bibliotheken

Um das OLED-Display zu verwenden, fügen Sie die folgende Bibliothek "Adafruit-GFX-Library-master" hinzu.

Rufen Sie einfach „Skizze >> Bibliotheken einschließen >> Bibliotheken verwalten …“auf.

Fügen Sie außerdem die folgende Bibliothek "Adafruit Unified Sensor" hinzu.

Die Download-Links für die Bibliotheken befinden sich im PDF, das direkt unten verfügbar ist.

Schritt 6: Quellcode

Wir beginnen mit der Definition der Bibliotheken und Konstanten, die wir während unseres Codes verwenden.

#include //Biblioteca para I2C#include //Biblioteca para comunicação com o sensor #include //Biblioteca para proppriedades gráficas #include //Biblioteca para comunicação com dipsplay OLED // pinagem para o NodeMCU ESP D7. #define sc… #define cs D8 #define rst D3 #define dc D4 // Definition der Kerne, die verwendet werden müssen #define BLACK 0x0000 #define WHITE 0xFFFF //Definition der Coordenada onde escreveremos cada um dos dados #define POS_X_AMBIENTE_X_EAMBIENTE 2 #defineBIENTE 2 #defineBIENTE 2 #defineBIENTE 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // Konstruktor des Objekts für die Kommunikation mit der Anzeige 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;

Aufstellen

In der Funktion setup() initialisieren wir unser Kommunikationsobjekt mit dem Sensor sowie das Kommunikationsobjekt mit dem Display. Hier sind einige Einstellungen für jeden von ihnen.

Void setup () {//Inicializa sensor de temperature infravermelho sensor.begin (); // Temperatur für Celsius sensor.setUnit (TEMP_C); // Podemos ainda utilizar TEMP_F für Fahrenheit //ou TEMP_K für Kelvin // Initialisierung oder Objekt für Communicarmos com o Display OLED display.begin (); // pinta a tela toda de preto display.fillScreen (BLACK); // configura oder tamnaho tun texto que escreveremos em tela display.setTextSize(0); // eine Corbranca für den Text konfigurieren display.setTextColor (WHITE); //os Befehle 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); //Grausbild 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:"); //OBJETI}

Schleife

Lassen Sie uns in der Loop ()-Funktion die Sensordaten lesen und sie dann auf dem OLED-Display anzeigen.

//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 = 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, BLACK); display.fillRect(POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, SCHWARZ); //Position des Cursors und Temperatureinstellung display.setCursor(POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print((char)247); //Simbolo de graus //Positionieren des Cursors und Erhöhen einer Temperatur zum Objekt oder Sensor auf einem Pontondisplay.setCursor(POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); display.print((char)247); // simbolo de graus} Verzögerung (1000); //Intervalo de 1 segundo para a próxima leitura}

Empfohlen: