/* Program Pemberi Pakan Ikan dengan Aplikasi Blynk */
#if defined(ESP8266)
#include <ESP8266WiFi.h>
#elif defined(ESP32) //Library ESP8266
#include <BlynkSimpleEsp8266.h> //Library Blynk
char auth[] = "HoP9z23_PbWp-iEyMBYFGnnALYBvvcXS"; //Token
char ssid[] = "Wifi.id"; //Nama wifi
char pass[] = "kelompok1"; //Password wifi
BlynkTimer timer;
#include <HCSR04.h> //Library HCSR04
HCSR04 hc(14,12); //trig pin D5 , echo pin D6)
float TinggiSensor = 12; //Tinggi pemasangan sensor
float TingkatPakan = 0; //Tingkat Pakan
unsigned long TSekarang;
unsigned long TAkhir;
#include <Servo.h> //Library Servo
Servo myservo; //Nama Servo
void setup() {
Blynk.begin(auth, ssid, pass); //Inisialisasi token, wifi dan password
timer.setInterval(1000L, sendSensor); //Kirim data sensor
myservo.attach(0); //Servo pada pin D3
}
void loop() {
Blynk.run(); //Jalankan pembacaan Blynk
timer.run();
TSekarang = millis();
if(TSekarang - TAkhir > 1000){ //Baca sensor setiap 1 detik
TingkatPakan = TinggiSensor - hc.dist(); //Rumus mencari tinggi pakan
if(TingkatPakan < 0){
TingkatPakan = 0;
}
else if(TingkatPakan > 12){
TingkatPakan = 12;
}
TingkatPakan = map(TingkatPakan, 0, 12, 0, 100); //Ubah ke persen(%)
TAkhir = TSekarang;
}
}
BLYNK_WRITE(V1){ //Baca pin V1
int tombolservo = param.asInt();
if (tombolservo == 1){
myservo.write(90);
}
else{
myservo.write(0);
}
}
void sendSensor(){ //Kirim data sensor
Blynk.virtualWrite(V0,TingkatPakan); //Kirim ke pin V0
}