Galera estou tentando fazer um garagino fazer um acionamento e uma notificação via SMS atraves de um Modulo Shield SIM900, porem estou com alguns problemas, estou utilizando o tutorial que encontrei aqui no lab de garagem que se utilizou um modulo GSM  SM5100B, copiei o Sketch utilizado no tutorial e esta dando erros de declaração.:

Sketch::

Acionamento via SMS:


#include <SerialGSM.h> //Inclui a biblioteca SerialGSM.h
#include <SoftwareSerial.h> //Inclui a biblioteca SoftwareSerial.h
SerialGSM cel(2,3); //Configura os pinos 2 e 3 para se trabalhar como Rx e Tx via Software

String SMS; //Variável para o armazenamento da SMS recebida
String numeroRemetente; //Variável para o armazenamento do número do remetente da SMS
String numeroPermitido = "011982823030"//Variável que define o número do celular que o sistema irá responder

boolean sendonce=true//Variável boleana utilizada pela biblioteca SerialGSM.h

void setup()
{
  int i; //Variável para contagem
  for(i=5;i<=7;i++) //Laço que configura os pinos D5 a D7 como saída e em nível lógico 0(LOW)
  {
    pinMode(i,OUTPUT);
    digitalWrite(i,LOW);
  }

Serial.begin(9600); //Incializa a Serial(Hardware) com um Baud Rate de 9600
  cel.begin(9600); //Incializa a Serial(Software) com um Baud Rate de 9600
  cel.Verbose(true); //Função de configuração da biblioteca SerialGSM.h
  cel.Boot(); //Função de inicialização do Módulo SM5100B
  cel.DeleteAllSMS(); //Função para deletar todas as SMS do chip
  cel.FwdSMS2Serial(); //Função utilizada para enviar as SMS para a Serial

Serial.println(">>>>> Celular Shield Inicializado <"); //Mensagem de início da aplicação
  Serial.println(); //Pula linha
}

