Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
luara.brandao

ERRO SKETCH SENSOR DE UMIDADE

Pergunta

Faço biologia e não entendo quase NADA de programação. Pela primeira vez estou tentando montar um sensor de CO e umidade para uma projeto. E meu sketch está dando VÁRIOS erros ao qual não estou conseguindo resolver para poder compilar. Alguém poderia me ajudar? Sei que é muita coisa mas é que sou bem leiga em programação, mesmo.

 

SKETCH:

 

#include <dht.h>
#include <SPI.h>
#include <SD.h>


const int PINO_SENSOR = 1;
const int PINO_CARTAO_SD = 4;

#define PINODHT 2     // qual pino usaremos para comunicação com DHT
#define TIPODHT DHT22   // qual DHT vamos usar. Nocaso, um DHT22(AM2302/ AM2321)
 

const char FILENAME[] = "test4.txt";

void setup() {
  Serial.begin(9600);

dht.begin ();

  Serial.print("Initializing SD card...");

  if (!SD.begin(PINO_CARTAO_SD)) {
    Serial.println("initialization failed!");
    return;
  }
 
  Serial.println("initialization done.");
}

void readFile() {
  File myFile = SD.open(FILENAME);
 
  if (!myFile) {
    Serial.println("error opening test.txt");
    return;
  }
 
  Serial.println(FILENAME);

  while (myFile.available()) {
    Serial.write(myFile.read());
  }

  myFile.close();
}

void writeSensorDataToFile() {
  int quantidadeCO = analogRead(PINO_SENSOR);
 
  File myFile = SD.open(FILENAME, FILE_WRITE);

  if (!myFile) {
    Serial.println("error opening test.txt");  
    return;
  }

  Serial.print("Writing to test.txt...");
 
  myFile.println("quantidadeCo: ");

  myFile.println(quantidadeCO);
 
  myFile.close();
 
  Serial.println("done.");
}


void loop() {
  writeSensorDataToFile();
  readFile();
 
  delay(60000);
}


delay(60000);
 
  // Ler a temperatura ou humidade
  float h = dht.readHumidity();
  // Lê a temperatura em Celsius (padrão)
  float t = dht.readTemperature();

  }
 
  if (isnan(h) || isnan(t)
  DHT.print("Failed to read from DHT sensor!");
    return;

  DHT.print("Humidity: ");
  DHT.print(h);
  DHT.print(" %");
  DHT.print("Temperature: ");
  DHT.print(t);
  DHT.print(" *C ");
  }

 

 

 

 

ERRO:

Arduino: 1.6.13 (Windows XP), Board: "Arduino/Genuino Uno"

C:\Documents and Settings\Vitoria\My Documents\Arduino\SKETCK_OWNER\SKETCK_OWNER.ino: In function 'void setup()':

SKETCK_OWNER:18: error: expected unqualified-id before '.' token

 dht.begin ();

    ^

C:\Documents and Settings\Vitoria\My Documents\Arduino\SKETCK_OWNER\SKETCK_OWNER.ino: At global scope:

SKETCK_OWNER:77: error: expected constructor, destructor, or type conversion before '(' token

 delay(60000);

      ^

SKETCK_OWNER:80: error: expected primary-expression before '.' token

   float h = dht.readHumidity();

                ^

SKETCK_OWNER:82: error: expected primary-expression before '.' token

   float t = dht.readTemperature();

                ^

SKETCK_OWNER:84: error: expected unqualified-id before 'if'

   if (isnan(h) || isnan(t)

   ^

SKETCK_OWNER:86: error: expected unqualified-id before 'return'

     return;

     ^

SKETCK_OWNER:88: error: expected declaration before '}' token

     }

     ^

exit status 1
expected unqualified-id before '.' token

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

Busca algum tutorial em cima do modelo sensor.

 

Apenas a leitura / exibição da umidade por exemplo.

 

Qual modelo seria?

No blog do flipflop tem um tutorial 

http://www.filipeflop.com/pd-aa99a-sensor-de-umidade-do-solo-higrometro.html

 

 

Tutorial em cima do pd aa99a

