Advertisement
Guest User

Arduino para Jardín Inteligente

a guest
Jul 15th, 2019
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //-----------Primer codigo--------------------
  2.  
  3. int sensor de humedad = 0;
  4. int lightSensor = 1;
  5. int tempSensor = 2;
  6. int Mayity_val;
  7. int light_val;
  8. int temp_val;
  9.  
  10. void setup () {
  11. Serial.begin (9600); // abrir puerto serie
  12.  
  13. }
  14.  
  15. void loop () {
  16. control_humedad = analógicaRead (sensor de humedad); // leer el valor de las sondas de detección de humedad
  17. Serial.print ("lecturas del sensor de humedad");
  18. Serial.println (nivel_medio);
  19. retraso (500);
  20. light_val = analogRead (lightSensor); // leer el valor del fotosensor
  21. Serial.print ("lecturas del sensor de luz");
  22. Serial.println (light_val);
  23. retraso (500);
  24. temp_val = analogRead (tempSensor);
  25. Serial.print ("lecturas del sensor de temperatura");
  26. Serial.println (temp_val);
  27. retraso (1000);
  28.  
  29. }
  30.  
  31.  
  32. //---------------Sensores de relés (Segundo Cogido)--------------------
  33.  
  34. int sensor de humedad = 0;
  35. int lightSensor = 1;
  36. int tempSensor = 2;
  37. int Mayity_val;
  38. int light_val;
  39. int temp_val;
  40.  
  41. void setup () {
  42. Serial.begin (9600); // abrir puerto serie
  43.  
  44. }
  45.  
  46. void loop () {
  47. control_humedad = analógicaRead (sensor de humedad); // leer el valor de las sondas de detección de humedad
  48. Serial.print ("lecturas del sensor de humedad");
  49. Serial.println (nivel_medio);
  50. retraso (500);
  51. light_val = analogRead (lightSensor); // leer el valor del fotosensor
  52. Serial.print ("lecturas del sensor de luz");
  53. Serial.println (light_val);
  54. retraso (500);
  55. temp_val = analogRead (tempSensor);
  56. Serial.print ("lecturas del sensor de temperatura");
  57. Serial.println (temp_val);
  58. retraso (1000);
  59.  
  60. }
  61.  
  62. //-----------------Control de Arduino (Codigo Final)-------------
  63.  
  64. // incluir la biblioteca datetime, para que nuestro jardinero pueda hacer un seguimiento de cuánto tiempo permanecen encendidas las luces
  65. #include <DateTime.h>
  66.  
  67. // definir entradas analógicas a las que hemos conectado nuestros sensores
  68. int tropicadorSensor = 0;
  69. int lightSensor = 1;
  70. int tempSensor = 2;
  71.  
  72. // definir las salidas digitales a las que tenemos conectados nuestros relés (agua y luz) y LED (temperatura)
  73. int waterPump = 7;
  74. int lightSwitch = 8;
  75. int tempLed = 2;
  76.  
  77. // definir variables para almacenar los valores de humedad, luz y temperatura
  78. int hidrog_valor;
  79. int light_val;
  80. int temp_val;
  81.  
  82. // decide cuántas horas de luz deberían obtener tus plantas diariamente
  83. float hours_light_daily_desired = 14;
  84.  
  85. // calcular las horas deseadas de luz total y suplementaria diariamente en base a los valores anteriores
  86. float proporción_to_light = horas_light_daily_desired / 24;
  87. float seconds_light = 0;
  88. flotar la proporción_lit;
  89.  
  90. // configura una variable para almacenar segundos desde que arduino
  91. activó float start_time;
  92. float seconds_elapsed;
  93. float seconds_elapsed_total;
  94. float seconds_for_this_cycle;
  95.  
  96. void setup () {
  97. // abrir puerto serie
  98. Serial.begin (9600);
  99. // establece los pines de agua, luz y temperatura como salidas que se desactivan
  100. pinMode (waterPump, OUTPUT);
  101. pinMode (lightSwitch, SALIDA);
  102. pinMode (tempLed, SALIDA);
  103. digitalWrite (waterPump, LOW);
  104. digitalWrite (lightSwitch, LOW);
  105. digitalWrite (tempLed, LOW);
  106.  
  107. // establecer la hora de inicio
  108. start_time = DateTime.now ();
  109. seconds_elapsed_total = 0;
  110.  
  111. }
  112. void loop () {
  113. // lea el valor de las sondas de detección de humedad, imprímalo en la pantalla y espere un segundo
  114. control_valor = analógico Leer (sensor de humedad);
  115. Serial.print ("lecturas del sensor de humedad");
  116. Serial.println (nivel_medio);
  117. retraso (1000);
  118. // lee el valor del fotosensor,
  119. imprímelo en la pantalla y espera un segundo light_val = analogRead (lightSensor);
  120. Serial.print ("lecturas del sensor de luz");
  121. Serial.println (light_val);
  122. retraso (1000);
  123. // lee el valor del sensor de temperatura,
  124. imprímelo en la pantalla y espera un segundo temp_val = analogRead (tempSensor);
  125. Serial.print ("lecturas del sensor de temperatura");
  126. Serial.println (temp_val);
  127. retraso (1000);
  128. Serial.print ("segundos en total =");
  129. Serial.println (seconds_elapsed_total);
  130. retraso (1000);
  131. Serial.print ("seconds lit =");
  132. Serial.println (seconds_light);
  133. retraso (1000);
  134. Serial.print ("proporción deseada =");
  135. Serial.println (proporción_a_luz);
  136. retraso (1000);
  137. Serial.print ("proporción lograda =");
  138. Serial.println (proporción_lit);
  139. retraso (1000);
  140.  
  141. // enciende el agua cuando el suelo está seco, y demora hasta que el suelo esté húmedo
  142. si (hidratación_valor <850)
  143. {
  144. digitalWrite (waterPump, HIGH);
  145. }
  146.  
  147. while (humedad_valor <850)
  148. {
  149. retardo (10000);
  150. // gracias a JoshTW por lo siguiente, correccionalidad de
  151. humedad_valor = analógicaRead (sensor de humedad);
  152. }
  153.  
  154. digitalWrite (waterPump, LOW);
  155.  
  156. // actualizar la hora, e incrementar seconds_light si las luces están encendidas
  157. seconds_for_this_cycle = DateTime.now () - seconds_elapsed_total;
  158. seconds_elapsed_total = DateTime.now () - start_time;
  159. if (light_val> 900)
  160. {
  161. seconds_light = seconds_light + seconds_for_this_cycle;
  162. }
  163.  
  164. // días nublados que vuelven a hacer sol: apague las luces si light_val supera los 900. esto funciona porque las luces suplementarias no son tan brillantes como el sol :)
  165. if (light_val> 900)
  166. {
  167. digitalWrite (lightSwitch, LOW);
  168. }
  169.  
  170. // apagar las luces si proporción_lit> proporción_a_luz, y luego esperar 5 minutos
  171. si (proporción_lit> proporción_a_luz)
  172. {
  173. digitalWrite (lightSwitch, LOW);
  174. retraso (300000);
  175. }
  176.  
  177. // averiguar qué proporción de luces de tiempo han estado en
  178. proporcional_lit = segundos_luz / segundos_elapsed_total;
  179.  
  180. // enciende las luces si light_val es menor que 900 y las plantas tienen luz por un tiempo menor al deseado, luego espere 10 segundos
  181. if (light_val <900 y Proportion_lit <Proportion_to_light)
  182. {
  183. digitalWrite (lightSwitch, HIGH);
  184. retraso (10000);
  185. }
  186.  
  187. // enciende la luz de la alarma de temperatura si temp_val es menor que 850 (aproximadamente 50 grados Fahrenheit)
  188. si (temp_val <850)
  189. {
  190. digitalWrite (tempLed, HIGH);
  191. }
  192.  
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement