Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- #define rxPin 2
- #define txPin 3
- SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
- String SmsStorePos = String("");
- String msg = String("");
- String snTmp = String("");
- String snFull = String("");
- int SmsContentFlag = 0;
- int ledPin = 5;
- int powerPin = 6;
- void setup()
- {
- mySerial.begin(19200);
- mySerial.print("\r");
- delay(1000);
- Serial.begin(19200);
- Serial.println("Started!");
- pinMode( ledPin, OUTPUT );
- digitalWrite( ledPin, HIGH );
- pinMode( powerPin, OUTPUT);
- // digitalWrite(powerPin, LOW);
- // delay(3000);
- // digitalWrite(powerPin, HIGH);
- // delay(5000);
- // digitalWrite ( ledPin, HIGH);
- // delay(1000);
- // digitalWrite( ledPin, LOW);
- mySerial.print("AT+CMGF=1\r");
- delay(1000);
- }
- void loop()
- {
- char SerialInByte;
- if(Serial.available())
- {
- mySerial.print((unsigned char)Serial.read());
- }
- else if(mySerial.available())
- {
- char SerialInByte;
- SerialInByte = (unsigned char)mySerial.read();
- Serial.print( SerialInByte );
- if( SerialInByte == 13 ){
- ProcessGprsMsg();
- }
- if( SerialInByte == 10 ){
- }
- else {
- msg += String(SerialInByte);
- }
- }
- }
- void ProcessSms( String sms ){
- sms.toLowerCase();
- Serial.print( "ProcessSms for [" );
- Serial.print( sms );
- Serial.println( "]" );
- if( sms.indexOf("on") >= 0 ){
- digitalWrite( ledPin, LOW );
- Serial.println( "LED IS ON" );
- delay (5000);
- digitalWrite( ledPin, HIGH );
- Serial.println( "LED IS OFF" );
- return;
- }
- if( sms.indexOf("off") >= 0 ){
- digitalWrite( ledPin, HIGH );
- Serial.println( "LED IS OFF" );
- return;
- } else {
- mySerial.print("AT+CMGF=1\r");
- delay(1000);
- mySerial.print("AT+CMGS=\"");
- mySerial.print(snFull);
- mySerial.print("\"\r");
- delay(1000);
- mySerial.print("Intruksi SMS tidak valid : ");
- mySerial.print(sms);
- mySerial.print("\r");
- delay(1000);
- mySerial.write(0x1A);
- return;
- }
- }
- void GprsTextModeSMS(){
- mySerial.println( "AT+CMGF=1" );
- }
- void GprsReadSmsStore( String SmsStorePos ){
- mySerial.print( "AT+CMGR=" );
- mySerial.println( SmsStorePos );
- }
- void ClearGprsMsg(){
- msg = "";
- }
- void ProcessGprsMsg() {
- Serial.println("");
- Serial.print( "Pesan GPRS: [" );
- Serial.print( msg );
- Serial.println( "]" );
- if( msg.indexOf( "Call Ready" ) >= 0 ){
- Serial.println( "*** Sistem siap menerima instruksi ***" );
- GprsTextModeSMS();
- }
- if( msg.indexOf( "+CMTI" ) >= 0 ){
- Serial.println( "*** Ada SMS Masuk ***" );
- int iPos = msg.indexOf( "," );
- SmsStorePos = msg.substring( iPos+1 );
- Serial.print( "SMS terekam di possisi: " );
- Serial.println( SmsStorePos );
- GprsReadSmsStore( SmsStorePos );
- }
- if( msg.indexOf( "+CMGR:" ) >= 0 ){
- int snPos = msg.indexOf("+1");
- Serial.print("SMS Dari: ");
- snTmp = msg.substring(snPos+1);
- snFull = "";
- for (int i = 0; i < 11; i++){
- snFull += snTmp[i];
- }
- Serial.println(snFull);
- SmsContentFlag = 1;
- ClearGprsMsg();
- return;
- }
- if( SmsContentFlag == 1 ){
- Serial.println( msg );
- Serial.println( "ISI SMS :" );
- ProcessSms( msg );
- delSMS();
- }
- ClearGprsMsg();
- SmsContentFlag = 0;
- }
- void delSMS() {
- mySerial.print("AT+CMGD=");
- mySerial.println(SmsStorePos);
- Serial.println( "Menghapus SMS" );
- }
Advertisement
Add Comment
Please, Sign In to add comment