Quiero usar el sensor de humedad y temperatura HDT11 y hacer que un ventilador se active cuando la humedad supera cierto humbral. quiero usar el codigo es mas o menos como el que pongo en el ejemplo, pero no me reconoce cuando pongo "dht.readHumidity()" en cambio si pongo "dht.readTemperature()" si me lo reconoce. no se si soy lo suficientemente claro.
Quiero decir que no se me vuelv e narnaja la palabra dht.readHumidity y me da error al compilar.
en cambio cuando pongo dht.readTemperature si se pone naranja
void loop()
{
float h = dht.readHumidity(); //Esto es lo que no me reconoce
if(h >=Humedad)
{
digitalWrite(CoolerHumedad, HIGH); //Si la humedad supera el 80% se PRENDE el Cooler
}
if(h <Humedad){
digitalWrite(CoolerHumedad, LOW); //Si la humedad es inverior al 70% se APAGA el Cooler
}
if (time-t2 > tiempoTdht11)
{
t2 = time;
int err;
float humHDT11, tempHDT11;
if((err=dht11.read(humHDT11, tempHDT11))==0)
{
lcd.setCursor(0, 1);
lcd.print("Temp Ambiente:");
lcd.print(tempHDT11, 1);
lcd.print("C");
lcd.setCursor(13, 0);
lcd.print("H:");
lcd.print(humHDT11, 1);
lcd.print("%");
}
}
RTC_LCD_DS18B20_DHT11_1_0:90: error: expected primary-expression before '.' token
float h = DHT11.humidity;
^
exit status 1
expected primary-expression before '.' token
Estoy mirando el codigo de esta pagina y me gustaria hacer esto mismo pero con la humedad
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
int Temp=32; //Parámetro de encendido de ventilador
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
}
void loop() {
float t = dht.readTemperature();
//Serial.println("Temperatura: "); Se imprimen las variables
//Serial.println(t); Quitar comentarios si desea imprimir la temperatura
if (t >=Temp){
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
}
if(t < Temp){
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
}
delay(3000);
}
Lo quiero modificar para actuar en funcion de la humedad, en otros codigos vi que usan "dht.readHumidity" pero a mi no me funciona.
Que librería estas utilizando porque con esta no me genera ningún error DHT11
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
int Temp = 32; //Parámetro de encendido de ventilador
float
temperatura = 0,
humedad = 0;
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}
void loop() {
temperatura = dht.readTemperature();
humedad = dht.readHumidity();
if ( temperatura >= Temp) {
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}
if ( temperatura < Temp) {
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
}
delay(3000);
}
Ahora en el código tendrías que cambiar en los if ( temperatura >= Temp) por la lectura de humedad y establecer en el porcentaje de humedad que encienda y apague.
la libreria q me pasaste para poder usarla tuve que descomprimrla y comprimirla en zip... espero q asi este bien. Porque igualmente sigue sin funcionarme el codigo usando la libreria q me mandaste. se me ocurre q con un pantallazo te vas a dar cuenta facil de lo que digo
Surbyte, es q a la libreria que estoy usando, algun dia la descargue de algun lado... la instale, me funciono para lo que queria en ese momento y ahora no podría recordar el link de donde la descargue para poder ponerlo en el post.
Pero les consulto algo porque capas estoy equivocado, pero yo creo q readHumidity debería marcarse en naranja de la misma forma que readTemperature o no?
Xq al compilar el codigo el error me lo marca ahi.
Sera q instale mal la libreria q me paso swft? Xq asi como me la paso no la pude instalar.
Para instalar la librería debías descomprimirla y pegarla en C:\Users\TuUsuario\Documents\Arduino\libraries que es lo mismo que desde el IDE Arduino, si esta en esa carpeta esta bien instalada, en esa carpeta también puedes encontrar la que estas utilizando, la comprimes y la adjuntas aquí mismo.
Lo de que cambie de color a naranja no es el problema:
Cuando estos programas no le cambian el color a los procedimientos o funciones es porque estas usando algo que no reconoce y se supone es algo que defines tu. Como no es el caso, lo mas facil es comenzar a escribir
dht.
y ver que te sugiere el editor. normalmente aparecen varias opciones entre ellas la que corresponde a tu librería.
Hola, no sabia que el ide de Arduino tenia esa opción, la voy a buscar, porque la debo tener deshabilitada, ya que no me permite hacer uso de esa función y me parece muy interesante.