Arduino - Proyecto incubadora arduino

 
Vista:

Proyecto incubadora arduino

Publicado por Gdram94 (1 intervención) el 08/06/2018 14:56:55
Buenas tras varias semanas intentadolo aun no consigo echar a andar mi proyecto. Explico un poco en que consiste. El proyecto es una incubadora la cual cuenta con una pantalla lcd, varios led y un zumbador. Ademas de dos resistencias una para la temperatura y otra para la humedad. hasta ahi bien y las alarmas de led, zumbador y mensajes en lcd bien. El problema viene cuando quiero modificar los limites de las alarmas con una app android conectado por bluetooth y cambiar ademas otros parametros como la temperatura de la resistencia y la humedad. he estado usando unos modelos de youtube pero imposible asemejarlo. en mi opinion es muy complejo espero que para los que entiendan no lo sea. un saludo y gracias. adjunto el codigo que estoy usando. borre ciertas cosas de la lcd pero el problema viene en lo del bluetooth

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
#include <DHT.h> //incluimos la libreria DHT para cargar los controles del sensor
 
int SENSOR = 2; //declaramos el sensor y el pin en el que esta
float temp_1; //declaramos la variable de temperatura de tipo float para que capte decimales 
int humidity_1; //declaramos la variabe de humedad
float temperatura_1; //declaramos la variable temperatura para el control de la temperatura son de tipo float para la que capte decimales
int humedad_1; //declaramos la variable humedad para el control de la humedad
int ledVerde=13; //declaramos led verde en pin 13
int ledRojo=12; //declaramos led rojo en pin 12
int value = analogRead(SENSOR); //declaramos la lectura del sensor
int toneVal; //declaramos el tono del zumbador
int Zumb1 = 8; //declaramos el zumbador en el pin 9
int frecuencia = (625); //declaramos la frecuencia del zumbado
float alarmMT;  //declaramos la variable alarma maxima de temperatura
float alarmMiT; //declaramaos la variable alarma minima de temperatura
float alarmMH; //declaramos la variable alarma maxima de humadad
float alarmMiH; //declaramos la variable alarma minima de humedad*/
char valor;
String estado;
 
 
DHT dht (SENSOR, DHT11); //declaramos el tipo de sensor DHT de la libreria
 
 
void setup() { //DECLARAMOS EL ESTADO DE TODOS LOS COMPONENTES AL CONECTAR LA PLACA ARDUINO
 Serial.begin(9600);
dht.begin();
pinMode(ledVerde, OUTPUT);
digitalWrite(ledVerde,LOW);
pinMode(Zumb1, OUTPUT);
pinMode(ledRojo, OUTPUT);
digitalWrite(ledRojo,LOW);
/*codigo setup LCD
Wire.begin(); //iniciamos el adaptador LCD
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.setBacklight(HIGH);*/
 
}
 
