Tranzystor.pl – Vortal Elektroniczny

Arduino – Czujnik IR GY-906 czyli termometr na podczerwień

Czujniki temperatury w obecnych czasach (epidemia Covid) stały się niezbędne niemal w każdej firmie.

W tym wpisie wykorzystany zostanie moduł GY-906 wraz z czujnikiem IR MLX90614. Wynik pomiaru zostanie wyświetlony na LCD OLED SSD1306 128X64 0,96 cala. Wykorzystuje te moduły tylko ze względu na komunikację I2C co ogranicza do minimum ilość kablologii oraz skraca do minimum kod programu.

Kod programu nie odkrywa jakiejś tam ameryki, wykorzystane są w nim ogólnie dostępne biblioteki:

Potrzebne komponenty:

Schemat połączeń:

Kod programu:

#include <Adafruit_MLX90614.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeMonoBold18pt7b.h>
Adafruit_SSD1306 display(128, 64);
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
int temp;
int ledPin = 20;

void setup()
{
delay(100);
pinMode(ledPin, OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(WHITE);
mlx.begin();
}

void loop()
{
digitalWrite(ledPin, HIGH);
temp++;
if(temp > 43)
{
temp = 0;
}

temp = mlx.readObjectTempC();

display.clearDisplay();

// Print text:
display.setFont();
display.setCursor(45,10); // (x,y)
display.println("TEMPERATURA");

// Print temperature
char string[10];

dtostrf(temp, 3, 0, string);

display.setFont(&FreeMonoBold18pt7b);
display.setCursor(20,50);
display.println(string);
display.setCursor(90,50);
display.println("C");
display.setCursor(77,32);
display.println(".");

display.fillCircle(18, 55, 7, WHITE);

display.drawRoundRect(16, 3, 5, 49, 2, WHITE);

for (int i = 6; i<=45; i=i+3){
display.drawLine(21, i, 22, i, WHITE);
}

//Draw temperature
temp = temp*0.43;
display.drawLine(18, 46, 18, 46-temp, WHITE);

display.display();
}

5/5 - (2 ocena/y)
Exit mobile version