Arduino - Sensor DHT11 y Ventilador

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 5 puestos en Arduino (en relación al último mes)
Gráfica de Arduino

Sensor DHT11 y Ventilador

Publicado por Rodolfo (2 intervenciones) el 03/12/2018 14:57:26
Buenas amigos, soy nuevo en el foro quisiera pedir su ayuda con un proyecto en Arduino el cual tiene un sensor de llama un sensor de temperatura y humedad DHT11 tambien un display 16x2 con I2C.

El display muestra la temperatura, y al detectar fuego se enciende un led junto a un buzzer tambien muestra un mensaje de alerta.

Mi duda es y donde necesito de su consejo, tengo que configurar un usb que encendera un ventilador cuando la temperatura sobrepase un determinado valor.

este es mi codigo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <DHT.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f, 16, 2);
 
int SENSOR=2;
int temp=0;
int BUZ=10;
int USB=8;
const int LED=12;
const int FLAME = 13;
 
 
DHT dht(SENSOR,DHT11);
 
void setup() {
  pinMode(BUZ,OUTPUT);
  pinMode(USB,OUTPUT);
  pinMode(LED, OUTPUT);
  pinMode(FLAME, INPUT);
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  dht.begin();
 
}
 
void loop() {
 
  temp = dht.readTemperature();
 
  if (temp >= 27)
  {
    digitalWrite(USB,HIGH);
  }
 
  if (digitalRead(FLAME) == HIGH)
  {
    digitalWrite(LED,HIGH);
    digitalWrite(BUZ,HIGH);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(" !!  Alerta  !! ");
    lcd.setCursor(0,1);
    lcd.print(" !!  Fuego  !! ");
    digitalWrite(LED,LOW);
    digitalWrite(BUZ,LOW);
    delay(500);
  }
   else
   {
    digitalWrite(LED,LOW);
    digitalWrite(BUZ,LOW);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(" Temperatura ");
    lcd.setCursor(0,1);
    lcd.print(temp);
   }
}


De ante mano muchas gracias, espero me puedan ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 40
Ha mantenido su posición en Arduino (en relación al último mes)
Gráfica de Arduino

Sensor DHT11 y Ventilador

Publicado por foroplus (18 intervenciones) el 03/12/2018 18:35:00
Yo eliminaría estas dos líneas de código por dos razones:
digitalWrite(LED,LOW);
digitalWrite(BUZ,LOW);

La primera es que no das tiempo casi a activar el led, hacer sonar el buzzer, e imprimir la alerta en la pantalla, ya que inmediatamente después de hacerlo los vuelves a apagar.
O al menos apágalos después del delay(500) que yo aumentaría, ya que medio segundo es muy poco.

La segunda razón, es que tampoco hay esa necesidad, ya que al salir del "if", si no está activado el pin "FLAME" que da la alerta, en el siguiente bucle el "else" los apagará y volverá a poner la pantalla en situación de normalidad.
Para mí esas dos líneas no sólo son innecesarias, sino que te fastidian la correcta visualización de la alarma.
La alarma deberá estar activa siempre que el el pin FLAME indique que hay un incendio, y apagada cuando no lo haya.

En cuanto a la activación del ventilador, creo que está bien como lo tienes. Si llega a una temperatura de 27 o superior, se activa el pin 8(USB) a 5 Voltios si es en placas tipo UNO, NANO, etc, o 3.3 V en otras que manejen ese voltaje, y podrás activar un pequeño ventilador, o si quieres uno mucho más grande de más voltaje/amperaje, activar un relé que cierre el circuito del ventilador.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 5 puestos en Arduino (en relación al último mes)
Gráfica de Arduino

Sensor DHT11 y Ventilador

Publicado por Rodolfo (2 intervenciones) el 03/12/2018 19:14:52
Hola muchas gracias por responder, tengo este codigo cargado en el Arduino UNO y no se activa el usb, nose si la sentencia no corresponde o si habrá que hacer un mapeo del dht.readTemperature();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 40
Ha mantenido su posición en Arduino (en relación al último mes)
Gráfica de Arduino

Sensor DHT11 y Ventilador

Publicado por foroplus (18 intervenciones) el 03/12/2018 22:39:03
¿Qué lectura da el valor temp?
No veo ningún problema en el código para que el pin 8 se active a 5V si temp es mayor o igual que 27.
Eso sí, te falta el código para que se desactive ese pin, y por tanto el ventilador cuando la temperatura baje a la 26 y menos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar