Sensor Analog yang Paling Recommended

Indobot Update

Hallo Fanbot.

Sedang ada project apa hari ini?

Sensor merupakan device yang dapat merubah suatu energi fisika, energi kimia, energi biologi, energi mekanik dan sebagainya menjadi energi listrik yang dapat terbaca oleh mikrokontroler. Beberapa sensor juga dapat berfungsi untuk membaca satuan listrik seperti ampere, tegangan, dan lainnya untuk memudahkan pembacaan pada mikrokontroler.

Sensor biasa digunakan pada robot untuk menjadikan robot lebih mengerti keadaan di sekitarnya. Misalnya ketika kita membutuhkan robot yang dapat menghindari tembok di depannya, kita dapat menggunakan sensor jarak. Contoh lainnya, ketika kita membutuhkan robot yang dapat membedakan warna, maka kita membutuhkan sensor warna.

Sensor juga dapat digunakan untuk melakukan monitoring dan sebagai controlling. Contohnya sebagai monitoring adalah ketika kita ingin memantau suhu pada suatu ruangan, maka kita memerlukan sensor suhu. Contoh untuk Controlling, misalnya ketika kita ingin membuat lampu yang menyala ketika gelap, maka kita dapat menggunakan sensor cahaya untuk mengendalikan lampu.

Sensor ada 2 jenis, yaitu sensor digital dan sensor analog. Sensor digital merupakan sensor yang dapat membaca suatu keadaan dengan hasil baca ya atau tidak. Sedangkan sensor analog adalah sensor yang dapat membaca keadaan dengan nilai. Jadi tidak hanya panas atau dingin. Tetapi lebih ke range 0 sampai 50 derajat C (misalnya).

Nah untuk teman-teman yang baru belajar mikrokontroler, Minbot punya beberapa rekomendasi sensor yang cocok untuk project kalian, baik menggunakan Arduino, NodeMCU atau yang lainnya.

Yuk kita simak apa aja sih sensor ini dan bagaimana cara mengaksesnya.

 

Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO

Sensor LDR

Sensor LDR (Light Dependent Resistant) merupakan sensor yang digunakan untuk mendeteksi cahaya. Biasanya sensor ini digunakan untuk mengetahui kondisi gelap dan terang di suatu lingkungan tertentu. Berikut ini merupakan program yang dapat kita gunakan untuk membaca sensor LDR.

 

#define LDR A0
 
void setup() {
Serial.begin(9600);//mengaktifkan fungsi serial
pinMode(LDR, INPUT);
}
void loop() {
int sensorValue = analogRead(LDR); //membaca nilai LDR pada pin analog 2
Serial.println(sensorValue);//mencetak nilai yang terbaca pada serial monitor
delay(1);//delay untuk memperlambat pembacaan
}

baca juga: Rekomendasi Sensor Murah tapi Variatif untuk Belajar IoT Pemula

Sensor Ultrasonik

ultrasonik merupakan salah satu sensor yang dapat menentukan jarak antara sensor dengan objek di depannya. Sensor ini menggunakan sistem pantulan  gelombang ultrasonik untuk menentukan jarak. Berikut ini program yang dapat anda gunakan.

 

#include <NewPing.h>

#define TRIGGER_PIN  12  // pin untuk trigger
#define ECHO_PIN     11  // pin untuk echo
#define MAX_DISTANCE 200 // maksimal pembacaan

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  Serial.begin(9600); //  serial monitor 9600
}

void loop() {
  delay(50);                     
  Serial.print("Jarak: ");
  Serial.print(sonar.ping_cm()); // nilai dari jarak
  Serial.println("cm");
}

 

Sensor DHT11

Sensor DHT11 adalah sensor yang berguna. Dengan menggunakan  sensor ini kita sudah bisa mengetahui 2 hal yaitu suhu dan kelembaban ruangan. Sensor ini sangat sering digunakan untuk otomatisasi suhu. Berikut ini program yang dapat anda gunakan.

 

#include "DHT.h"

#define DHTPIN 2     // pin untuk DHT11
#define DHTTYPE DHT22   // Tipe DHT 11
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println("DHTxx test!");
  dht.begin(); //mengaktifkan pembacaan DHT
}

void loop() {
  delay(2000);

  //Menampilkan kelembaban dan nilai temperatur
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" *C ");
 
}

baca juga: Memantau Suhu, Kelembaban, Tekanan Udara, dan Gas dengan Menggunakan Sensor BME680 Melalui IoT Telegram

 

Sensor Gas MQ2

Ada banyak sensor gas tipe MQ. Minbot hanya mengambil MQ2  yang paling banyak dibaca. Sensor ini dapat membaca H2, LPG, CH4, CO, alkohol, asap dan propana. Memiliki sensitivitas yang tinggi dan respon yang cepat. Sensor ini memiliki program yang paling kompleks dibandingkan dengan sensor di atas

 

