Вобщем помучался я хорошо, но кое-что из ТС35 удалось выжать
Вот скетч для того чтобы включать и выключать звонком
PHP код:
#include <SoftwareSerial.h>
char gsm_char=0;
char d;//Stores character from the gsmSerial
int i=1;
int ledPin = 13;
boolean Status;
char strok[91]="";
long previousMillis = 0;
long interval = 5000;
SoftwareSerial gsmSerial(2,3);
void setup()
{
pinMode (ledPin, OUTPUT);
Status=LOW;
//Initialize serial ports for communication.
Serial.begin(9600);
gsmSerial.begin(2400);
for (i=1; i<90; i++)
{
strok [i] = gsmSerial.read();
Serial.println(strok[i]);
}}
void loop() {
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval)
{
previousMillis = currentMillis;
gsmSerial.println("AT+CMGF=1\r");
delay(5);
for (i=1; i<32; i++)
{
strok [i] = gsmSerial.read();
Serial.println(strok[i]);
}
if ((strok[25] == '1') &&
(strok[26]=='2') &&
(strok[27]=='3') &&
(strok[28]=='4')&&
(strok[29]=='5')&&
(strok[30]=='6')&&
(strok[31]=='7')&&
(Status == LOW))
{
gsmSerial.print("ATH\r");
delay(2000);
Serial.println("ON");
digitalWrite(ledPin, HIGH);
Status= HIGH;
gsmSerial.print("AT+CMGS=+380501234567\r");
delay(100);
gsmSerial.print(" On");
delay(10);
gsmSerial.print("\x1A");
}
else
if ((strok[25] == '1') &&
(strok[26]=='2') &&
(strok[27]=='3') &&
(strok[28]=='4')&&
(strok[29]=='5')&&
(strok[30]=='6')&&
(strok[31]=='7')&&
(Status == HIGH))
{gsmSerial.print("ATH\r");
delay(2000);
Serial.println("OFF");
digitalWrite(ledPin, LOW);
Status = LOW;
gsmSerial.print("AT+CMGS=+380501234567\r");
delay(100);
gsmSerial.print(" Off");
delay(10);
gsmSerial.print("\x1A");
}
// Чистка буфера
for (i=1; i<80; i++)
{
strok [i] = gsmSerial.read();
Serial.print(strok[i]);
}
delay(2000);
}
}
Попробуйте кто-нибудь на телефоне, интересно, работает или нет