Selasa, 02 Juni 2020

Menggunakan Sensor Ultrasonik (HCSR04) dengan Node MCU



Pada tutorial kali akan dibahas penggunaan sensor ultrasonik (HCSR04) dengan nodeMCu. Tujuan dari tutorial ini adalah untuk mengetahui bagaimana mengukur jarak benda dari 2 cm — 4m dengan akurasi 3 mm. Jarak benda yang diukur mengunakan sensor ultrasonik ini akan ditampilkan menggunakan serial monitor arduino IDE.
Alat-alat yang dibutuhkan adalah nodemcu dan sensor ultrasonik hcsr04. Untuk gambar rangkaiannnya sebagai berikut :


Keterangan Pin :


Setelah dirangkai seperti gambar diatas maka langkah selanjutnya adalah mengupload source code program ke board node MCU. Berikut merupakan source code nya :
#define triggerPin  D8
#define echoPin     D7void setup() {
  Serial.begin (9600);
  pinMode(triggerPin, OUTPUT);
  pinMode(echoPin, INPUT);
  
}void loop() {
  long duration, jarak;
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2); 
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10); 
  digitalWrite(triggerPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  jarak = (duration/2) / 29.1;
  Serial.println("jarak :");
  Serial.print(jarak);
  Serial.println(" cm");
  delay(1000);
}
Berikut penjelasan program diatas
#define triggerPin  D8
#define echoPin     D7
Script tersebut untuk menginsiasi pin yang akan digunakan. Pin D8 digunakan untuk pi ntrigger dan D7 digunakan untuk pin echo.
Serial.begin (9600);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
Script diatas berada di fungsi void setup(). Serial.begin() digunakan untuk memulai serial. selanjutnya pinMode digunakan untuk menentukan fungsi dari pin yang akan digunakan (triggerPin dan echoPin). triggerPin berfungsi sebagai pin output sedangkan echoPin sebagai pin input.
long duration, jarak;
Script diatas digunakan untuk deklarasi variabel duration dan jarak. Duration dan jarak merupakan variabel bertipe long. Long merupakan tipe data serupa dengan int tetapi memiliki range yang lebih panjang.
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2); 
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10); 
  digitalWrite(triggerPin, LOW);
Script tersebut menjelaskan bahwa pin trigger menembakkan pulsa sinyal ultrasonik selama 10 micro second.
duration = pulseIn(echoPin, HIGH);
Selanjutnya ketika gelombang ultrasonik itu ditangkap kembali setiap pulsanya oleh pin echo maka waktu tangkap tersebut diubah menjadi variabel duration.
jarak = (duration/2) / 29.1;
Dengan persamaan diatas nilai waktu duration akan dikonversi menjadi nilai jarak dalam bentuk cm.
  Serial.println("jarak :");
  Serial.print(jarak);
  Serial.println(" cm");
  delay(1000);
Selanjutnya nilai jarak yang didapatkan akan ditampilkan di serial monitor setiap 1 detik (delay(1000)).
Kita bisa melihat hasil pembacaan sensor lewat serial monitor pada arduino IDE. Jika sukses maka akan seperti gambar berikut :

Tidak ada komentar:

Posting Komentar