Translate

Mengakses Sensor Non-Contact Temperature (Suhu) MLX90614 Dengan Penampil LCD OLED Display 128x64 ARDUINO

Mengakses Sensor Non-Contact Temperature (Suhu) MLX90614 Dengan Penampil LCD OLED Display 128x64 ARDUINO


        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses sensor yang sangat luar biasa ini yaitu sensor suhu MLX90614, perlu diketahui bahwa sensor ini dapat mendeteksi 2 buah jenis suhu. jenis suhu yang pertama yaitu suhu ambient atau suhu ruangan sekitar, kemudian yang kedua yaitu suhu object yang ada didepan sensor, fungsi yang kedua inilah yang membuat sensor ini dapat dipakai buat pengukuran benda misalnya suhu es batu atau suhu pemanggang / boiler. yang luar biasanya lagi sensor ini dapat mendeteksi suhu object dari jarak > 5 cm, semakin dekat maka akurasinya semakin baik. pada contoh kali ini penampil yang digunakan adalah LCD OLED 128x64 dengan mikrokontroller Arduino. untuk lebih jelasnya berikut adalah penjelasan mengenai skema dan programnya.


 

a. Arduino Mega + Skema






b. Sensor MLX90614 





c. LCD OLED 128x64 Display






d. Program Arduino IDE

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

#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);   
Adafruit_MLX90614 mlx = Adafruit_MLX90614();

int x;
char tmp_string1[8];
char tmp_string2[8];

float suhubenda;
float suhuruangan;

void draw(void) {
 
  //float dua angka dibelakang koma
  dtostrf(suhuruangan, 4, 2, tmp_string1);
  dtostrf(suhubenda, 4, 2, tmp_string2);

 
  // graphic commands to redraw the complete screen should be placed here 
  u8g.setFont(u8g_font_unifont);
  //u8g.setFont(u8g_font_osb21);
  u8g.drawStr(0, 22, "suhu R= ");
  u8g.drawStr(60, 22, tmp_string1);

  u8g.drawStr(0, 50, "suhu B= ");
  u8g.drawStr(60, 50, tmp_string2);
 
}

void setup(void) {

  Serial.begin(9600);

  mlx.begin(); 
 
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);     // white
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);         // max intensity
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);         // pixel on
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255,255,255);
  }
}

void loop(void) {
    
  suhuruangan = mlx.readAmbientTempC();
  suhubenda = mlx.readObjectTempC();
 
  Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC());
  Serial.print("*C\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C");

  Serial.println();
 
  // picture loop
  u8g.firstPage(); 
  do {
    draw();
  } while( u8g.nextPage() );
 
  // rebuild the picture after some delay
  delay(500);
}





e. VIDEO HASILNYA













5 comments:

  1. Assalmualaiku mas... permisi mau nya.

    #include "U8glib.h"
    U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);

    itu library untuk apa yah...??

    ReplyDelete
  2. mas untuk kalibrasi suhunya bagai mna...??

    ReplyDelete
    Replies
    1. silahkan lihat di blog ini untuk kalibrasinya
      http://kursuselektronikaku.blogspot.co.id/2014/09/membuat-detektor-gas-lpg-liquified.html

      Delete
  3. #include
    LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

    #include
    #include

    Adafruit_MLX90614 mlx = Adafruit_MLX90614();

    void setup() {

    Serial.begin(9600);
    lcd.begin( 16,2 );

    lcd.setCursor (0,0);
    lcd.println(" Termometer ");
    lcd.setCursor (0,1);
    lcd.println(" Badan ");
    delay(500);
    lcd.clear();

    lcd.setCursor (0,0);
    lcd.println(" Non Contact ");
    lcd.setCursor (0,1);
    lcd.println(" Body ");
    delay(500);
    lcd.clear();

    mlx.begin();
    }

    void loop() {
    lcd.setCursor (2,0);
    lcd.print("Suhu Ruang =");
    lcd.setCursor (2,1);
    lcd.print(mlx.readAmbientTempC());
    lcd.print(char(0xdf));
    lcd.println("C");
    delay(1000);
    lcd.clear();

    lcd.setCursor(2,0);
    lcd.print("Suhu Badan =");
    lcd.setCursor (2,1);
    lcd.print(mlx.readObjectTempC());
    lcd.print(char(0xdf));
    lcd.println("C");

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


    ini sudah benar yah mas...?? soalnya suhunya agak jauh bedanya.

    ReplyDelete