AMG8833 Arduino Buzzer
AMG8833 Arduino Bunyikan Buzzer Pada Suhu Tertentu – Pada tutorial sebelumnya, kita udah mengetahui program dasar dari AMG8833 menggunakan Arduino dan memvisualisasikan ke aplikasi Processing.
Pada Processing kita dapat melihat perubahan warna dan nilai suhu yang terbaca oleh sensor.
Lalu bagaimana caranya, jika kita ingin menghidupkan buzzer atau alarm ketika pembacaan sensor sama dengan atau lebih besar dari nilai yang kita tetapkan?
Dari itu, pada kita akan membuat program sederhana menghidupkan buzzer ketika nilai baca sensor sama dengan atau lebih besar dari nilai yang kita tetapkan.
Rangkaian AMG8833 Arduino Buzzer
Namun sebelum itu, pastikan rangkaian antara AMG8833 dan Arduino sudah terhubung dengan baik sebagaimana pada gambar berikut:
Pada rangkaian diatas, saya menggunakan buzzer dengan spesifikasi 5V. Saya menghubungkan langsung ke Arduino untuk mendapatkan suara yang full.
Jika anda ingin suaranya lebih rendah, maka tambahkan resistor pada pin 13 terhubung seri terhadap buzzer.
Sekarang, mari kita ambil komebali kode dasar AMG8833 dan kita tambahkan fungsi buzzer didalamnya.
Pada kita tetapkan nilai suhu 37 derajat. Jika nilai suhu yang terbaca oleh sensor 37 derajat atau lebih besar dari itu, maka buzzer akan berbunyi.
Kode Program
Adapun untuk kode programnya adalah sebagai berikut. Silahkan upload program diatas ke Arduino Uno.
#include <Wire.h>
#include <SparkFun_GridEYE_Arduino_Library.h>
GridEYE grideye;
int pinBuzzer = 13;
float dataSensor = 0;
float setNilaiBuzzer = 37.00; //nilai dalam derajat celcius
const unsigned long timeVal = 5000;
unsigned long prevVal = 0;
unsigned long nowVal = 0;
void setup() {
Wire.begin();
grideye.begin();
Serial.begin(115200);
pinMode(pinBuzzer, OUTPUT);
}
void loop() {
nowVal = millis();
readAMG();
}
void readAMG()
{
for (unsigned char i = 0; i < 64; i++)
{
dataSensor = grideye.getPixelTemperature(i);
Serial.print(grideye.getPixelTemperature(i));
Serial.print(",");
if (dataSensor >= setNilaiBuzzer)
{
digitalWrite(pinBuzzer, HIGH);
}
else
{
if ((nowVal - prevVal) >= timeVal)
{
digitalWrite(pinBuzzer, LOW);
prevVal = nowVal;
}
}
}
Serial.println();
}
Penjelasan Program
Arduino akan mengambil data sebanyak 64 data dari komunikasi I2C dalam sekali baca.
Setiap 1 data, akan dibandingkan dengan suhu yang telah ditetapkan.
Pada contoh di atas, suhu yang kita tetapkan adalah 37 derajat. Anda dapat menggantinya dengan nilai yang lain.
Agar processing dapat menampilkan data sensor dengan lancar, untuk menghidupkan buzzer kita butuh millis. Jika tidak, data sensor akan terhambat untuk dibaca.
Untuk lebih lanjut apa itu Millis() dan program dasarnya, anda dapat membaca artikel How to Use Millis on Arduino and Basic Program.
Jalankan Alatnya
Sekarang Buka juga aplikasi Processingnya. Untuk kode program Processing, silahkan ambil dis.
Setelah processing terbuka, silahkan arahkan sensor ke objek yang memiliki suhu panas yang kira-kira 37 derajat ke atas, maka anda akan mendengar suara buzzer berbunyi.
Semoga dapat membantu projek anda.
Artikel bermanfaat? silahkan share ke teman-teman lainnya menggunakan tombol share dibawah .
Update : 12/06/2021