http://blog.filipeflop.com/sensores/monitore-sua-planta-usando-arduino.html

 

 

De qualquer forma se você é leiga, seria interessante começar pelo começo.

Estudar um pouco de C

E fazer exemplos mais simples no Arduino. (Piscar Led seria o 'Olá mundo' ?!)

Fazer um farol com tempos ? (Led: Azul, Verde, Amarelo)

 

Se abstrairmos o problema basicamente precisamos.

 

Ler o resultado do termo metro.

Então se ocorrer a comunicação com o sensor... Sucesso :tounge_wink:

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ivanjrx
      bom pessoal estou montando um projeto em Arduíno mais não entendo quase nada de php, eu queria fazer um botão on-off no mesmo botão, para quando pressionar ligar e para quando soltar desligar parecido com botão de voz do whatsApp quando solta para de gravar nesse caso eu quero pra quando soltar desligar. no projeto já adicionei um botão submit mais queria que esse mesmo botão fizesse essa as duas funções igual descrevo acima. 
      <html> <head> <title>Arduino Controlled Based PHP</title> </head> <body> <?php echo "<p>Control Page</p><p>"; $port = fopen("COM7", "w+"); sleep(0); ?> <br> <form action="index.php" method="POST"> <input type="hidden" name="turn" value="on" /> <input type="Submit" value="on"> </form> <form action="index.php" method="POST"> <input type="hidden" name="turn" value="off" /> <input type="Submit" value="off"> </form> <?php if ($_POST['turn']=="on") { echo "Turned on"; fwrite($port, "n"); } if ($_POST['turn']=="off") { echo "Turned off"; fwrite($port, "f"); } fclose($port); ?> </body> </html>  
    • Por Leidsman217
      Ola a todos, tenho uma duvida quanto a programação de Arduíno. Gostaria de saber se o seguinte código foi escrito de forma correta  ? Agradeço desde já a atenção de todos !
       
         
    • Por JPMOFARDINI
      Boa noite,
       
      Fiz um código no Arduíno está funcionando tudo normalmente só gostaria de saber como eu faço um comando para desligar e um para ligar todos os reles
       
      #include <IRremote.h>
      const int RECV_PIN = 2; // INCUI O PINO QUE SERÁ USADO NO LED RECEPTOR
      IRrecv irrecv(RECV_PIN);
      decode_results results;
      const int RelayIn1Pin = 3; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN1
      const int RelayIn2Pin = 4; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN2
      const int RelayIn3Pin = 5; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN3
      const int RelayIn4Pin = 6; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN4
      const int RelayIn5Pin = 7; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN5
      const int RelayIn6Pin = 8; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN6
      const int RelayIn7Pin = 9; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN7
      const int RelayIn8Pin = 10; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN8
      int statusRelayIn1Pin = 0;
      int statusRelayIn2Pin = 0;
      int statusRelayIn3Pin = 0;
      int statusRelayIn4Pin = 0;
      int statusRelayIn5Pin = 0;
      int statusRelayIn6Pin = 0;
      int statusRelayIn7Pin = 0;
      int statusRelayIn8Pin = 0;
      void setup() {
        irrecv.enableIRIn();
        irrecv.blink13(true);
        pinMode(RelayIn1Pin, OUTPUT); //DEFINE O PINO COMO SAÍDA
        pinMode(RelayIn1Pin, INPUT_PULLUP); //DEFINE O PINO COMO ENTRADA / "_PULLUP" É PARA ATIVAR O RESISTOR INTERNO
        //DO ARDUINO PARA GARANTIR QUE NÃO EXISTA FLUTUAÇÃO ENTRE 0 (LOW) E 1 (HIGH)
        pinMode(RelayIn1Pin, HIGH); //MÓDULO RELÉ INICIA DESLIGADO
        pinMode(RelayIn2Pin, OUTPUT);
        pinMode(RelayIn2Pin, INPUT_PULLUP);
        pinMode(RelayIn2Pin, HIGH);
        pinMode(RelayIn3Pin, OUTPUT);
        pinMode(RelayIn3Pin, INPUT_PULLUP);
        pinMode(RelayIn3Pin, HIGH);
        pinMode(RelayIn4Pin, OUTPUT);
        pinMode(RelayIn4Pin, INPUT_PULLUP);
        pinMode(RelayIn4Pin, HIGH);
        pinMode(RelayIn5Pin, OUTPUT);
        pinMode(RelayIn5Pin, INPUT_PULLUP);
        pinMode(RelayIn5Pin, HIGH);
        pinMode(RelayIn6Pin, OUTPUT);
        pinMode(RelayIn6Pin, INPUT_PULLUP);
        pinMode(RelayIn6Pin, HIGH);
        pinMode(RelayIn7Pin, OUTPUT);
        pinMode(RelayIn7Pin, INPUT_PULLUP);
        pinMode(RelayIn7Pin, HIGH);
        pinMode(RelayIn8Pin, OUTPUT);
        pinMode(RelayIn8Pin, INPUT_PULLUP);
        pinMode(RelayIn8Pin, HIGH);
      }
      void loop() {
        if (irrecv.decode(&results)) {
          switch (results.value) {
            case 0x807F728D: //Keypad button "1"
              if ((digitalRead(RelayIn1Pin) == HIGH) && (statusRelayIn1Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                //VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
                digitalWrite(RelayIn1Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
                statusRelayIn1Pin = 1; //VARIÁVEL RECEBE O VALOR 1
                delay(200); //INTERVALO DE 200 MILISSEGUNDOS
              } else { //SENÃO, FAZ
                if ((digitalRead(RelayIn1Pin) == LOW) && (statusRelayIn1Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                  //VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
                  digitalWrite(RelayIn1Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
                  statusRelayIn1Pin = 0; //VARIÁVEL RECEBE O VALOR 0
                  delay(200); //INTERVALO DE 200 MILISSEGUNDOS
                }
              }
          }
           switch (results.value) {
            case 0x807FB04F: //Keypad button "2"
              if ((digitalRead(RelayIn2Pin) == HIGH) && (statusRelayIn2Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                //VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
                digitalWrite(RelayIn2Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
                statusRelayIn2Pin = 1; //VARIÁVEL RECEBE O VALOR 1
                delay(200); //INTERVALO DE 200 MILISSEGUNDOS
              } else { //SENÃO, FAZ
                if ((digitalRead(RelayIn2Pin) == LOW) && (statusRelayIn2Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                  //VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
                  digitalWrite(RelayIn2Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
                  statusRelayIn2Pin = 0; //VARIÁVEL RECEBE O VALOR 0
                  delay(200); //INTERVALO DE 200 MILISSEGUNDOS
                }
              }
          }
           switch (results.value) {
            case 0x807F30CF: //Keypad button "3"
              if ((digitalRead(RelayIn3Pin) == HIGH) && (statusRelayIn3Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                //VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
                digitalWrite(RelayIn3Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
                statusRelayIn3Pin = 1; //VARIÁVEL RECEBE O VALOR 1
                delay(200); //INTERVALO DE 200 MILISSEGUNDOS
              } else { //SENÃO, FAZ
                if ((digitalRead(RelayIn3Pin) == LOW) && (statusRelayIn3Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                  //VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
                  digitalWrite(RelayIn3Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
                  statusRelayIn3Pin = 0; //VARIÁVEL RECEBE O VALOR 0
                  delay(200); //INTERVALO DE 200 MILISSEGUNDOS
                }
              }
          }
           switch (results.value) {
            case 0x807F52AD: //Keypad button "4"
              if ((digitalRead(RelayIn4Pin) == HIGH) && (statusRelayIn4Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                //VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
                digitalWrite(RelayIn4Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
                statusRelayIn4Pin = 1; //VARIÁVEL RECEBE O VALOR 1
                delay(200); //INTERVALO DE 200 MILISSEGUNDOS
              } else { //SENÃO, FAZ
                if ((digitalRead(RelayIn4Pin) == LOW) && (statusRelayIn4Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                  //VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
                  digitalWrite(RelayIn4Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
                  statusRelayIn4Pin = 0; //VARIÁVEL RECEBE O VALOR 0
                  delay(200); //INTERVALO DE 200 MILISSEGUNDOS
                }
              }
          }
           switch (results.value) {
            case 0x807F906F: //Keypad button "5"
              if ((digitalRead(RelayIn5Pin) == HIGH) && (statusRelayIn5Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                //VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
                digitalWrite(RelayIn5Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
                statusRelayIn5Pin = 1; //VARIÁVEL RECEBE O VALOR 1
                delay(200); //INTERVALO DE 200 MILISSEGUNDOS
              } else { //SENÃO, FAZ
                if ((digitalRead(RelayIn5Pin) == LOW) && (statusRelayIn5Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                  //VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
                  digitalWrite(RelayIn5Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
                  statusRelayIn5Pin = 0; //VARIÁVEL RECEBE O VALOR 0
                  delay(200); //INTERVALO DE 200 MILISSEGUNDOS
                }
              }
          }
           switch (results.value) {
            case 0x807F10EF: //Keypad button "6"
              if ((digitalRead(RelayIn6Pin) == HIGH) && (statusRelayIn6Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                //VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
                digitalWrite(RelayIn6Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
                statusRelayIn6Pin = 1; //VARIÁVEL RECEBE O VALOR 1
                delay(200); //INTERVALO DE 200 MILISSEGUNDOS
              } else { //SENÃO, FAZ
                if ((digitalRead(RelayIn6Pin) == LOW) && (statusRelayIn6Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                  //VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
                  digitalWrite(RelayIn6Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
                  statusRelayIn6Pin = 0; //VARIÁVEL RECEBE O VALOR 0
                  delay(200); //INTERVALO DE 200 MILISSEGUNDOS
                }
              }
          }
           switch (results.value) {
            case 0x807F629D: //Keypad button "7"
              if ((digitalRead(RelayIn7Pin) == HIGH) && (statusRelayIn7Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                //VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
                digitalWrite(RelayIn7Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
                statusRelayIn7Pin = 1; //VARIÁVEL RECEBE O VALOR 1
                delay(200); //INTERVALO DE 200 MILISSEGUNDOS
              } else { //SENÃO, FAZ
                if ((digitalRead(RelayIn7Pin) == LOW) && (statusRelayIn7Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                  //VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
                  digitalWrite(RelayIn7Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
                  statusRelayIn7Pin = 0; //VARIÁVEL RECEBE O VALOR 0
                  delay(200); //INTERVALO DE 200 MILISSEGUNDOS
                }
              }
          }
           switch (results.value) {
            case 0x807FA05F: //Keypad button "8"
              if ((digitalRead(RelayIn8Pin) == HIGH) && (statusRelayIn8Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                //VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
                digitalWrite(RelayIn8Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
                statusRelayIn8Pin = 1; //VARIÁVEL RECEBE O VALOR 1
                delay(200); //INTERVALO DE 200 MILISSEGUNDOS
              } else { //SENÃO, FAZ
                if ((digitalRead(RelayIn8Pin) == LOW) && (statusRelayIn8Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
                  //VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
                  digitalWrite(RelayIn8Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
                  statusRelayIn8Pin = 0; //VARIÁVEL RECEBE O VALOR 0
                  delay(200); //INTERVALO DE 200 MILISSEGUNDOS
                }
              }
          }
          
          irrecv.resume();
        }
      }
       
       
       
      Se alguém puder me ajudar agradeço desde já!
    • Por arduinoeletro
      Pessoal, boa tarde. 
       
      Sou iniciante em projetos de Arduino e comprei um kit para iniciantes Kit de Arduino para iniciantes ( coloquei o link aqui para vocês me ajudarem), mas não achei tão fácil quanto havia lido anteriormente. Vocês tem alguma dica para um iniciante bem iniciante mesmo?
       
      Me interesso bastante pela área de robótica e inovação, mas ainda não estou nem engatinhando no Arduino. 
       
       
    • Por Mateusrosa1939
      Toda hora faço esse programa para arduino e coloco a variável para ler o. Valor e imprimir a operação mas está dando erro será quem alguém poderia me auxiliar? Arquivo está em Word 

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.