void loop() {
  //MONITORIZACION HUMEDAD Y TEMPERATURA
 humidity_1 = dht.readHumidity();
 temp_1 = dht.readTemperature();
 Serial.print("Temperatura: ");
 Serial.print(temp_1);
 Serial.print("ºC  Humedad: ");
 Serial.print(humidity_1);
 Serial.print("%");
 Serial.println();
 delay (1000); //repite la operacion
 
/*FUNCIONES DE LA LCD
 lcd.print("Temperatura: ");
 lcd.print(temp);
 lcd.print("C");
 lcd.setCursor(0,1);
 lcd.print("Humedad: ");
 lcd.print(humedad);
 lcd.print("%");

 delay(10000);*/
 
 //LECTURA DE DATOS DEL BLUETOOTH
 
 if (Serial.available())  //Si el puerto serie (Bluetooth) está disponible
  {
    valor = Serial.read();  //Lee el dato entrante via Bluetooth
 
 
 
    /*if (valor == 'A')   //Si el dato entrante es una A
    {
     temperatura();   //Llama la función que controla la temperatura
    }
    
    if (valor == 'B')   //Si el dato entrante es una B
    {
     humedad();     //Llama la función que controla la humedad
    }
    */
    if (valor == 'C')   //Si el dato entrante es una C
    {
      alarmaMT();     //Llama la función que controla alarma temperatura maxima
    }
    if (valor == 'D')   //Si el dato entrante es una D
    {
      alarmaMiT();     //Llama la función que controla alarma temperatura minima
    }
 
    if (valor == 'E')   //Si el dato entrante es una E
    {
      alarmaMH();     //Llama la función que controla alarma humedad maxima
    }
 
    if (valor == 'F')   //Si el dato entrante es una F
    {
      alarmaMi();     //Llama la función que controla alarma humedad minima
    }
  }
 
 
  void temperatura ()
  {
    delay (30);
    while (Serial.available())
    {
      char c= Serial.read(); //Lee el dato entrante y lo almacena en una variable tipo char
      estado += c; //Crea una cadela tipo String con los datos entrantes
    }
    if (estado.length()>0) //Se verifica que la cadena tipo String tenga un largo mayor a cero
    {
      analogWrite(temperatura_1, estado.toInt()); //Manda a la resistencia el dato en forma de entero (int)
    }
    }
 
 
      void humedad ()
  {
    delay (30);
    while (Serial.available())
    {
      char c= Serial.read(); //Lee el dato entrante y lo almacena en una variable tipo char
      estado += c; //Crea una cadela tipo String con los datos entrantes
    }
    if (estado.length()>0) //Se verifica que la cadena tipo String tenga un largo mayor a cero
    {
      analogWrite(humedad_1, estado.toInt()); //Manda a la resistencia el dato en forma de entero (int)
    }
    }
 
  void alarmaMT ()
  {
    delay (30);
    while (Serial.available())
    {
      char c= Serial.read(); //Lee el dato entrante y lo almacena en una variable tipo char
      estado += c; //Crea una cadela tipo String con los datos entrantes
    }
    if (estado.length()>0) //Se verifica que la cadena tipo String tenga un largo mayor a cero
    {
      analogWrite(alarmaMT, estado.toInt()); //Cambia el limite maximo de alarma de temperatura en forma de entero (int)
    }
    }
 
 void alarmaMiT ()
  {
    delay (30);
    while (Serial.available())
    {
      char c= Serial.read(); //Lee el dato entrante y lo almacena en una variable tipo char
      estado += c; //Crea una cadela tipo String con los datos entrantes
    }
    if (estado.length()>0) //Se verifica que la cadena tipo String tenga un largo mayor a cero
    {
      analogWrite(alarmaMiT, estado.toInt()); //Cambia el limite minimmo de alarma de temperatura en forma de entero (int)
    }
    }
void alarmaMH ()
  {
    delay (30);
    while (Serial.available())
    {
      char c= Serial.read(); //Lee el dato entrante y lo almacena en una variable tipo char
      estado += c; //Crea una cadela tipo String con los datos entrantes
    }
    if (estado.length()>0) //Se verifica que la cadena tipo String tenga un largo mayor a cero
    {
      analogWrite(alarmaMH, estado.toInt()); //Cambia el limite maximo de alarma de humedad en forma de entero (int)
    }
    }
 
    void alarmaMiH ()
  {
    delay (30);
    while (Serial.available())
    {
      char c= Serial.read(); //Lee el dato entrante y lo almacena en una variable tipo char
      estado += c; //Crea una cadela tipo String con los datos entrantes
    }
    if (estado.length()>0) //Se verifica que la cadena tipo String tenga un largo mayor a cero
    {
      analogWrite(alarmaMiH, estado.toInt()); //Cambia el limite minimo de alarma de humedad en forma de entero (int)
    }
    }
 
//FUNCION IF PARA CONDICIONAR LA ALARMA DE TEMPERATURA
 
 if(temp>alarmMT){//ALARMA LED de temperatura maxima
  digitalWrite(ledRojo,HIGH);
  digitalWrite(ledVerde,LOW);
}
   if(temp<alarmMiT){ //ALARMA LED de temperatura minima
  digitalWrite(ledRojo,HIGH);
  digitalWrite(ledVerde,LOW);
}
  /*ALARMA ZUMBADOR_ SE INCLUYE EN LA MISMA FUNCION IF PARA QUE SEA DE LA MISMA CONDICION
  tone(Zumb1,frecuencia); //inicia el zumbido
  delay(1000); //repite la operacion
  noTone(Zumb1); //detiene el zumbador
  delay(1000); //repite la operacion
  }
  else{
  digitalWrite(ledVerde,HIGH);
  digitalWrite(ledRojo,LOW);
  noTone(Zumb1); //detiene el zumbador
  }*/
 
  }
}
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