Ola, eu estou criando um projeto de automação residencial e uma das partes é usar um Shield GSM para mandar e receber comandos. O problema é que no arduino UNO, funciona, já no Mega não...
segue o meu código...

Ele mostra um erro dizendo, ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp
Dentro da lib GSM.h tem uma opção para alterar de Board #uno ou #mega, mas quando mudo para mega, na compilação da um monte de erros...
Se alguem souber o erro, me ajude! Gratoo!
 
#include "SIM900.h"
#include "sms.h"
#include "SoftwareSerial.h"
#include "sms.h"
SMSGSM sms;
 
boolean started=false;
char smsbuffer[160];
char n[20];

int powerkey  =  5;
int statuspin =  6;
int pinState  =  0;

 int led1 = A0; 
 int led2 = A1;
 
void setup() 
{
  pinMode(powerkey, OUTPUT);
  pinMode(statuspin, INPUT);
  digitalWrite(powerkey, HIGH);  // set the LED on
    
  pinMode(led1, OUTPUT);
  digitalWrite(led1, 0);
  pinMode(led2, OUTPUT);
  digitalWrite(led2, 0);  

  
  //Serial connection.
  Serial.begin(9600);
  Serial.println("GSM Shield testing."); 
  
  
  //Start configuration of shield with baudrate.
  if (gsm.begin(2400)){
    Serial.println("SIM900D PRONTO");
    started=true;  
  }
  else Serial.println("SIM900D FALHA = IDLE");
  if(started){
    delsms();
  } 
 
   if(started){
    if (sms.SendSMS("99xxxxxx", "SISTEMA OK"))
      Serial.println("SMS ENVIADO PARA 99xxxxxx = SISTEMA OK");
  }

};
 
void loop() 
{
  pinState = digitalRead(statuspin);
  if(pinState==LOW)
  {
  digitalWrite(powerkey, HIGH);  // set the LED on
  delay(1000);
  digitalWrite(powerkey, LOW);
  }

  
  int pos=0;
  //Serial.println("Loop");
  
  if(started){
    pos=sms.IsSMSPresent(SMS_ALL);
    
    if(pos){
      Serial.println("IsSMSPresent at pos ");
      Serial.println(pos); 
      sms.GetSMS(pos,n,smsbuffer,100);
      Serial.println(n);
      Serial.println(smsbuffer);
//-----------------------------------------------------------------------------        
        if(!strcmp(smsbuffer,"a")){
          Serial.println("LED VERDE ON");
          digitalWrite(led1, HIGH);        
          
          if (digitalRead(led1 == HIGH)){            
            sms.SendSMS("99xxxxxx", "LED VERDE IS ON");
            Serial.println("\nSMS sent OK");
         }
        }         
        
        
        if(!strcmp(smsbuffer,"b")){
          Serial.println("LED VERDE OFF");
          digitalWrite(led1,LOW);
          
          if (digitalRead(led2 == LOW)){            
             sms.SendSMS("99xxxxxx", "LED VERDE IS OFF");
             Serial.println("\nSMS sent OK");
          }
      }
//---------------------------------------------------------------------------------    

     delsms(); 
    }    
 
  }
};
 
void delsms(){
  Serial.println("Deletando SMS's Antigos...");
  for (int i=0; i<10; i++){  //do it max 10 times
      int pos=sms.IsSMSPresent(SMS_ALL);
      if (pos!=0){
        Serial.print("\nNovo SMS na posicao ");
        Serial.println(pos); 
        if (sms.DeleteSMS(pos)==1){    
          Serial.print("\nDeletando SMS da posicao ");
          Serial.println(pos);      
        }
        else
        {
          Serial.print("\nNão é possivel deletar SMS da posicao ");
          Serial.println(pos);         
        }
      }
    }
 
}

Exibições: 2653

Responder esta

Respostas a este tópico

Eae Cara blz? Então vi que você tem o arduino+ sim900 estou com um problema parecido com o seu, tenho a shield SIM900 v.1.1 + arduino UNO  e estou ligando em uma fonte externa com 2 AMP porém é informado o erro sim card is not inserted, já passou por isso? Como você fez sua ligação física e sua configuração nos arquivos? Se puder me ajudar, ficarei muito grato, Obrigado.

Tiago,

Eu uso essa placa em muitos projetos. Se ele está se comunicando e tá dizendo que o SIM card não está inserido então provavelmente o shield está funcionando. Tente com outros cartões, de outras operadoras.

Mauro

Mauro, Muito Obrigado por me responder, estou usando um chip da claro, será mesmo que pode ter alguma incompatibilidade de chips? Bom mas de qualquer forma vou tentar com o de outras operadoras e volto a postar aqui se de ser certo

Eu tive alguma amolação com chip da Claro. Daí prá frente só usei TIM.

hummmm., poutz cara vou tentar isso o mais rápido possivel!!!

Mas a Tim funciona?! rs

Prá vc ver... :)

Bom vou ver se consigo testar Hoje, Mas de qualquer forma muito obrigado Mauro;;;

Ah, Outra dúvida você teve que mudar os jumpers da placa? ja tentei de diversos jeitos, mas pelo que eu estava lendo quando se utiliza o SoftwareSerial, não é necessario Jumpear pois você cria um Fake com o Software serial? e somente quando você utiliza a LIB você precisa utilizar os jumpers?

Olha, eu não alterei nenhum jumper.

Cara, Consegui fazer o SIMCard responder troquei para o CHIP da TIM e me respondeu corretamente, acho que o problema era incompatibilidade com o CHIP da Claro.

Valeu pela ajuda!!!

Pois é... loucura, mas é verdade. A TIM é a melhor operadora prá brincar de Arduino...

Deve ser algum problema com essa biblioteca.. Uso chips da TIM,VIVO e CLARO  no SIM900D sem problema. Só não testei OI.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço