List Program Kontrol Mesin Air otomatis Berbasis Arduino

List Program Kontrol Mesin Air otomatis Berbasis Arduino - Hallo sahabat TEKNOLOGI, Pada sharing TEKNOLOGI kali ini yang berjudul List Program Kontrol Mesin Air otomatis Berbasis Arduino, saya telah menyediakan artikel lengkap dari awal sampai akhir. mudah-mudahan isi postingan TEKNOLOGI yang saya tulis ini dapat anda pahami. okelah, silahkan di baca.

TEKNOLOGI : List Program Kontrol Mesin Air otomatis Berbasis Arduino
ARTIKEL : List Program Kontrol Mesin Air otomatis Berbasis Arduino


lihat juga


List Program Kontrol Mesin Air otomatis Berbasis Arduino

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <GSM.h>

#define PINNUMBER ""
// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;

LiquidCrystal_I2C lcd(0x3F,16,2);  // set the LCD address to 0x27 for a 20 chars and 4 line display

#define level_1   A3
#define level_2   A2
#define level_3   A1
#define level_4   A0
#define buzzer    12
#define selenoid   6
#define pompa      7.

int i,j;
char isi_SMS[13],c;
char senderNumber[20];
char pompa_on[13]="#POMPA ON@";
int level1, level2, level3, level4;
boolean flag_sms,flag_level1,flag_level4,pump_on;


void setup() {
  lcd.backlight(); lcd.init();
  Serial.begin(9600);
  // put your setup code here, to run once:
  pinMode(level_1,INPUT); digitalWrite(level_1,HIGH);
  pinMode(level_2,INPUT); digitalWrite(level_2,HIGH);
  pinMode(level_3,INPUT); digitalWrite(level_3,HIGH);
  pinMode(level_4,INPUT); digitalWrite(level_4,HIGH);
  pinMode(buzzer,OUTPUT);
  pinMode(pompa,OUTPUT); digitalWrite(pompa,HIGH);
  pinMode(selenoid,OUTPUT); digitalWrite(selenoid,HIGH);

  lcd.setCursor(0,0); lcd.print("READING GSM  ");
  boolean notConnected = true;
  while (notConnected)
  { if (gsmAccess.begin(PINNUMBER) == GSM_READY)
    notConnected = false;
    else
    { lcd.setCursor(0,0); lcd.print("GSM Not READY  ");
      Serial.println("GSM Not connected");
      delay(1000);
    }
  }
  lcd.setCursor(0,0); lcd.print("GSM READY.....  ");
  Serial.println("GSM initialized");
  delay(2000);
  lcd.setCursor(0,0); lcd.print(" PRESENTED By : ");
  lcd.setCursor(0,1); lcd.print("--LUNGGUK A.S.--");
  delay(2000); lcd.clear();
}

void baca_sensor() {
  level1=analogRead(level_1);
  level2=analogRead(level_2);
  level3=analogRead(level_3);
  level4=analogRead(level_4);
}

void loop() {
  // put your main code here, to run repeatedly:
  if(sms.available())
  { //Serial.println("Message received from:");
    sms.remoteNumber(senderNumber, 20);
    lcd.setCursor(0,0); lcd.print(senderNumber);  
    i=0;
    while (c = sms.read()) {
      isi_SMS[i]=c;
      if(isi_SMS[i]=='@') goto lompat;
      //Serial.print(c);
      i++;
      if(i>120) {sms.flush(); goto selesai;}
    }
    lompat:
    lcd.setCursor(0,1); lcd.print(isi_SMS);
    sms.flush();
    delay(100);
    pump_on=0;
    for(j=0;j<i;j++)
    {  if(pompa_on[j]!=isi_SMS[j])  pump_on=1;  } 
    i=0;  
    lcd.clear();
    lcd.setCursor(0,0); lcd.print("PERINTAH-->");       
    if(pump_on==0) {
      digitalWrite(selenoid,LOW);
      digitalWrite(pompa,LOW);
      lcd.setCursor(0,0); lcd.print("SMS DIVERIFIKASI");
      lcd.setCursor(0,1); lcd.print("-POMPA AIR AKTIF-");
      delay(3000);
    }  
    else{lcd.setCursor(0,1); lcd.print("Format SMS SALAH"); kirim_sms_salah(); delay(3000); }
    selesai:
    for(j=0;j<12;j++) { isi_SMS[j]=' '; }
    //'''''''''''''''''''''''''''''''''''''''''''''
    sms.flush();
    delay(100);
    //("\nEND OF MESSAGE");
    sms.flush(); // Delete message from modem memory 
  }
  baca_sensor();
  
  if(level1>700 && level2>700 && level3>700 && level4>700) {
    lcd.setCursor(0,0); lcd.print("--Level Air  0--");
    if(flag_level1==0) { flag_level1=1; kirim_SMS_Level_1(); }
  }
  else if(level1<700 && level2>700 && level3>700 && level4>700) { lcd.setCursor(0,0); lcd.print("--Level Air  1--"); flag_level4=0; }
  else if(level1<700 && level2<700 && level3>700 && level4>700) { lcd.setCursor(0,0); lcd.print("--Level Air  2--"); flag_level1=0; flag_level4=0; }
  else if(level1<700 && level2<700 && level3<700 && level4>700) { lcd.setCursor(0,0); lcd.print("--Level Air  3--"); flag_level1=0; }
  else if(level1<700 && level2<700 && level3<700 && level4<700) {
    lcd.setCursor(0,0); lcd.print("--Level Air  4--");
    flag_level1=0;
    digitalWrite(selenoid,HIGH);
    digitalWrite(pompa,HIGH);
    digitalWrite(buzzer,HIGH); delay(100);
    digitalWrite(buzzer,LOW); delay(100);
    if(flag_level4==0) { flag_level4=1; kirim_SMS_Level_4(); }
  } 
}

void kirim_SMS_Level_1() {
  // send the message
  sms.beginSMS("082304063142");
  sms.print("Bak Air Kosong. Balas \"#POMPA ON@\" Untuk Mengisi Bak Air...");
  sms.endSMS();
  lcd.setCursor(0,1); lcd.print("--MENGIRIM SMS--");
  delay(2000);
}
void kirim_SMS_Level_4() {
  // send the message
  sms.beginSMS("082304063142");
  sms.print("Bak Air Sudah Penuh. Proses Pengisian Air Selesai...");
  sms.endSMS();
}
void kirim_sms_salah() {
  // send the message
  sms.beginSMS("082304063142");
  sms.print("Format SMS Salah Booos");
  sms.endSMS();
}


Demikianlah Artikel List Program Kontrol Mesin Air otomatis Berbasis Arduino

Sekian TEKNOLOGI List Program Kontrol Mesin Air otomatis Berbasis Arduino, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sekian postingan TEKNOLOGI kali ini.

Anda sedang membaca artikel List Program Kontrol Mesin Air otomatis Berbasis Arduino dan artikel ini url permalinknya adalah https://imnoviriyadi.blogspot.com/2018/07/list-program-kontrol-mesin-air-otomatis.html Semoga artikel ini bisa bermanfaat.

Tag :

Post a Comment

0 Comments