Cadastrar usuário para execução de comando
Página 1 de 1
Cadastrar usuário para execução de comando
Boa tarde,
Estou desenvolvendo um projeto com arduino duemilanove e shield sim900D.
Já está quase tudo pronto no projeto, porém gostaria de obter ajuda quanto à seguinte questão:
Necessito cadastrar alguns números de telefone para que apenas esses números cadastrados executem os comandos, e caso o nº não esteja cadastrado informar o acesso negado no monitor.
Segue o código que estou utilizando:
#include
#define PINNUMBER ""
GSM gsmAccess;
GSM_SMS sms;
int powerkey = 5;
int statuspin = 6;
int pinState = 0;
String inputString = "";
char senderNumber[20];
int led1 = 13;
int led2 = 12;
char c;
boolean notConnected = true;
void setup()
{
inputString.reserve(200);
pinMode(powerkey, OUTPUT);
pinMode(statuspin, INPUT);
pinMode(pinState, INPUT);
Serial.begin(9600);
Serial.println("Serial Conectada");
pinState = digitalRead(statuspin);
if(pinState==LOW){
digitalWrite(powerkey, HIGH); // set the LED on
delay(2000);
digitalWrite(powerkey, LOW);
}
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER,false)==GSM_READY)
{
notConnected = false;
Serial.println("rede localizada");
}
else
{
Serial.println("Não conectado");
delay(100);
//pinState = LOW;
}
}
pinMode(led1, OUTPUT);
digitalWrite(led1, LOW);
pinMode(led2, OUTPUT);
digitalWrite(led2, LOW);
Serial.println("Aguardando novas mensagens");
}
void loop()
{
pinState = digitalRead(statuspin);
if(pinState==LOW){
digitalWrite(powerkey, HIGH); // set the LED on
delay(2000);
digitalWrite(powerkey, LOW);
} // If there are any SMSs available()
if (sms.available())
{
Serial.println("Mensagem recebida de:");
sms.remoteNumber(senderNumber, 20);
Serial.println(senderNumber);
if(sms.peek()=='A')
{
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
Serial.println("Portao Aberto");
if(digitalRead(led2)==LOW&&(led1)==HIGH);
{
Serial.println("Confirma Portao aberto");
sms.beginSMS(senderNumber);
sms.print("Portao Aberto");
sms.endSMS();
}
}
else if (sms.peek()=='F')
{
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
Serial.println("Portao fechado");
if(digitalRead(led1)==LOW&&(led2)==HIGH);
{
Serial.println("Confirma portao fechado");
sms.beginSMS(senderNumber);
sms.print("portao fechado");
sms.endSMS();
}
}
// Read message bytes and print them
while(c=sms.read())
Serial.print(c);
Serial.println("\nFIM DA MENSAGEM");
sms.flush();
Serial.println("MENSAGEM APAGADA");
Serial.println("\nCOMPLETO!\n");
sms.flush();
} //Fim da verificação de mensagens
delay(100);
}
Desde já agradeço a colaboração.
Abraço
Alencar
Estou desenvolvendo um projeto com arduino duemilanove e shield sim900D.
Já está quase tudo pronto no projeto, porém gostaria de obter ajuda quanto à seguinte questão:
Necessito cadastrar alguns números de telefone para que apenas esses números cadastrados executem os comandos, e caso o nº não esteja cadastrado informar o acesso negado no monitor.
Segue o código que estou utilizando:
#include
#define PINNUMBER ""
GSM gsmAccess;
GSM_SMS sms;
int powerkey = 5;
int statuspin = 6;
int pinState = 0;
String inputString = "";
char senderNumber[20];
int led1 = 13;
int led2 = 12;
char c;
boolean notConnected = true;
void setup()
{
inputString.reserve(200);
pinMode(powerkey, OUTPUT);
pinMode(statuspin, INPUT);
pinMode(pinState, INPUT);
Serial.begin(9600);
Serial.println("Serial Conectada");
pinState = digitalRead(statuspin);
if(pinState==LOW){
digitalWrite(powerkey, HIGH); // set the LED on
delay(2000);
digitalWrite(powerkey, LOW);
}
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER,false)==GSM_READY)
{
notConnected = false;
Serial.println("rede localizada");
}
else
{
Serial.println("Não conectado");
delay(100);
//pinState = LOW;
}
}
pinMode(led1, OUTPUT);
digitalWrite(led1, LOW);
pinMode(led2, OUTPUT);
digitalWrite(led2, LOW);
Serial.println("Aguardando novas mensagens");
}
void loop()
{
pinState = digitalRead(statuspin);
if(pinState==LOW){
digitalWrite(powerkey, HIGH); // set the LED on
delay(2000);
digitalWrite(powerkey, LOW);
} // If there are any SMSs available()
if (sms.available())
{
Serial.println("Mensagem recebida de:");
sms.remoteNumber(senderNumber, 20);
Serial.println(senderNumber);
if(sms.peek()=='A')
{
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
Serial.println("Portao Aberto");
if(digitalRead(led2)==LOW&&(led1)==HIGH);
{
Serial.println("Confirma Portao aberto");
sms.beginSMS(senderNumber);
sms.print("Portao Aberto");
sms.endSMS();
}
}
else if (sms.peek()=='F')
{
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
Serial.println("Portao fechado");
if(digitalRead(led1)==LOW&&(led2)==HIGH);
{
Serial.println("Confirma portao fechado");
sms.beginSMS(senderNumber);
sms.print("portao fechado");
sms.endSMS();
}
}
// Read message bytes and print them
while(c=sms.read())
Serial.print(c);
Serial.println("\nFIM DA MENSAGEM");
sms.flush();
Serial.println("MENSAGEM APAGADA");
Serial.println("\nCOMPLETO!\n");
sms.flush();
} //Fim da verificação de mensagens
delay(100);
}
Desde já agradeço a colaboração.
Abraço
Alencar
Alencar- Mensagens : 2
Data de inscrição : 08/09/2013
Tópicos semelhantes
» Substituto para comando "while"
» SIM908 GPS GSM GPRS
» Inserir um valor, ou um dado pelo usuário
» Automação residencial com reconhecimento de voz
» Enviar SMS e receber confirmação de comando efetuado
» SIM908 GPS GSM GPRS
» Inserir um valor, ou um dado pelo usuário
» Automação residencial com reconhecimento de voz
» Enviar SMS e receber confirmação de comando efetuado
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|