نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
خدارو شکر
قدم اول اینه که بتونی اس ام اس که برات ارسال میشه رو ببینی .
یه مدل ساده کد نویسیش میشه این:
کد:
#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 رو ببینی
مهندس یکم توو انتن دهی بد عمل میکنه تغذیه مناسب رو بهش دادم ( 4.2 ولت با امپر بالا) انتنشم انتن PCB هست ولی در حد 2 سانت جا به جا که میکنی جواب نمیده . زنگ که میزنم بهش گاهی زنگ میخوره.گاهی با یه بوق کوچیک قطع میشه . واسه این کد هم 2تا اس انگلیسی دادم دریافت نکرد . سومی رو که فرستادم یهو 3تاش باهم اومد. بعدش یه اس فارسی دادم که فکر کنم به کد اسکی دریافت کرده . چندثانیه بعد هم خودش یه چی دیگه دریافت کرد . کل دریافتا اینه:
start
AT+CMGF=1


OK
AT+CNMI=2,2,0,0,0


OK
AT+CFUN=1

OK
AT+CR
+CMT: "+989180698600","","16/08/10,11:04:36+14"
Salam

+CMT: "+989180698600","","16/08/10,11:06:07+14"
Salam1

+CMT: "+989180698600","","16/08/10,11:09:21+14"
Salam2

+CMT: "+989180698600","","16/08/10,11:10:01+14"
0633064406270645

+CMT: "+989180698600","","16/08/10,11:16:08+18"
00530068006F006D0061002000320033002000740061006D00 610073006500200061007A0020006400610073007400200072 0061006600740065006800200061007A0020002B0039003800 39003100380030003600390038003600300030002000640061 0072002000300039002F00300038002F003200300031003600 2000310036