#define BLYNK_TEMPLATE_ID "TMPL6F7ESjKm6"
#define BLYNK_TEMPLATE_NAME "Project IoT"
#define BLYNK_AUTH_TOKEN "ad1DHmZYByfeT8YTtPCGF7PR1MnpfjFY"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <Stepper.h>
#define DHTPIN 12
#define DHTTYPE DHT22
const int stepsPerRevolution = 360;
Stepper putaranmotor(stepsPerRevolution, 15, 2, 0, 4);
const char* ssid = "Wokwi-GUEST";
const char* password = "";
float t;
float previousTemp = 0;
void wifiConnection(){
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.println(WiFi.SSID());
Serial.println(WiFi.RSSI());
Serial.println(WiFi.macAddress());
Serial.println(WiFi.localIP());
Serial.println(WiFi.gatewayIP());
Serial.println(WiFi.dnsIP());
}
DHT dht(DHTPIN, DHTTYPE);
void dht22(){
t = dht.readTemperature();
if (isnan(t)){
Serial.println("Gagal membaca dari sensor DHT");
return;
}
Blynk.virtualWrite(V0, t);
}
void temperatureupdate() {
if (t != previousTemp) {
Serial.print("Suhu: ");
Serial.print(t);
Serial.println("°C");
Blynk.virtualWrite(V0, t);
previousTemp = t;
if (t >= 35)
{
Serial.println("Motor Berputar");
}
else if (t < 35)
{
Serial.println("Motor Mati");
}
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
wifiConnection();
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, password);
dht.begin();
putaranmotor.setSpeed(60);
}
void loop() {
Blynk.run();
dht22();
temperatureupdate();
if(t >= 35)
{
putaranmotor.step(stepsPerRevolution);
Blynk.virtualWrite(V1, 1);
}
else
{
putaranmotor.step(0);
Blynk.virtualWrite(V1, 0);
}
}