Anda di halaman 1dari 5

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