#define BLYNK_TEMPLATE_ID "TMPLUcb24bPO"
#define BLYNK_DEVICE_NAME "Sensor Jarak"
#define BLYNK_AUTH_TOKEN "crtJfP8pP_10bThGKHgd_cK6F8a2tk79"
char auth[] = "crtJfP8pP_10bThGKHgd_cK6F8a2tk79";
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include "DHTesp.h"
const int DHT_PIN = 27;
DHTesp dhtSensor;
#define BLYNK_PRINT Serial
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
String note;
String noted;
#include <Servo.h>
#define triggerPin 2
#define echoPin 15
long bacaJarakCM(){
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
int durasi = pulseIn(echoPin, HIGH);
return (durasi / 2) / 29.1;
}
void deteksi() {
int jarak = bacaJarakCM();
Serial.print("Kondisi Makanan: ");
Serial.print(bacaJarakCM());
Serial.print(" Distance | ");
Serial.println(noted);
Blynk.virtualWrite(V4, bacaJarakCM());
Blynk.virtualWrite(V13, noted);
if (jarak <= 8){
noted ="Full";
}
else if(jarak >= 9 && jarak <=15) {
noted = "Enough";
}
else if(jarak >= 16){
noted = "Empty";
}
else {
noted = "";
}
delay(50);
}
void Temperature()
{
// Request temperature to all devices on the data line
sensors.requestTemperatures();
Serial.print("Celsius temperature: ");
//We can connect more than one IC on the same data wire. 0 refers to the first IC on the wire
Serial.print(sensors.getTempCByIndex(0));
Serial.println(" ");
int tempC=sensors.getTempCByIndex(0);
delay(1000);
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, tempC);
delay(500);
Serial.println(note);
if(tempC <= 24){
//digitalWrite(D4, HIGH);
note ="Cool";
}
else if(tempC >= 28 && tempC <= 34){
note = "Normal";
}
else if(tempC >= 35){
// digitalWrite(D4, LOW);
// myservo.write(60);
// delay(500);
// myservo.write(0);
note = "Hot";
}
else {
note = "";
}
delay(50);
}
BLYNK_WRITE(V9) {
int pinValue = param.asInt(); // Assigning incoming value from pin V0 to a variable
if (pinValue == 1) {
doFeed();
myservo.write(90);
} else {
myservo.write(0);
}
}
BLYNK_WRITE(V12){ ////Lampu UV
int pinValue = param.asInt();
if(pinValue == 1){
digitalWrite(14, HIGH);
}
if(pinValue == 0){
digitalWrite(14, LOW);
}
}
void doFeed(){
Serial.println("Do feeding:");
Serial.println(i++);
}
void setup()
{
// Debug console
Serial.begin(9600);
sensors.begin();
pinMode(triggerPin, OUTPUT);//D2 pinMode(echoPin, INPUT);//D2
pinMode(14, OUTPUT); //LED Hijau - Lampu UV
myservo.attach(4); // LED Hijau - JarFish
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(10,22,228,129), 8080);
}
void loop()
{
Blynk.run();
deteksi();
Temperature();
timer.run();
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
led1:A
led1:C
r1:1
r1:2
ultrasonic1:VCC
ultrasonic1:TRIG
ultrasonic1:ECHO
ultrasonic1:GND
led2:A
led2:C
led3:A
led3:C
r2:1
r2:2
r3:1
r3:2
dht1:VCC
dht1:SDA
dht1:NC
dht1:GND
servo1:GND
servo1:V+
servo1:PWM