سلام. ممنون میشم راهنمایی بفرمایید چطور میتوانم از طریق پیامک یک شماره تلفن همراه را با sim800l در حافظه آردینو ذخیره و بازخوانی کنم.
ویرایش:
این برنامه ای هست که نوشتم و کار میکنه البته بخشهایی مثل دریافت گزارشم بعدا بش اضافه میکنم، بحث حذف و اضافه شماره تلفنهای محاز از طریق پیامک رو هم میخوام به این برنامه اضافه کنم.
#include <SoftwareSerial.h>
SoftwareSerial gsmSerial(7, 8);
char incomingByte;
String inputString;
#define rel 3
bool rels, lastrel = 0;
String numbers[3] = {"+98*******", "+98********"}; // شماره هایی که مجاز به کار با دستگاه می باشند
String ersal[3] = {"AT+CMGS=\"+98********\"", "AT+CMGS=\"+98*********\""}; // شماره هایی که پیامک گزارش ها برای آنها ارسال می شود
void setup()
{
pinMode(rel, OUTPUT);
Serial.begin(9600);
gsmSerial.begin(9600);
while (!gsmSerial.available())
{
gsmSerial.println("AT");
delay(1000);
Serial.println("Connecting...");
}
Serial.println("Connected!");
gsmSerial.println("AT+CMGF=1");
delay(1000);
gsmSerial.println("AT+CNMI=1,2,0,0,0");
delay(1000);
gsmSerial.println("AT+CMGL=\"REC UNREAD\"");
delay(500);
}
void loop()
{
if (gsmSerial.available())
{
inputString = "";
delay(1000);
while (gsmSerial.available())
{
incomingByte = gsmSerial.read();
inputString += incomingByte;
}
delay(100);
Serial.print("input : ");
Serial.print(inputString);
Serial.println(" end");
inputString.toUpperCase();
Serial.println("input up : " + inputString);
for (byte i = 0; i < 3; i++)
{
if (inputString.indexOf(numbers[i]) > 0)
{
if (inputString.indexOf("ON") > 0)
{
digitalWrite(rel, HIGH);
}
if (inputString.indexOf("OFF") > 0)
{
digitalWrite(rel, LOW);
}
}
}
}
}