Translate

Kendali Pagar Manual / Otomatis Motor Stepper + Sensor PIR IOT Blynk 2.0

Kendali Pagar Manual / Otomatis Motor Stepper + Sensor PIR IOT Blynk 2.0
  

        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang diginakan sebagai kontroller pagar manual atau otomatis via IOT Blynk. jadi alat ini dikendalikan via internet dan tedapat satu sensor pir untuk kendali otomatisnya. untuk lebih jelasnya berikut koding dan video demo alatnya.
 
 
1. Program Arduino IDE
 
#define BLYNK_TEMPLATE_ID "GHJHGtyuytuvb"
#define BLYNK_TEMPLATE_NAME "PAGAR"
#define BLYNK_AUTH_TOKEN "UYUyixmbmhjhgjTGDGFHHGfhgjhgjhddghfc"
#define BLYNK_PRINT Serial

#include <Wire.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

int PUL = 25; //define Pulse pin
int DIR = 26; //define Direction pin
int ENA = 27; //define Enable Pin

int pinValue1, pinValue2, pinValue3, modex, tanda;
int buzzer = 15;
BlynkTimer timer;

char ssid[] = "hotspotwifi";
char pass[] = "1234567890";


BLYNK_WRITE(V0)
{
  pinValue1 = param.asInt();   

  if((pinValue1 == 1)&&(tanda == 0)){
  buka();
  }
  
  if(pinValue1 == 0) {

  }
  
}

BLYNK_WRITE(V1)
{
  pinValue2 = param.asInt();   

  if((pinValue2 == 1)&&(tanda == 1)){
  tutup();
  }
  
  if(pinValue2 == 0) {

  }
  
}


BLYNK_WRITE(V2)
{
  pinValue3 = param.asInt();   

  if(pinValue3 == 1){
  modex = 1; 
  }
  
  if(pinValue3 == 0) {
  modex = 0;
  }
  
}

void kirimdata()
{

}

void setup() {
  lcd.begin();
  lcd.clear();
  pinMode (PUL, OUTPUT);
  pinMode (DIR, OUTPUT);
  pinMode (ENA, OUTPUT);
  pinMode (buzzer, OUTPUT);
    
  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  timer.setInterval(1000L, kirimdata);
}

void loop() {
int pir = analogRead(34);

if((pir > 100)&&(modex == 1)&&(tanda == 0)){
  buka();
  delay(5000);
  tutup();
  }
  
  lcd.setCursor(0,0);
  lcd.print("PIR: ");
  lcd.print(pir);
  lcd.print("   ");

Blynk.run();
timer.run();
}

void tutup(){

  lcd.setCursor(0,1);
  lcd.print("TUTUP  ");
  
  for (int i = 0; i < 6400; i++) // Forward 5000 steps
  {
    digitalWrite(DIR, LOW);
    digitalWrite(ENA, HIGH);
    digitalWrite(PUL, HIGH);
    delayMicroseconds(50);
    digitalWrite(PUL, LOW);
    delayMicroseconds(50);
  }  

  tanda = 0;
}

void buka(){

  digitalWrite(buzzer,HIGH);
  delay(1000);
  digitalWrite(buzzer,LOW);
  
  lcd.setCursor(0,1);
  lcd.print("BUKA   ");
    
  for (int i = 0; i < 6400; i++) // Backward 5000 steps
  {
    digitalWrite(DIR, HIGH);
    digitalWrite(ENA, HIGH);
    digitalWrite(PUL, HIGH);
    delayMicroseconds(50);
    digitalWrite(PUL, LOW);
    delayMicroseconds(50);
  }
  
  tanda = 1;
}
 
 
2. Interface Blynk
 

3. VIDEO HASILNYA
 

 

No comments:

Post a Comment