Professional Documents
Culture Documents
Laporan Praktikum V2 Iot
Laporan Praktikum V2 Iot
A. Studi Kasus
Pada suatu sawah terdapat beberapa masalah yang mengganggu kualitas hasil
panen diantaranya adalah sumber air irigasi yang jauh dari lahan sawah sehingga
kelompok petani memasang pompa air tetapi terkadang pompa air lupa dimatikan
sehingga air terlalu banyak memenuhi sawah dan terkadang pompa air hilang dicuri.
Masalah lainnya adalah sering munculya hama yang tidak dapat diketahui dan tidak
dapat diprediksi kemunculannya. Berikanlah solusi berbasis Internet of things untuk
mengatasi permasalahan ini menggunakan Sensor,Aktuator, Hybrid Web dan
Mobile apps
B. Solusi Permasalahan
Solusi dari permasalahan di atas adalah dibuatkan perangkat IOT yang dapat
secara otomatis menghidupkan/mematikan pompa air berdasarkan referensi
ketinggian muka air (13 cm). Ketinggian air diukur dengan menggunakan sensor
ultrasonic HC-SR04 yang membaca panjang pulsa gelombang yang dapat
ditafsirkan menjadi jarak. Ketika tinggi muka air mencapai 13 cm aktuator servo
akan memutar lengan untuk dapat menekan saklar NC pada pompa air untuk
mematikan pompa. Ketika tinggi muka air turun dibawah 13 cm posisi lengan servo
akan kembali ke posisi semula (tidak menekan saklar NC) sehingga pompa air akan
kembali beroperasi.
Solusi kedua untuk permasalahan hama dapat diselesaikan dengan
menggunakan strawman (orang-orangan sawah pengusir hama/burung) dimana
tangan dari strawman dapat bergerak. Kontrol untuk menggerakkan lengan
strawman dapat dijalankan dengan menggunakan sensor PIR untuk pembacaan
gerakan / motion ketika ada hama disekitar tanaman. Jika terdapat pergerakan
sensor akan mentrigger aktuator servo untuk menggerakkan lengan strawman.
C. Komponen Sistem
1. ESP32
2. Sensor PIR
3. Sensor Ultrasonic HC-SR04
4. Servo 1 (Penggerak lengan strawman)
5. Servo 2 (Penggerak untuk menekan saklar NC)
D. Pengkabelan Sistem
E. Script Program
#define TRIG_PIN 5
#define ECHO_PIN 4
#define SERVO_PIN 13
#define SEERVO_PIN 32
#define DISTANCE_THRESHOLD 13 // centimeters
#define PIR 19
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPLWfokA98z"
#define BLYNK_DEVICE_NAME "Dany Pradipta "
#define BLYNK_AUTH_TOKEN "-L0pUgRICNjOh9OTmu6q7nYvTa2CPxAK"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Servo.h>
Servo servo;
Servo seervo;
BlynkTimer timer;
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);
servo.write(0);
seervo.attach(SEERVO_PIN);
seervo.write(90);
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run();
timer.run();
// generate 10-microsecond pulse to TRIG pin
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
delay(500);
motionStatePrevious = motionStateCurrent; // store old state
motionStateCurrent = digitalRead(PIR); // read new state
if (motionStatePrevious == LOW && motionStateCurrent == HIGH) { // pin state change: LOW -> HIGH
Serial.println("Motion detected!");
seervo.write(0);
} else if (motionStatePrevious == HIGH && motionStateCurrent == LOW) { // pin state change: HIGH -> LOW
Serial.println("Motion stopped!");
seervo.write(90);
}
}
F. Dashboard Blynk