Skip to content

Instantly share code, notes, and snippets.

@rizkiandrianto
Created October 26, 2018 03:54
Show Gist options
  • Save rizkiandrianto/32e0c7cda9dfa1246e41724be824c194 to your computer and use it in GitHub Desktop.
Save rizkiandrianto/32e0c7cda9dfa1246e41724be824c194 to your computer and use it in GitHub Desktop.
Sistem Keamanan Kendaraan Dengan Menggunakan Layanan Pesan Singkat Berbasis Arduino + GSM Shield
#include "SIM900.h"
#include <SoftwareSerial.h>
//If not used, is better to exclude the HTTP library,
//for RAM saving.
//If your sketch reboots itself proprably you have finished,
//your memory available.
//#include "inetGSM.h"
//If you want to use the Arduino functions to manage SMS, uncomment the lines below.
#include "sms.h"
SMSGSM sms;
int lampudepan = 8;
int lampubelakang = 9;
int kunci = 0;
String mem;
char pesan[70];
String gabung;
String bukasimpan = "Your car is Not Locked Yet, and\nYour car is on ";
String kuncisimpan = "Your car is Already Locked, and\nYour car is on ";
String bukakosong = "Your car is Not Locked Yet";
String kuncikosong = "Your car is Already Locked";
String phone_number = "+6234567890"
//To change pins for Software Serial, use the two lines in GSM.cpp.
//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.
//Simple sketch to send and receive SMS.
//int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
void setup()
{
pinMode(lampudepan, OUTPUT);
pinMode(lampubelakang, OUTPUT);
//Serial connection.
Serial.begin(9600);
Serial.println("GSM Shield testing.");
//Start configuration of shield with baudrate.
//For http uses is raccomanded to use 4800 or slower.
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("3471234567", "Arduino SMS"))
//Serial.println("\nSMS sent OK");
}
};
void loop()
{
if(started) {
//Read if there are messages on SIM card and print them.
if(gsm.readSMS(smsbuffer, 160, n, 20)) {
Serial.println(n);
Serial.println(smsbuffer);
Serial.print ("\nThe result of strcmp is : ");
Serial.println((strcmp (smsbuffer,"On")));
//Fungsi Find
if ((strcmp (smsbuffer,"On")) == -9 && (strcmp (n,phone_number) == 0 ))
{
cari();
}
//Fungsi Stop
else if ((strcmp (smsbuffer,"On")) == 4 && (strcmp (n,phone_number) == 0 ))
{
digitalWrite(lampudepan, LOW);
digitalWrite(lampubelakang, LOW);
}
//Fungsi Penyimpan Keberadaan
else if ((strcmp (smsbuffer,"On")) == -44 && (strcmp (n,phone_number) == 0 ))
{
mem = String(smsbuffer);
}
//Fungsi Status
else if ((strcmp (smsbuffer,"On")) == -16 && (strcmp (n,phone_number) == 0 ))
{
digitalWrite(lampudepan, HIGH);
digitalWrite(lampubelakang, HIGH);
delay(200);
digitalWrite(lampudepan, LOW);
digitalWrite(lampubelakang, LOW);
if (kunci == 0)
{
if (mem == "") {
gabung = bukakosong + mem;
gabung.toCharArray(pesan, 70);
delay(20);
sms.SendSMS(n, pesan);
}
else if (mem != "") {
gabung = bukasimpan + mem;
gabung.toCharArray(pesan, 70);
delay(20);
sms.SendSMS(n, pesan);
}
}
if (kunci == 1)
{
if (mem == "") {
gabung = kuncikosong + mem;
gabung.toCharArray(pesan, 70);
delay(20);
sms.SendSMS(n, pesan);
}
else if (mem != "") {
gabung = kuncisimpan + mem;
gabung.toCharArray(pesan, 70);
delay(20);
sms.SendSMS(n, pesan);
}
}
}
// Fungsi Lock
else if ((strcmp (smsbuffer,"On")) == -3 && (strcmp (n,phone_number) == 0 ))
{
int var = 0;
kunci = 1;
while (var < 2)
{
digitalWrite(lampudepan, HIGH);
digitalWrite(lampubelakang, HIGH);
delay(200);
digitalWrite(lampudepan, LOW);
digitalWrite(lampubelakang, LOW);
delay(200);
var++;
}
}
// Fungsi Unlock
else if ((strcmp (smsbuffer,"On")) == 2 && (strcmp (n,phone_number) == 0 ))
{
int var = 0;
kunci = 0;
while (var < 3)
{
digitalWrite(lampudepan, HIGH);
digitalWrite(lampubelakang, HIGH);
delay(200);
digitalWrite(lampudepan, LOW);
digitalWrite(lampubelakang, LOW);
delay(200);
var++;
}
}
//============================ Batas Fungsi Utama =================
}
delay(350);
}
};
void cari ()
{
while (1) {
digitalWrite(lampudepan, HIGH);
digitalWrite(lampubelakang, HIGH);
delay(700);
digitalWrite(lampudepan, LOW);
digitalWrite(lampubelakang, LOW);
if(gsm.readSMS(smsbuffer, 160, n, 20)) {
// Fungsi Lock
if ((strcmp (smsbuffer,"On")) == -3 && (strcmp (n,phone_number) == 0 ))
{
int var = 0;
kunci = 1;
while (var < 2)
{
digitalWrite(lampudepan, HIGH);
digitalWrite(lampubelakang, HIGH);
delay(200);
digitalWrite(lampudepan, LOW);
digitalWrite(lampubelakang, LOW);
delay(200);
var++;
}
}
// Fungsi Unlock
else if ((strcmp (smsbuffer,"On")) == 2 && (strcmp (n,phone_number) == 0 ))
{
int var = 0;
kunci = 0;
while (var < 3)
{
digitalWrite(lampudepan, HIGH);
digitalWrite(lampubelakang, HIGH);
delay(200);
digitalWrite(lampudepan, LOW);
digitalWrite(lampubelakang, LOW);
delay(200);
var++;
}
}
return;
}
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment