Cześć, jestem tu nowy. Mam pewien problem, otóż jestem w trakcie budowania alarmu z powiadomieniem GSM. Ogólnie wszystko działa oprócz samego powiadomienia. W serial monitorze widać, że sms idzie, ale wyskakuje komunikat ERROR. Na jednym filmiku z tym modułem który znalazłem jest pokazane, że dioda D6 po włożeniu karty SIM zaczyna mrugać wolniej (jakoś co 3 sekundy). U mnie po włożeniu karty, szybkość mrugania diody się nie zmienia (jakoś 1 raz na sekundę). Czy ktoś mógłby pomóc/ miał podobny problem? W załączniku zamieszczam zdjęcie modułu oraz screena z serial monitora. (znam tylko podstawy programowania, także program jest napisany dosyć łopatologicznie )
Kod programu:
Kod programu:
Kod:
#include <IRremote.h>
#include <SoftwareSerial.h>
SoftwareSerial GPRS(7, 8);
//boolean state, lastState;
#define irPin 11
IRrecv irrecv(irPin);
decode_results results;
int syrena = 2;
int led = 13;
int czujka = 10;
int stanczujki=0;
void setup() {
GPRS.begin(9600);
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(syrena, OUTPUT);
pinMode(led, OUTPUT);
pinMode(czujka, INPUT);
GPRS.println("AT+CMGF=1");
delay(1000);
}
void loop(){
etyk:
while(GPRS.available()) {
Serial.write(GPRS.read());
}
if (irrecv.decode(&results)) {
switch (results.value) {
case 0xFFA25D:
{
Serial.println("ALARM ROZBROJONY");
digitalWrite(syrena, HIGH);
delay(250);
digitalWrite(syrena, LOW);
delay(250);
}
break;
case 0xFFE21D:
{
Serial.println("ALARM UZBROJONY");
digitalWrite(syrena, HIGH);
delay(250);
digitalWrite(syrena, LOW);
delay(250);
digitalWrite(syrena, HIGH);
delay(250);
digitalWrite(syrena, LOW);
delay(250);
do{
stanczujki=digitalRead(czujka);
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(200);
irrecv.decode(&results);
if(results.value == 0xFFA25D)
{ goto etyk;}
irrecv.resume();
}while(stanczujki == LOW);
if(stanczujki == HIGH)
{digitalWrite(syrena, HIGH);
wyslijSMS();}
break;}
default:
Serial.println("NIE TEN GUZIK");
break;}
irrecv.resume();
}
}
void wyslijSMS() {
Serial.print("UWAGA!! ALARM URUCHOMIONY!! ");
GPRS.println("AT+CMGS=\"moj nr telefonu\"");
delay(500);
GPRS.print("UWAGA!! ALARM URUCHOMIONY!! ");
GPRS.println("UWAGA!! ALARM URUCHOMIONY!!");
GPRS.write( 0x1a ); // ctrl+Z character
delay(500);
}