Projecto escolar – Casa autonoma

Início Fóruns Arduino Projecto escolar – Casa autonoma

Este tópico contém 3 respostas, tem 2 utilizadores, com a última actualização feita por  Rui Silva Há 5 meses, 2 semanas.

A visualizar 4 artigos - de 1 a 4 (de um total de 4)
  • Autor
    Artigos
  • #399 Resposta

    Gonçalo

    Ola a todos
    Precisava de uma ajudinha de alguem que perceba de arduino. Eu precisava de juntar o código de vários sensores para fazer uma casa autonoma.

    #430 Resposta

    ArduinoPortugal.pt
    Administrador

    Olá Gonçalo, explica-nos que sensores queres adicionar ao teu projeto. Talvez possamos ajudar

    #431 Resposta

    Rui Silva

    Bom dia,

    Precisava de ajuda se possível da vossa parte.
    Tenho o seguinte programa;

    #include <call.h>
    #include <gps.h>
    #include <GSM.h>
    #include <HWSerial.h>
    #include <inetGSM.h>
    #include <LOG.h>
    #include <SIM900.h>
    #include <sms.h>
    #include <Streaming.h>
    #include <WideTextFinder.h>

    SMSGSM sms;
    CallGSM call;

    char numero[20] = “00351911092891”;
    char numero1[20] = “00351932800737”;
    char mensagem[30] = “Alarme Intrusao”;
    char mensagem1[30] = “Alarme Incendio”;
    char mensagem2[30] = “Falha Energia”;

    boolean started = false;

    char smsbuffer[160];
    char n[20];

    boolean estado = LOW;

    String msg_esperada(“Portao Pedonal”);

    String msg_esperada1(“Corte Energia”);

    String msg_esperada2(“Luz Frente”);

    String msg_esperada3(“Luz Traz”);

    String msg_esperada4(“Abrir Estores RC”);

    String msg_esperada5(“Fechar Estores RC”);

    String msg_esperada6(“Abrir Estores 1”);

    String msg_esperada7(“Fechar Estores 1”);

    int FOG = 7;
    int ALR = 8;
    int ENE = 9;

    void setup()
    {
    pinMode(0, OUTPUT);
    digitalWrite(0, HIGH);
    pinMode(1, OUTPUT);
    digitalWrite(1, HIGH);
    pinMode(10, OUTPUT);
    digitalWrite(10, HIGH);
    pinMode(11, OUTPUT);
    digitalWrite(11, HIGH);
    pinMode(12, OUTPUT);
    digitalWrite(12, HIGH);
    pinMode(13, OUTPUT);
    digitalWrite(13, HIGH);
    pinMode(A0, OUTPUT);
    digitalWrite(A0, HIGH);
    pinMode(A1, OUTPUT);
    digitalWrite(A1, HIGH);
    pinMode(A2, OUTPUT);
    digitalWrite(A2, HIGH);
    pinMode(A3, OUTPUT);
    digitalWrite(A3, HIGH);
    pinMode(A4, OUTPUT);
    digitalWrite(A4, HIGH);
    pinMode(A5, OUTPUT);
    digitalWrite(A5, HIGH);
    pinMode(7, INPUT);
    pinMode(8, INPUT);
    pinMode(9, INPUT);

    //Inicializa a serial
    Serial.begin(9600);
    Serial.print(“Ligando shield GSM SIM900. “);
    liga_desliga_GSMShield();
    Serial.println(“Testando GSM shield…”);
    //Comunicacao com o Shield GSM a 2400 bauds
    if (gsm.begin(2400))
    {
    Serial.println(“nstatus=READY”);
    started = true;
    }
    else Serial.println(“nstatus=IDLE”);
    {
    Serial.println(“Discando….”);
    //Efetua a chamada formato call.Call(<numero a ser chamado>)
    call.Call(“00351911092891”);
    Serial.println(“Ligacao Efetuada!”);
    delay(20000);
    Serial.println(“Encerrando a ligacao…”);
    call.HangUp();
    }
    }
    void loop()
    {
    if (started)
    {
    //Aguarda SMS
    Serial.println(“Aguardando SMS…”);
    if (gsm.readSMS(smsbuffer, 160, n, 20))
    {
    String msg_recebida(smsbuffer);
    msg_recebida.trim();
    msg_esperada.trim();
    if (msg_recebida == msg_esperada)
    {
    estado = !estado;
    Serial.println(“SMS Recebido! Alterando estado da porta 10….”);
    digitalWrite(10, LOW);
    delay(3000);
    }
    delay(1000);
    digitalWrite(10, HIGH);
    if (msg_recebida == msg_esperada1)
    {
    estado = !estado;
    Serial.println(“SMS Recebido! Alterando estado da porta 11….”);
    digitalWrite(11, LOW);
    delay(3000);
    }
    delay(1000);
    digitalWrite(11, HIGH);
    if (msg_recebida == msg_esperada2)
    {
    estado = !estado;
    Serial.println(“SMS Recebido! Alterando estado da porta 12….”);
    digitalWrite(12, LOW);
    delay(10000);
    }
    delay(1000);
    digitalWrite(12, HIGH);
    if (msg_recebida == msg_esperada3)
    {
    estado = !estado;
    Serial.println(“SMS Recebido! Alterando estado da porta 13….”);
    digitalWrite(13, LOW);
    delay(10000);
    }
    delay(1000);
    digitalWrite(13, HIGH);
    if (msg_recebida == msg_esperada4)
    {
    estado = !estado;
    Serial.println(“SMS Recebido! Alterando estado da porta A0….”);
    digitalWrite(A0, LOW);
    delay(10000);
    }
    delay(1000);
    digitalWrite(A0, HIGH);
    if (msg_recebida == msg_esperada5)
    {
    estado = !estado;
    Serial.println(“SMS Recebido! Alterando estado da porta A1….”);
    digitalWrite(A1, LOW);
    delay(10000);
    }
    delay(1000);
    digitalWrite(A1, HIGH);
    if (msg_recebida == msg_esperada6)
    {
    estado = !estado;
    Serial.println(“SMS Recebido! Alterando estado da porta A2….”);
    digitalWrite(A2, LOW);
    delay(10000);
    }
    delay(1000);
    digitalWrite(A2, HIGH);
    if (msg_recebida == msg_esperada7)
    {
    estado = !estado;
    Serial.println(“SMS Recebido! Alterando estado da porta A3….”);
    digitalWrite(A3, LOW);
    delay(10000);
    }
    delay(1000);
    digitalWrite(A3, HIGH);
    }
    if(digitalRead(ALR) == HIGH)
    { //Envia um SMS para o numero selecionado
    if (sms.SendSMS(numero, mensagem))
    delay(1000);
    (sms.SendSMS(numero1, mensagem));
    Serial.println(“SMS Alarme enviado!”);
    digitalWrite(A4, LOW);
    delay(10000);
    digitalWrite(A4, HIGH);
    delay(10000);
    }
    if(digitalRead(ENE) == HIGH)
    { //Envia um SMS para o numero selecionado
    if (sms.SendSMS(numero, mensagem2))
    delay(1000);
    (sms.SendSMS(numero1, mensagem2));
    Serial.println(“SMS Corte Energia enviado!”);
    delay(10000);
    }
    if(digitalRead(FOG) == HIGH)
    { //Envia um SMS para o numero selecionado
    if (sms.SendSMS(numero, mensagem1))
    delay(1000);
    (sms.SendSMS(numero1, mensagem1));
    Serial.println(“SMS Incendio enviado!”);
    digitalWrite(A5, LOW);
    delay(10000);
    }
    digitalWrite(A5, HIGH);
    delay(10000);
    }
    }

    void liga_desliga_GSMShield()
    {
    Serial.print(F(“Aguarde…”));
    pinMode(6, OUTPUT);
    digitalWrite(6, LOW);
    delay(1000);
    digitalWrite(6, HIGH);
    delay(1000);
    Serial.println(F(“OK!”));
    digitalWrite(6, LOW);
    delay(500);
    }

    Estou a utilizar um arduino mega e uma placa gsm sim 900. O problema é que a ultima mensagem (“SMS Incendio enviado!”); está sempre a ser enviada para o telemóvel mesmo sem ativar a entrada correspondente.
    Gostaria se possível de ter a vossa ajuda.

    Cumprimentos,

    Rui Silva

    #543 Resposta

    Rui Silva

    Boas,

    Por Favor apaga o meu artigo.

    Rui Silva

A visualizar 4 artigos - de 1 a 4 (de um total de 4)
Resposta a: Projecto escolar – Casa autonoma
A sua informação