collapse

* Posts Recentes

Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]


Focos LED SMD por almamater
[16 de Dezembro de 2023, 14:12]


I Belive por dropes
[15 de Dezembro de 2023, 13:59]


Carga de corrente eletrónica ZPB30A1 60W por jm_araujo
[11 de Dezembro de 2023, 13:27]

Autor Tópico: Sensor de temp dois arduinos, do quarto para a sala via RF  (Lida 48992 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #135 em: 07 de Setembro de 2012, 22:33 »
Então ainda bem que era disso, assim ficou resolvido.
Agora o código deve funcionar sem grandes problemas.

há coisas... agora tou todo baralhado já com tanto código..

supostamente não era este para o emissor:
Código: [Seleccione]
#include <dht11.h>
#include <VirtualWire.h>
 
dht11 DHT11;
 
#define DHT11PIN 7
 
void setup()
 {
   Serial.begin(115200);
   pinMode(6,OUTPUT);
   vw_set_tx_pin(6);
   vw_set_ptt_inverted(true);
   vw_setup(2000);
 }
 
void loop()
 {
   Serial.println("\n");
 
  int chk = DHT11.read(DHT11PIN);
 
  Serial.print("Read sensor: ");
   switch (chk)
   {
     case DHTLIB_OK:
                Serial.println("OK");
                break;
     case DHTLIB_ERROR_CHECKSUM:
                Serial.println("Checksum error");
                break;
     case DHTLIB_ERROR_TIMEOUT:
                Serial.println("Time out error");
                break;
     default:
                Serial.println("Unknown error");
                break;
   }
 char data[2];
   data[0] = DHT11.temperature;
   data[1] = DHT11.humidity;
  Serial.print("Humidity (%): ");
   Serial.println(data[1]+0);
 
  Serial.print("Temperature (oC): ");
   Serial.println(data[0]+0);
   const char *msg = data;
      vw_send((uint8_t *)msg, strlen(msg));
   vw_wait_tx();
  delay(2000);
 }


e este para o receptor:


Código: [Seleccione]
#include <VirtualWire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 10, 5, 4, 3, 2);


void setup()
{
 
    lcd.begin(16, 2);
    Serial.begin(115200);
    pinMode(9,INPUT);
    vw_set_rx_pin(9); // Pino de recepção
    vw_set_ptt_inverted(true);
    vw_setup(2000);
    vw_rx_start(); // Necessário para começar a receber informação
}

void loop()
{
 
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)) // Caso chegue alguma mensagem ao receptor
    {
int i;
        digitalWrite(13, true); // Esta parte é opcional, eu utilizei para testar e ver se estava a receber alguma coisa
for (i = 0; i < buflen; i++) // Basicamente isto vai repetir para cada byte recebido e vai guardar a informação numa array de caracteres
{
          if (i==1){
             lcd.setCursor(0,0);
             lcd.print("Humi ");
             lcd.print(buf[i], DEC);
             lcd.print(" %");
          }
          if (i==0){
             lcd.setCursor(0,1);
             lcd.print("Temp ");
             lcd.print(buf[i], DEC);
             lcd.print(" C");
  }
}
            Serial.println(String("Humidade: " + String(buf[1],DEC) + "%; Temperatura: " + String(buf[0],DEC) + "ºC"));
            digitalWrite(13, false);
    }
    }

é que com isto não funciona no lcd..
« Última modificação: 07 de Setembro de 2012, 22:35 por r16 »

Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #136 em: 07 de Setembro de 2012, 22:39 »
O serial funciona?
O Hello World funciona?
Tens as ligações iguais às do exemplo? Senão tens que alterar isto:
LiquidCrystal lcd(12, 10, 5, 4, 3, 2);

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #137 em: 07 de Setembro de 2012, 22:46 »
O serial funciona?
O Hello World funciona?
Tens as ligações iguais às do exemplo? Senão tens que alterar isto:
LiquidCrystal lcd(12, 10, 5, 4, 3, 2);

no serial do emissor:

Temperature (oC): 30


Read sensor: OK
Humidity (%): 48
Temperature (oC): 30


Read sensor: OK
Humidity (%): 48
Temperature (oC): 30


Read sensor: OK
Humidity (%): 48
Temperature (oC): 30


no serial do receptor:

Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC
Humidade: 48%; Temperatura: 30ºC

o hello world funciona perfeitamente agora com o potenciometro e aparece o tempo em baixo..

sim mudei os pinos correctamente..

Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #138 em: 07 de Setembro de 2012, 22:59 »
Tenta este código que eu tinha posto na página 7 deste tópico, no receptor:
Código: [Seleccione]
#include <VirtualWire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int ledPin = 10;

void setup()
{
  pinMode(ledPin, OUTPUT);
  lcd.begin(16, 2);
  Serial.begin(115200);
  pinMode(9,INPUT);
  vw_set_rx_pin(9); // Pino de recepção
  vw_set_ptt_inverted(true);
  vw_setup(2000);
  vw_rx_start(); // Necessário para começar a receber informação
}

