Membuat Alat Monitoring Kirim - Terima SMS Tegangan AC 220v menggunakan SMS GATEWAY ARDUINO SIM800L
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat yang digunakan untuk monitoring tegangan AC satu fasa menggunakan sensor ZMPT101B. alai ini memiliki fitur yaitu bisa mengirimkan sms kepada siapa saja yang mengirimkan pesan ke nomer handphone yang ada pada SIM800L, format text pengirimannya yaitu "Monitor" atau "monitor", jika terdeteksi ada text yang masuk dan berformat seperti itu maka alat akan mengirimkan balik ke nomer yang mengirimkan dengan isi pesannya yaitu nilai tegangan yang sekarang sedang terdeteksi sensor. untuk lebih Jelasnya berikut adalah program dan skemanya.
a. Arduino Mega
b. Sensor Tegangan AC ZMPT101B
c. Buck Converter
d. Modul SMS SIM800L
e. Program Arduino IDE
//VCC Modul SIM800L adalah 4 volt
//Hubungkan RX dan TX ke Arduino Mega pin 50 dan 51
//Download Library di Link berikut
//http://www.4shared.com/rar/Vxz4_UEace/ITEADLIB_Arduino_MEGA_SIMCom_m.html
#include "SIM900.h"
#include <SoftwareSerial.h>
#include <stdlib.h>
#include "sms.h"
SMSGSM sms;
#include "Wire.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
char string[160];
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
char strsms[5];
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 = 1;
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");
if(started) {
//Enable this two lines if you want to send an SMS.
if (sms.SendSMS("085729996666", "Ready"))
Serial.println("\nSMS sent OK");
}
};
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();
}
float vkal = (z -512.6)/0.493;
vkal = vkal - 290;
if(vkal < 0){
vkal = 0;
}
sprintf(string,"Tegangan: %s Volt", dtostrf(vkal, 8, 5, strsms));
if(gsm.begin(9600)){
started=true;
}
int pos=0;
if(started){
pos=sms.IsSMSPresent(SMS_ALL);
if(pos){
sms.GetSMS(pos,n,smsbuffer,100);
if(!strcmp(smsbuffer,"monitor")){
sms.SendSMS(n,string);
}
if(!strcmp(smsbuffer,"Monitor")){
sms.SendSMS(n,string);
}
delsms();
}
}
delay(100);
lcd.setCursor(0, 0);
lcd.print("adc= ");
lcd.print(z);
lcd.setCursor(0, 1);
lcd.print("v= ");
lcd.print(vkal);
lcd.print(" v");
z = 0;
};
void delsms()
{
for (int i=0; i<10; i++)
{
int pos=sms.IsSMSPresent(SMS_ALL);
if (pos!=0)
{
if (sms.DeleteSMS(pos)==1){}else{}
}
}
}
f. Gambar Hasilnya
g. VIDEO HASILNYA
Update Contact :
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email : Fajarudinsidik@gmail.com
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email: Fajarudinsidik@gmail.com
atau Kirimkan Private messanger melalui email dengan klik tombol order dibawah ini :