IR-Thermometer

Hallo zusammen,

heute möchte ich Ihnen gerne zeigen, wie man mit unserem GY-906-Modul, einem Nano V3 und einem OLED mit wenigen Zeilen Code ein IR-Thermometer umsetzten kann. Der Aufbau eignet sich gut zum berührungslosen überwachen von Temperaturen, z.B. an Maschinen o.ä.

Wir brauchen also:

1x Nano V3
1x OLED 0.96"
1x GY-906
1x Mini-Breadboard m. Jumper-Wire
1x 9V-Batteriehalter

Optional können Sie das Projekt gerne um eine Laserdiode oder ein Button-Modul erweitern.

Die Verdrahtung:

 Nano GY-906 Oled Batterieclip
VIN +
GND GND GND -
5V VCC
3.3V VCC
A5 SCL SCL
A4 SDA SDA

 

Die notwendigen Librarys:

Installieren Sie beide Librarys wie gewohnt über Ihren Bibliotheksverwalter in der Arduino-IDE. Möchten Sie die aktuellste Version nutzen können Sie diese über GitHub beziehen und als *.zip einbinden, das hat jedoch den Nachteil, neue Version selbst pflegen zu müssen.

Nutzen Sie den Bibliotheksverwalter zur Installation werden Sie durch die IDE benachrichtigt sobald eine neue Version zur Verfügung gestellt wird und können diese durch einen Klick aktualisieren. Im nachstehenden Screenshot sind die beiden Bibliotheken abgebildet:

- GY-906 - auf Github

Zur Ausgabe der Werte auf dem Display nutzen wir heute die Library von Adafruit:

 Hier der Code:

 

#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels


Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup() {
  
  Serial.begin(9600);
  Serial.println("Adafruit MLX90614 test"); 
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 init failed"));
    for(;;);
  }
  

  display.clearDisplay();
  display.setRotation(0);
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 35);
  display.println("Init...");
  display.display();
  delay(500);
  display.clearDisplay();

  mlx.begin(); 
  
}

void loop() {

    display.clearDisplay();
    display.setTextSize(2);
    display.setCursor(25, 10);
    display.print(mlx.readAmbientTempC()); //Umgebungstemperatur
    display.setCursor(95, 10);
    display.print("C");
    display.setTextSize(2);
    display.setCursor(25, 36);
    display.print(mlx.readObjectTempC()); //IR-Temperatur
    display.setCursor(95, 36);
    display.print("C");
    display.display();


  Serial.println();
  delay(1000);
}

Nach der Initialisierung der Hardware in void setup, wird im loop die Umgebungs- und im Anschluss die IR-Temperatur angezeigt. 

Bis zum nächsten mal :)

Letzter Artikel LED Echtzeituhr mit dem 4 Bit Digital Tube LED Display (Teil 1)
Neuer Artikel ArduiTouch Wandgehäuseset mit Touchscreen für ESP32 und ESP8266

Hinterlasse einen Kommentar

Kommentare müssen vor der Veröffentlichung überprüft werden

Erforderliche Angabe