void loop()
{
  analogWrite(ledPin, 60);
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;

  if (vw_get_message(buf, &buflen)) // Caso chegue alguma mensagem ao receptor
  {
     int temperatura = 0;
     int humidade = 0;
     digitalWrite(13, HIGH); // Esta parte é opcional, eu utilizei para testar e ver se estava a receber alguma coisa
     for (int i = 0; i < buflen; i++) // Basicamente isto vai repetir para cada byte recebido e vai guardar a informação numa array de caracteres
     {
        if (i==0) temperatura = (buf[0], DEC);
        else if (i==1) humidade = (buf[1],DEC);
     }
     lcd.clear();
     lcd.setCursor(0,0);
     lcd.print("Humi ");
     lcd.print(String(humidade));
     lcd.print(" %");
     lcd.setCursor(0,1);
     lcd.print("Temp ");
     lcd.print(String(temperatura));
     lcd.print(" C");
     Serial.println(String("Humidade: " + String(humidade) + "%; Temperatura: " + String(temperatura) + "ºC"));
     digitalWrite(13, LOW); // Esta parte é opcional, eu utilizei para testar e ver se estava a receber alguma coisa
  }
}

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #139 em: 07 de Setembro de 2012, 23:49 »
Tenta este código que eu tinha posto na página 7 deste tópico, no receptor:
Código: [Seleccione]
#include <VirtualWire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int ledPin = 10;

void setup()
{
  pinMode(ledPin, OUTPUT);
  lcd.begin(16, 2);
  Serial.begin(115200);
  pinMode(9,INPUT);
  vw_set_rx_pin(9); // Pino de recepção
  vw_set_ptt_inverted(true);
  vw_setup(2000);
  vw_rx_start(); // Necessário para começar a receber informação
}

void loop()
{
  analogWrite(ledPin, 60);
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;

  if (vw_get_message(buf, &buflen)) // Caso chegue alguma mensagem ao receptor
  {
     int temperatura = 0;
     int humidade = 0;
     digitalWrite(13, HIGH); // Esta parte é opcional, eu utilizei para testar e ver se estava a receber alguma coisa
     for (int i = 0; i < buflen; i++) // Basicamente isto vai repetir para cada byte recebido e vai guardar a informação numa array de caracteres
     {
        if (i==0) temperatura = (buf[0], DEC);
        else if (i==1) humidade = (buf[1],DEC);
     }
     lcd.clear();
     lcd.setCursor(0,0);
     lcd.print("Humi ");
     lcd.print(String(humidade));
     lcd.print(" %");
     lcd.setCursor(0,1);
     lcd.print("Temp ");
     lcd.print(String(temperatura));
     lcd.print(" C");
     Serial.println(String("Humidade: " + String(humidade) + "%; Temperatura: " + String(temperatura) + "ºC"));
     digitalWrite(13, LOW); // Esta parte é opcional, eu utilizei para testar e ver se estava a receber alguma coisa
  }
}

depois de varios testes aqui com o pedrock pelo msn nao se chegou a conclusao nenhuma.

nao se entende porque é que o codigo com o pino PWR funciona MAS MAL...
ou seja ainda aparece a primeira vez a temperatura e humidade bem.. so que depois do loop faz caracteres malucos..

no example hello world.. a contagem nao aparecia...


agora comprei o potenciometro e é o inverso..

o codigo que o pedro postou... so aparece caracteres malucos,,,
e o hello world funciona perfeitamente bem e com a contagem a aparecer sem caracteres.

enfim...

Offline kast

  • Mini Robot
  • *
  • Mensagens: 868
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #140 em: 07 de Setembro de 2012, 23:51 »
eu sei a solução pra isso ...


VAI À BRUXA !!!!!!!!!!!!!!!!!!!!!

LOOOOOOOOL  ;D ;D ;D
Os electrões são nossos amigos !!! :D

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #141 em: 07 de Setembro de 2012, 23:55 »
Experimenta os primeiros códigos que postámos aqui que não funcionaram antes. PWM não faz o mesmo que um potênciómetro... O potênciómetro é um divisor de tensão, enquanto que o pino PWM apenas envia pulsos. O problema pode estar ai, resolves se fizeres um divisor de tensão, assim não precisas de usar potênciómetro.

Quanto ao que se passa agora, onde é que aparecem os caracteres?

Se o hello world funciona, penso que o problema do lcd já foi ultrapassado e agora é apenas com o código... Digo eu. Experimenta outros códigos exemplo para ter a certeza que o problema já não está no lcd.

Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #142 em: 07 de Setembro de 2012, 23:58 »
Ele testou o exemplo do serial e também funcionou sem problemas.

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #143 em: 07 de Setembro de 2012, 23:59 »
Então experimenta todos os códigos que postámos antes... Agora o erro já não deve estar no lcd.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #144 em: 08 de Setembro de 2012, 02:36 »
bom descobri o problema..

então é assim

o example original do hello world tem esta linha:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

eu tinha modificado essa linha conforme tinha ligado no arduino ou seja assim:
LiquidCrystal lcd(12, 10, 5, 4, 3, 2);

e com esta linha o hello world funcionou com o potenciometro.. logo tambem deveria funcionar com o codigo do receptor...

entao decidi por carolice, trocar os pinos de 10 para 11..
e cheguei a conclusao que funciona...
lol, olhem que há coisas