Olá, estou desenvolvendo um sistema para um carro cujo funcionamento consiste em: um sensor de presença PIR ao detectar movimento, através de um arduíno uno,  acionará um buzzer por alguns segundos depois enviará um SMS e em seguida acionará relés para ativar os vidros e o alarme do amovível. 

O problema é que não sei como fazer para enviar o SMS depois do buzzer e antes dos relés 

int rele_vidro1 = 10; //pino para saída vidro1
int rele_vidro2 = 11; //pino para saída vidro2
int buzzer = 9; // Pino para o buzzer
int PIR_1Pin = 7; // Pino de sinal do sensor PIR
int PIR_1 = 0; // representa o valor fornecido pelo PIR
int alarme = 8; //pino de sinal do alarme

// variavel de controle

void setup()
{
pinMode(buzzer, OUTPUT);
pinMode(rele_vidro1, OUTPUT);
pinMode(rele_vidro2, OUTPUT);
pinMode(PIR_1Pin, INPUT);
pinMode(alarme,OUTPUT);
}

void loop ()
{

PIR_1 = digitalRead(PIR_1Pin); // Faz leitura de sinal do sensor PIR 1 e atribui o valor lido em PIR_1

if (PIR_1 == HIGH)
{

//prog buzzer sos

for (int x=0; x<3; x++) {
digitalWrite(buzzer, HIGH); // sets the LED on
delay(150); // waits for 150ms
digitalWrite(buzzer, LOW); // sets the LED off
delay(100); // waits for 100ms
}
delay(100);
// 3 dahs
for (int x=0; x<3; x++) {
digitalWrite(buzzer, HIGH);
delay(400);
digitalWrite(buzzer, LOW);
delay(100);
}

delay(100);

for (int x=0; x<3; x++) {
digitalWrite(buzzer, HIGH); // sets the LED on
delay(150); // waits for 150ms
digitalWrite(buzzer, LOW); // sets the LED off
delay(100); // waits for 100ms
//fim prog buzzer sos
}

delay(5000);
digitalWrite(rele_vidro1, LOW);
digitalWrite(rele_vidro2, LOW);
delay(2000);
digitalWrite(rele_vidro1, HIGH);
digitalWrite(rele_vidro2, HIGH);
delay(2000);
digitalWrite(alarme, HIGH);
delay(1000);
digitalWrite(alarme, LOW);

}
}

Exibições: 859

Anexos

Responder esta

Respostas a este tópico

Não pq comecei a programar faz pouco tempo, e não entendo de gsm

Esse código envia o sms

http://pastebin.com/AMHE07Wj

é só adaptar para sua situação

(não esqueça de verificar o rx e tx do seu sim900)

eu devo colocar esse código depois do buzzer  ou posso coloca-lo no inicio ?

O q é o "código ASCII do ctrl + z é 26" ?

serve para indicar ao shield que o comando foi finalizado e o sms deve ser enviado.

obrigado amigo, deu certo aqui.

estou usando um relé pra energizar e desenergizar o arduino mas não sei por que sempre na primeira energização ele executa toda a sequencia sem haver movimento algum no sensor.

vc saber o por q, ou tem alguma ideia de como resolver?  talvez um comando pra ele memorizar o estado anterior?

Cara, talvez vc saiba me ajudar... Eu tenho um sim 900, ligado a um arduino uno.

Se eu alimento o arduino uno pela usb do pc ele funciona de boa, mais se eu alimento por uma fonte 9v 1a ele não manda mensagem... Você sabe o que pode ser?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço