Translate

Membuat Alat Monitoring Tegangan AC 220v ( Sensor ZMPT101B ) Menggunakan Arduino dan SMS Gateway SIM800L

Membuat Alat Monitoring Tegangan AC 220v ( Sensor ZMPT101B ) Menggunakan Arduino Mega dan SMS Gateway SIM800L


          Pada kesempatan yang berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang digunakan untuk mengukur tegangan AC 220 volt atau tegangan AC di range lain. alat ini memiliki prinsip kerja sebagai berikut. saat tegangan drop dari 220 menjadi 110 volt atau 0 volt maka akan mengirimkan sms bahwa tegangan pada titik tersebut drop. alat ini menggunakan arduino mega dan penampil lcd 16x2, serta untuk smsnya menggunakan modul SIM800L. untuk lebih jelasnya berikut adalah skema dan programnya.


LIBRARY SIM800L ARDUINO MEGA



a. Arduino Mega





b. Sensor Tegangan AC ZMPT101B





c. SIM800L MODUL SMS





d. Buck Converter






e. Program Arduino IDE

// VCC SIM800L = 4.0 volt
//Hubungkan Pin RX - TX SIM800L ke pin 50 dan 51 Arduino Mega

#include "SIM900.h"
#include <SoftwareSerial.h>

#include "sms.h"
SMSGSM sms;

#include "Wire.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(4, 5, 6, 7, 8, 9);


int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];



unsigned long start_times[300];
unsigned long stop_times[300];
unsigned long values[300];

// Define various ADC prescaler
const unsigned char PS_16 = (1 << ADPS2);
const unsigned char PS_32 = (1 << ADPS2) | (1 << ADPS0);
const unsigned char PS_64 = (1 << ADPS2) | (1 << ADPS1);
const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);

int a = 0;
int zero = 0;

void setup()
{
  lcd.begin(16, 2);
  lcd.clear();
  lcd.noCursor();
 
  Serial.begin(9600);
 
  // set up the ADC
  ADCSRA &= ~PS_128;  // remove bits set by Arduino library

  // you can choose a prescaler from above.
  // PS_16, PS_32, PS_64 or PS_128
  ADCSRA |= PS_128;    // set our own prescaler to 64


  Serial.println("GSM Shield testing.");

  if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true; 
  }
  else Serial.println("\nstatus=IDLE");
 

};

void loop()
{

 
    //tegangan AC =============================
  unsigned int i;
  unsigned int z;
  z = 0;
   
  // capture the values to memory
  for(i=0;i<300;i++) {
    start_times[i] = micros();
    values[i] = analogRead(A0);             
 
  if (values[i] >= z) {
  z = values[i]; 
  }
    stop_times[i] = micros();
  }

  if ((z >= 740) && (z <= 745)){
    a = 220;
    zero = 0;
  }
 
  if ((z >= 630) && (z <= 635)){
    a = 110;
  }
 
  if ((z >= 700) && (z <= 705)){
    a = 180;
  }
 
  if ((z >= 610) && (z <= 615)){
    a = 90;
  }
 
  if (z <= 520){
    a = 0;
  }
 
  if((a < 180)&&(zero == 0)){
      if (sms.SendSMS("082115476976", "TEGANGAN DROP"))
     zero = 1;
  }

  lcd.setCursor(0, 0);
  lcd.print("v= ");
  lcd.print(a);
  lcd.print(" v");
 
  z = 0;
 
     
};





f. Merubah LIBRARY PIN

- Agar library kompatibel dengan Arduino Mega maka lakukan langkah berikut
- Buka library SIM800L lalu cari GSM.cpp
- Rubah jadi seperti berikut lalu SAVE





g. VIDEO HASILNYA









No comments:

Post a Comment