خدارو شکر
قدم اول اینه که بتونی اس ام اس که برات ارسال میشه رو ببینی .
یه مدل ساده کد نویسیش میشه این:
کد:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(9, 10); //tx gsm = 9 rx arduino , rx gsm = 10 tx arduino
int pir = 3;
void setup()
{
mySerial.begin(9600);
Serial.begin(9600);
delay(1000);
pinMode(pir, INPUT);
gsmConfig() ;
Serial.println("start");
}
void loop()
{
int a = digitalRead(pir);
if ( a == 1)
{
Serial.println("motion");
ensms();
}
else {
mySerial.println("AT+CMGD=1,2\r");
delay(1000);
}
showSms() ;
}
void gsmConfig() {
mySerial.println("AT+CMGF=1\r"); // set SMS mode to text
delay(100);
mySerial.println("AT+CNMI=2,2,0,0,0\r");
delay(100);
mySerial.println("AT+CFUN=1");
delay(2000);
mySerial.println("AT+CREG?");
delay(1000);
}
void ensms()
{
mySerial.println("AT+CSCS=\"IRA\"");
delay(200);
mySerial.println("AT+CMGF=1");
delay(200);
mySerial.println("AT+CSMP=17,167,0,0");
delay(200);
mySerial.println("AT+CMGS=\"09...\"");
delay(500);
mySerial.println("Motion Alarm\x1A");
delay(2000);
}
void showSms() {
char incoming_char = 0;
if (mySerial.available() > 0)
{
incoming_char = mySerial.read(); //Get the character from the cellular serial port.
Serial.print(incoming_char); //Print the incoming character to the terminal.
}
}
الان با این کد ممکنه یه سری چیزهای اضافی هم ببینی که مهم نیست .
چک کن با این کد میتونی متن sms رو ببینی