Sensor Jarak HCSR04 dan Servo SG90 serta NodeMCU ESP8266
Uraian Materi
Uraian materi yang tercakup dalam RPP yang
saya buat secara lebih detail:
1. Penggunaan
Sensor Jarak HCSR04:
• Pengenalan
sensor jarak HCSR04 sebagai salah satu alat untuk mengukur jarak antar objek.
Sensor ini bekerja dengan mengirimkan sinyal ultrasonik dan menerima sinyal
yang dikembalikan dari objek yang akan diukur jaraknya.
• Cara
kerja dari sensor jarak HCSR04, yaitu dengan mengirimkan sinyal ultrasonik dari
trigger pin dan menerima sinyal yang dikembalikan dari echo pin. Sensor ini
mengukur jarak dengan cara mengukur waktu yang dibutuhkan untuk sinyal
ultrasonik untuk diterima kembali oleh echo pin. Setelah waktu diketahui, kita
dapat menghitung jarak dengan menggunakan rumus seperti v = t x s, dimana v
adalah kecepatan suara, t adalah waktu, dan s adalah jarak.
• Penjelasan
tentang pin yang terdapat pada sensor jarak HCSR04 dan fungsinya. Trigger pin
digunakan untuk mengirimkan sinyal ultrasonik, sedangkan echo pin digunakan
untuk menerima sinyal yang dikembalikan dari objek yang akan diukur jaraknya.
Power pin digunakan untuk memberikan tegangan pada sensor, dan ground pin
digunakan sebagai reference voltage atau ground.
• Penjelasan
tentang bagaimana mengaitkan sensor jarak HCSR04 dengan mikrokontroller
ESP8266. Kita perlu menghubungkan trigger pin pada sensor ke pin digital pada
ESP8266, echo pin pada sensor ke pin digital pada ESP8266, power pin pada
sensor ke pin power pada ESP8266, dan ground pin pada sensor ke pin ground pada
ESP8266.
2. Penggunaan
Servo Motor:
• Pengenalan
servo motor sebagai salah satu jenis motor yang dapat memutar suatu objek
sejauh sudut tertentu dengan suatu daya yang diberikan. Servo motor memiliki 3
pin utama, yaitu power pin, ground pin, dan signal pin.
• Cara
kerja dari servo motor, yaitu dengan memutar objek sejauh sudut yang ditentukan
berdasarkan sinyal yang diterima dari kontroller. Sinyal yang diterima berupa
pulsa, dan durasi pulsa yang diterima berhubungan dengan sudut putaran yang
diinginkan.
• Penjelasan
tentang bagaimana mengaitkan servo motor dengan mikrokontroller ESP8266. Kita
perlu menghu
pada ESP8266, ground pin pada servo motor
ke pin ground pada ESP8266, dan signal pin pada servo motor ke pin digital pada
ESP8266. Kita juga perlu menentukan library servo yang akan digunakan pada kode
program untuk mengendalikan servo motor.
3. Integrasi
Sensor Jarak HCSR04 dan Servo Motor:
• Penjelasan
bagaimana mengintegrasikan sensor jarak HCSR04 dan servo motor pada ESP8266.
Kita dapat membuat program yang memanfaatkan fungsi dari kedua sensor ini untuk
mengendalikan servo motor sehingga dapat memutar objek sejauh sudut yang
ditentukan berdasarkan jarak objek yang diukur oleh HCSR04.
• Contoh
program untuk mengintegrasikan kedua sensor ini dan bagaimana program tersebut
bekerja. Kita dapat membuat program dengan membaca nilai jarak yang diukur oleh
HCSR04 dan mengendalikan servo motor sehingga memutar objek sejauh sudut yang
ditentukan berdasarkan jarak tersebut.
4. Soal
Evaluasi:
• Soal
evaluasi berupa soal pilihan ganda dengan jawaban A, B, C, D, dan E. Soal
evaluasi ini bertujuan untuk mengetahui tingkat pemahaman siswa tentang materi
penggunaan HCSR04 dan servo motor pada ESP8266.
• Kunci
jawaban dari soal evaluasi pilihan ganda tersebut.
5. Spesifikasi
Servo SG90:
• Servo
SG90 adalah servo motor yang sering digunakan pada proyek robotika dan
elektronika.
• Berikut
adalah spesifikasi dari servo SG90:
• Tensi
operasi: 4.8-6V
• Daya
maksimal: 2.5W
• Sudut
rotasi: 180 derajat
• Kecepatan
rotasi: 0.1 s/60 derajat
• Ukuran:
22.8 x 11.8 x 29 mm
• Berat:
9 g
Dengan mengetahui spesifikasi dari servo
SG90, siswa dapat memahami kinerja dan kapabilitas dari servo ini sehingga
dapat memilih servo yang sesuai untuk proyek yang akan dikerjakan.
6. Penutup:
• Ringkasan
materi tentang penggunaan HCSR04 dan servo SG90 pada ESP8266.
• Referensi
yang bisa digunakan siswa untuk mempelajari materi lebih lanjut seperti buku,
website, atau sumber lainnya.
Dengan adanya RPP ini, diharapkan dapat
membantu siswa untuk memahami dan mempelajari materi penggunaan HCSR04 dan
servo SG90 pada ESP8266 secara efektif dan menyenangkan.
Dengan uraian materi yang tercakup dalam
RPP ini, diharapkan dapat membantu siswa untuk memahami dan mempelajari
bagaimana menggunakan sensor jarak HCSR04 dan servo motor pada ESP8266.
kode program untuk project dasar
menggunakan HCSR04 dan servo SG90 pada ESP8266:
1. Menampilkan
jarak objek pada Serial Monitor:
#include <Wire.h>
#include <Ultrasonic.h>
const int triggerPin = 12;
const int echoPin = 13;
Ultrasonic ultrasonic(triggerPin, echoPin);
void setup() {
Serial.begin(9600);
}
void loop() {
int
distance = ultrasonic.distanceRead();
Serial.print("Jarak objek: ");
Serial.println(distance);
delay(1000);
}
2. Mengendalikan
servo SG90 berdasarkan jarak objek:
#include <Wire.h>
#include <Servo.h>
#include <Ultrasonic.h>
const int triggerPin = 12;
const int echoPin = 13;
const int servoPin = 15;
Ultrasonic ultrasonic(triggerPin, echoPin);
Servo servo;
void setup() {
Serial.begin(9600);
servo.attach(servoPin);
}
void loop() {
int
distance = ultrasonic.distanceRead();
int
angle = map(distance, 0, 200, 0, 180);
servo.write(angle);
Serial.print("Jarak objek: ");
Serial.print(distance);
Serial.print(" Sudut servo: ");
Serial.println(angle);
delay(1000);
}
Dengan contoh kode program di atas, siswa
dapat memahami bagaimana mengendalikan servo SG90 berdasarkan jarak objek yang
diukur oleh sensor jarak HCSR04 pada ESP8266. Siswa juga dapat mengembangkan
project dasar ini menjadi proyek yang lebih kompleks dan sesuai dengan
kebutuhan.
Simulator ESP32 dan Servo, klik:
https://wokwi.com/projects/354530457434182657
Berikut adalah CODING
Servo dan ESP32 Untuk Tempat Sampah:
/*
* This ESP32 code is created by Fajar Himawan
*
* This ESP32 code is released in the public domain
*
* For more detail (instruction and wiring diagram), contact me : 08970355799
*/
#include <ESP32Servo.h>
#define TRIG_PIN 23 // ESP32 pin GIOP23 connected to Ultrasonic Sensor's TRIG pin
#define ECHO_PIN 22 // ESP32 pin GIOP22 connected to Ultrasonic Sensor's ECHO pin
#define SERVO_PIN 26 // ESP32 pin GIOP26 connected to Servo Motor's pin
#define DISTANCE_THRESHOLD 10 // centimeters
Servo servo; // create servo object to control a servo
// variables will change:
float duration_us, distance_cm;
void setup() {
Serial.begin (9600); // initialize serial port
pinMode(TRIG_PIN, OUTPUT); // set ESP32 pin to output mode
pinMode(ECHO_PIN, INPUT); // set ESP32 pin to input mode
servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object
servo.write(0);
}
void loop() {
// generate 10-microsecond pulse to TRIG pin
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// measure duration of pulse from ECHO pin
duration_us = pulseIn(ECHO_PIN, HIGH);
// calculate the distance
distance_cm = 0.017 * duration_us;
if (distance_cm < DISTANCE_THRESHOLD)
servo.write(0); // rotate servo motor to 0 degree
else
servo.write(90); // rotate servo motor to 90 degree
// print the value to Serial Monitor
Serial.print("distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
delay(500);
}
____________________
Berikut adalah CODING
Servo dan ESP8266 Untuk Tempat Sampah:
/*
* This ESP8266 code is created by Fajar Himawan
*
* This ESP8266 code is released in the public domain
*
* For more detail (instruction and wiring diagram), contact me : 08970355799
*/
#include <Servo.h>
#define TRIG_PIN D7 // ESP8266 pin GIOP13 connected to Ultrasonic Sensor's TRIG pin
#define ECHO_PIN D8 // ESP8266 pin GIOP12 connected to Ultrasonic Sensor's ECHO pin
#define SERVO_PIN D3 // ESP8266 pin GPIO0 connected to Servo Motor's pin
#define DISTANCE_THRESHOLD 10 // centimeters
Servo servo; // create servo object to control a servo
// variables will change:
float duration_us, distance_cm;
void setup() {
Serial.begin (9600); // initialize serial port
pinMode(TRIG_PIN, OUTPUT); // set ESP8266 pin to output mode
pinMode(ECHO_PIN, INPUT); // set ESP8266 pin to input mode
servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object
servo.write(0);
}
void loop() {
// generate 10-microsecond pulse to TRIG pin
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// measure duration of pulse from ECHO pin
duration_us = pulseIn(ECHO_PIN, HIGH);
// calculate the distance
distance_cm = 0.017 * duration_us;
if (distance_cm < DISTANCE_THRESHOLD)
servo.write(0); // rotate servo motor to 0 degree
else
servo.write(90); // rotate servo motor to 90 degree
// print the value to Serial Monitor
Serial.print("distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
//delay(500);
}
No comments