/************************Hardware Related Macros************************************/
const int calibrationLed = 13;
const int MQ_PIN=A0;        
int RL_VALUE=5;           
float RO_CLEAN_AIR_FACTOR=9.83;

/***********************Software Related Macros************************************/
int CALIBARAION_SAMPLE_TIMES=50; 
int CALIBRATION_SAMPLE_INTERVAL=500;
int READ_SAMPLE_INTERVAL=50;
int READ_SAMPLE_TIMES=5; 

/**********************Application Related Macros**********************************/
#define         GAS_LPG             0   
#define         GAS_CO              1   
#define         GAS_SMOKE           2  

/*****************************Globals***********************************************/
float           LPGCurve[3]  =  {2.3,0.21,-0.47};  
float           COCurve[3]  =  {2.3,0.72,-0.34}; 
float           SmokeCurve[3] ={2.3,0.53,-0.44};                                                   
float           Ro           =  10;              
void setup() {
  Serial.begin(9600);
  pinMode(calibrationLed,OUTPUT);
  digitalWrite(calibrationLed,HIGH);

  Ro = MQCalibration(MQ_PIN);                        
  digitalWrite(calibrationLed,LOW);              

}

void loop() {
  long iPPM_LPG = 0;
  //long iPPM_CO = 0;
  //long iPPM_Smoke = 0;

  iPPM_LPG = MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_LPG);
  //iPPM_CO = MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_CO);
  //iPPM_Smoke = MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_SMOKE);
  
  Serial.clear();   
  Serial.setCursor(0,0);
  Serial.print("Konsentrasi Gas");
   
  Serial.setCursor(0,1);
  Serial.print("LPG: ");
  Serial.print(iPPM_LPG);
  Serial.print(" ppm");   
  
  /*Serial.setCursor(0,1);
  Serial.print("CO: ");
  Serial.print(iPPM_CO);
  Serial.print(" ppm");    

  Serial.setCursor(0,1);
  Serial.print("Smoke: ");
  Serial.print(iPPM_Smoke);
  Serial.print(" ppm");*/  

  delay(200);
}

float MQResistanceCalculation(int raw_adc)
{
  return ( ((float)RL_VALUE*(1023-raw_adc)/raw_adc));
}

float MQCalibration(int mq_pin)
{
  int i;
  float val=0;

  for (i=0;i<CALIBARAION_SAMPLE_TIMES;i++) {        
    val += MQResistanceCalculation(analogRead(mq_pin));
    delay(CALIBRATION_SAMPLE_INTERVAL);
  }
  val = val/CALIBARAION_SAMPLE_TIMES;  
  val = val/RO_CLEAN_AIR_FACTOR;                                            
  return val;   

}

float MQRead(int mq_pin)
{
  int i;
  float rs=0;
 
  for (i=0;i<READ_SAMPLE_TIMES;i++) {
    rs += MQResistanceCalculation(analogRead(mq_pin));
    delay(READ_SAMPLE_INTERVAL);
  }
 
  rs = rs/READ_SAMPLE_TIMES;
 
  return rs;  
}

long MQGetGasPercentage(float rs_ro_ratio, int gas_id)
{
  if ( gas_id == GAS_LPG ) {
     return MQGetPercentage(rs_ro_ratio,LPGCurve);
  } else if ( gas_id == GAS_CO ) {
     return MQGetPercentage(rs_ro_ratio,COCurve);
  } else if ( gas_id == GAS_SMOKE ) {
     return MQGetPercentage(rs_ro_ratio,SmokeCurve);
  }    
 
  return 0;
}

long  MQGetPercentage(float rs_ro_ratio, float *pcurve)
{
  return (pow(10,( ((log(rs_ro_ratio)-pcurve[1])/pcurve[2]) + pcurve[0])));
}

baca juga: Menampilkan Suhu dan Kelembaban dengan Sensor DHT11 di Webserver

 

 Itu adalah 4 sensor yang dapat teman-teman gunakan untuk belajar sensor analog. Sensor analog akan sangat menambah variasi dari berjalannya suatu project dari pada sensor digital saja. Contohnya ketika kita menggunakan sensor LDR, tingkat cahaya yang ditampilkan juga dapat kita sesuaikan dengan kebutuhan. Begitu juga untuk sensor lainnya. Selain itu, kita juga dapat melakukan monitoring project kita dengan hasil yang lebih variatif. Kalian juga dapat mengembangkan sensor di atas dengan menambahkan aktuator atau indikator sebagai controlling.Bagi teman-teman yang baru belajar, yuk kita tingkatkan terus skill kita dengan melakukan praktik dari setiap pengetahuan yang kita terima.

Yuk mulai berlatih.

Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp whatsapp