Sensor AMG8833 Arduino Uno dan Processing

Sensor AMG8833 Arduino

AMG8833 Arduino Processing Kode dan Skematik  – AMG8833 adalah sensor infrared array yang diproduksi oleh Panasonic. Sensor AMG8833 memiliki piksel sebanyak 64 dengan resolusi 8×8.

Sensor AMG8833 dapat digunakan dalam berbagai aplikasi yang dapat mendeteksi suhu tanpa harus menyentuh objek. Sensor ini sangat baik digunakan pada aplikasi seteksi suhu mesin, pabrikan elektronik, mendeteksi posisi manusia atau objek dan lainnya.

Sensor Panasonic AMG8833 Infrared array memiliki nilai maksimum:

  • Tegangan VDD maksimalnya adalah 6.5 VDC
  • Tegangan Input (SCL, SDA, AD_SELECT) hingga 0.3 VDC
  • Arus INT dan SDA hingga 10mA

Rangkaian AMG8833 Arduino

AMG8833 menggunakan I2C untuk dapat berkomunikasi dengan mikokontroller. Pin yang digunakan adalah SCL dan SDA. Silahkan rangkai sensor teman-teman ke arduino seperti pada gambar berikut.

Rangkaian AMG8833 Arduino Sensor AMG8833 Arduino Uno dan Processing

Setelah rangkaian telah sama seperti gambar diatas, langkah selanjutnya adalah kita download sebuah library dan masukkan ke Arduino IDE kita.


Library AMG8833 Arduino

Teman-teman semua, untuk dapat mempermudah kerja kita dalam akses data yang dikirimkan dari sensor amg8833 , kita membutuhkan library. Sudah ada library yang tersedia dibawah , silahkan di download.

Lalu, masukkan library tersebut ke arduino IDE anda dengan cara:

  • Klik menu Sketch
  • Lalu pilih Include Library
  • Klik Add ZIP Library
  • Arahkan ke file library hasil Download
  • Klik OK

Sekarang, saya telah membuat kode program dibawah . Ada dua kode program yaitu, untuk Arduino IDE dan untuk Processing. Silahkan teman-teman gunakan.


Kode Program Arduino

#include <Wire.h>
#include <SparkFun_GridEYE_Arduino_Library.h>

GridEYE grideye;


void setup() {
  Wire.begin();
  grideye.begin();
  Serial.begin(115200);
}

void loop() {
  readAMG();
}

void readAMG()
{
  for (unsigned char i = 0; i < 64; i++)
  {
    Serial.print(grideye.getPixelTemperature(i));
    Serial.print(",");
  }
  Serial.println();
}

Kode program Processing

/*
Chip Piko Thermal Camera Non Interpolation
 This code is editing from the amg8833 sparkfun library
 */
import processing.serial.*;

String myString = null;
Serial myPort;
PFont f;
float split;
int q;

float[] show =  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
float[] temps =  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};


void setup() {
  size(600, 680);
  f = createFont("Arial", 16, true);


  // Print a list of connected port in serial monitor processing
  printArray(Serial.list());

  //In this case, I using /dev/ttyUSB0 in linux
  //In serial monitor this processing show in array 32
  //If you windows user, please change Serial.list()[your number]
  myPort = new Serial(this, Serial.list()[32], 115200);
  myPort.clear();
  myString = myPort.readStringUntil(13);
  myString = null;
  // change to HSB color mode, this will make it easier to color
  // code the temperature data
  colorMode(HSB, 360, 100, 100);
}


void draw() {
  if (myPort.available() > 64) {
    myString = myPort.readStringUntil(13);

    if (myString != null) {
      String splitString[] = splitTokens(myString, ",");


      // Map a temperature from AMG8233
      for (q = 0; q < 64; q++) {
        split = (float(splitString[q]));
        show[q] = float(splitString[q]) ;

        //Map a Red color pixel
        if (split >= 28.5) {
          temps[q] = map(float(splitString[q]), 28.5, 35, 30, 0);
        }

        //Map a Orange color pixel
        if ((split >= 27.50) && (split <= 28.2)) {
          temps[q] = map(float(splitString[q]), 27.50, 28.2, 50, 30);
        }

        //Map a Blue color pixel
        if (split <= 27.250) {
          temps[q] = map(float(splitString[q]), 20, 27.25, 240, 180);
        }

        println(split);
      }
    }
  }



  int x = 0;
  int y = 80;
  int i = 0;
  background(0);   // Clear the screen with a black background

  while (y < 630) {
    fill(0, 0, 0);
    rect(0, 0, 220, 80);
    textSize(40);
    fill(0, 0, 100);
    text("CHIP PIKO", 15, 45);

    textSize(16);
    text("www.chippiko.com", 50, 65);

    fill(0, 0, 100);
    rect(225, 0, 600, 80);

    textAlign(LEFT, CENTER);
    textSize(16);
    fill(0, 0, 0); //HBS

    text("Thermal Camera Non Interpolation", 240, 11);
    line(220, 27, 600, 27);
    line(330, 27, 330, 55);
    line(460, 27, 460, 55);
    text("Piksel : 8x8    Range : 0-80°C     Accuracy : ±2.5°C", 240, 39);

    line(220, 55, 600, 55);
    text("Labuhan Haji - Aceh , 8:57pm 2 November 2019", 240, 65);


    while (x < 550) {
      fill(temps[i], 100, 100);
      rect(x, y, 75, 75);

      //Show Temp Value
      textAlign(CENTER, CENTER);
      textFont(f, 11);
      fill(0);
      text((show[i]), (x+37.5), (y+37.5));

      //Show Pixel Digit
      textAlign(LEFT, LEFT);
      fill(100);
      text(i, (x+3), (y+12));

      x = x + 75;
      i++;
    }

    y = y + 75;
    x = 0;
  }
}

AMG8833 Datasheet:

Jika teman-teman butuh datasheet, saya melampirkan datasheet AMG8833 sebagai berikut:

Jika anda ingin tahu cara menampilkan file pdf di blog seperti pdf diatas, anda dapat membaca artikel Cara menampilkan pdf di blog atau website.

Semoga bermanfat. Jika teman-teman memiliki saran dan kritikan yang dapat membangun website berguna bagi masyarakat luas, silahkan sampaikan pada komentar atau mengirimkan email kepada kami. Terima kasih.

Istilah pencarian masuk:

Scroll to Top