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:
- biblioteka Adafruit_MLX90614.h odpowiada za obsługę czujnika temperatury MLX90614,
- biblioteka Adafruit_GFX.h odpowiada za obsługę grafiki wyświetlanej na SSD1306,
- biblioteka Adafruit_SSD1306.h dodaje nam obsługę wyświetlacza SSD1306,
- biblioteka FreeMonoBold18pt7b.h dodaje nam czcionkę a czemu nie 😉
Potrzebne komponenty:
- Arduino mini pro lub odpowiednik
- wyświetlacz LCD OLED SSD1306
- moduł czujnika IR GY-906 (MLX90614)
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();
}
Jak padł ci zakupiony termometr dla dziecka, wydłub to co było tam było. Po czym wstaw powyższy układ i masz za promil ceny nowy termometr IR.
Dzięki przyda się