void loop()
{
  if (cel.ReceiveSMS()) //Se o chip no Celular Shield receber uma SMS
  {
    Serial.println(); //Pula linha
    Serial.println(); //Pula linha
    Serial.println(); //Pula linha
    Serial.println(); //Pula linha
    Serial.println("~~NOVA MENSAGEM RECEBIDA~~"); //Imprime na serial "NOVA MENSAGEM RECEBIDA"
    Serial.println(); //Pula linha

Serial.print("REMETENTE: "); //Imprime na serial a palavra "REMETENTE:"
    Serial.println(cel.Sender()); //Imprime o número do remetente que a SMS foi enviada

numeroRemetente = cel.Sender(); //Armazena na variável numeroRemetente o número do remetente

if(numeroRemetente != numeroPermitido) //Se o número do remetente não for o mesmo que o número permitido
    {
      Serial.println("Não Permitido"); //Imprime a mensagem "Não Permitido" e não executa nada
    }

else //Senão, o número é o permitido e executará os comandos
    {
      Serial.print("MENSAGEM: "); //Imprime na serial a palavra "MENSAGEM:"
      Serial.println(cel.Message()); //Imprime a mensagem que foi recebida
      SMS = cel.Message(); //Guarda na mensagem na variável SMS

//++++++++Tratamento do Primeiro Caractere++++++++
      if(SMS[0] == '1'//Se o primeiro caractere da SMS for igual a 1
      {
        digitalWrite(5,HIGH); //Acende o LED verde
        Serial.println();//Pula uma linha na serial
        Serial.println("LED VERDE ACESO"); //Imprime a mensagem "LED VERDE ACESO"
      }
      else if(SMS[0] == '0'//Senão, se o primeiro caractere for igual a 0
      {
        digitalWrite(5,LOW); //Apaga o LED verde
        Serial.println(); //Pula uma linha na serial
        Serial.println("LED VERDE APAGADO"); //Imprime a mensagem "LED VERDE APAGADO"
        Serial.println(); //Pula uma linha na serial
      }
      //=================================================
    }   

//++++++++Tratamento do Segundo Caractere++++++++
    if(SMS[1] == '1'//Se o segundo caractere da SMS for igual a 1
    {
      digitalWrite(6,HIGH); //Acende o LED amarelo
      Serial.println(); //Pula uma linha na serial
      Serial.println("LED AMARELO ACESO"); //Imprime a mensagem "LED AMARELO ACESO"
    }
    else if(SMS[1] == '0'//Senão, se o segundo caractere for igual a 0
    {
      digitalWrite(6,LOW); //Apaga o LED amarelo
      Serial.println(); //Pula uma linha na serial
      Serial.println("LED AMARELO APAGADO"); //Imprime a mensagem "LED AMARELO APAGADO"
    }
    //=================================================

//++++++++Tratamento do Terceiro Caractere++++++++
    if(SMS[2] == '1'//Se o terceiro caractere da SMS for igual a 1
    {
      digitalWrite(7,HIGH); //Acende o LED vermelho
      Serial.println(); //Pula uma linha na serial
      Serial.println("LED VERMELHO ACESO"); //Imprime a mensagem "LED VERMELHO ACESO"
    }
    else if(SMS[2] == '0'//Senão, se o terceiro caractere for igual a 0
    {
      digitalWrite(7,LOW); //Apaga o LED vermelho
      Serial.println(); //Pula uma linha na serial
      Serial.println("LED VERMELHO APAGADO"); //Imprime a mensagem "LED VERMELHO APAGADO"
    }
    //=================================================

cel.DeleteAllSMS(); //Deleta todas as SMS
  }
}

 

Ao copiar e colar para fazer upload esta dando os seguintes erros de declarão :

sketch_may21b:3: error: 'Serial' does not name a type
sketch_may21b.ino: In function 'void setup()':
sketch_may21b:17: error: 'cel' was not declared in this scope
sketch_may21b.ino: In function 'void loop()':
sketch_may21b:27: error: 'cel' was not declared in this scope

 

Exibições: 577

Responder esta

Respostas a este tópico

Galera consigui o codigo, mas esta dando muitos erros alguem pode me ajudar a colocar ele funcionar ?

/*******************************************************
***************** PROGRAMAÇÃO PIVO *********************
********************************************************/
#include <GSM_Shield.h> //Biblioteca do Módulo GSM
#define tamanhoTelefone 20 //Número de digitos do telefone
#define tamanhoSMS 25 //Tamanho do texto do SMS
#define capacidadeTelefones 20 //Capacidade de Armazenamento do SIM Card
#define pinoRele 2 //Pino para onde é enviado o pulso elétrico
/*********************************************************
*********************************************************/
GSM gsm;
char telefone[tamanhoTelefone];
char sms[tamanhoSMS];
int erro;
int posicao_sms;
int i;
boolean deletarNumero;
unsigned long tempo;

void setup()
{
pinMode(pinoRele,OUTPUT);
Serial.begin(9600);
gsm.TurnOn(9600);
gsm.InitParam(1);
gsm.Echo(0);
Serial.println("verificação inicial de cadastro...");
for (i=1;i!=capacidadeTelefones;i++)
{
erro=gsm.GetPhoneNumber(i=telefone);
if(erro==1)
{
if (i==1) Serial.println("Telefones Cadastrados:");
Serial.print(i);
Serial.print(".");
Serial.println(telefone);
}
else if (i==1)
{
Serial.println("Nenhum Administrador Cadastrado.");
break;
}
}
tempo = millis();
}

void loop()
{
trataSMS();
trataChamada();
if (millis()-tempo>60000)
{
tempo = millis();
Serial.println();
Serial.println("==================================");
Serial.println("Relatorio de Numeros Cadastrados:");
for (i=1;i!=capacidadeTelefones;i++)
{
erro=gsm.GetPhoneNumber(i,telefone);
if(erro==1)
{
Serial.print(i);
Serial.print(". ");
Serial.println(telefone);
}
}
Serial.println("==================================");
Serial.println();
}

}

void trataChamada()
{
erro = gsm.CallStatusWithAuth(telefone,1,capacidadeTelefones);
switch(erro)
{
case CALL_INCOM_VOICE_AUTH:
Serial.println("Usuario Registrado");
Serial.print("Numero: ");
Serial.println(telefone);
Serial.println("Ligando Pivo...");
digitalWrite(2,HIGH);
delay(1000);
digitalWrite(2,LOW);
gsm.HangUp();
break;
Serial.println(); //Pula linha na Serial
Serial.println(); //Pula linha na Serial
gsm.Rcpt("982823030"); //Seleciono o número de envio da SMS
gsm.Message("PIVO ACIONADO"); //Escreve a mensagem "PIVO AcionadO"
gsm.SendSMS(); //Envia a SMS
Serial.println(); //Pula linha na Serial
Serial.println(); //Pula linha na Serial
while(2,HIGH); //Enquanto a PIVO estiver acesa
case CALL_INCOM_VOICE_NOT_AUTH:
Serial.println("Usuario Nao Registrado");
Serial.print("Numero: ");
Serial.println(telefone);
gsm.HangUp();
break;
case CALL_ACTIVE_VOICE:
case CALL_INCOM_DATA_AUTH:
case CALL_INCOM_DATA_NOT_AUTH:
case CALL_ACTIVE_DATA:
gsm.HangUp();
break;
default:
break;
}
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço