Herramientas de usuario

Herramientas del sitio


personas:johnny:proyectos:indoor_diy_autosostenible

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
Próxima revisiónAmbos lados, revisión siguiente
personas:johnny:proyectos:indoor_diy_autosostenible [2019/11/03 13:43] – [actualizacion nov 3 2019] kzpersonas:johnny:proyectos:indoor_diy_autosostenible [2020/07/13 10:05] kz
Línea 524: Línea 524:
 {{:personas:johnny:proyectos:indoor-build-and-module6.jpg?400|}} {{:personas:johnny:proyectos:indoor-build-and-module6.jpg?400|}}
  
-Tareas que faltan por hacer!!!+[[https://gist.github.com/Kaziuz/ad3751c3b075d593cda2c111af3b242b|Link hacia el codigo del indoor]]
  
-  - Íntegrar el envío de datos al influx deñ dth11 + el capasitive sensor PRIORIDAD!!! 
-  - integrar una web en la flash para programar la fecha del rtc digital 8-) <code>time.h</code> (integrar esa parte que necesito de upayakuwasi y las alarmas) 
  
 +====== Actualización nov 9 2019 ======
  
-<code c++>+Hasta ahora la libreria time.h a funcionado muy bien, reemplazandome por completo un rtc.
  
-/********************************************************************* +=== Los datos se puede ver en:===
-Este ejemplo es para los oled de 128x64 usando SPI y Drivers +
-SSD1306 o SH1106 ambos con 7 pines de conexión.- +
-Se utilizan las librerias de Adafruit. +
-*********************************************************************/+
  
-#include <SPI.h> +[[http://aqa.unloquer.org:8888/sources/1/dashboards/2?lower=now%28%29%20-%2015m|Enlace al influx]]
-#include <Wire.h> +
-#include <Adafruit_GFX.h>+
  
-// #include <Adafruit_SH1106.h> +====== Actualización nov 12 2019 ======
-#include <Adafruit_SSD1306.h>+
  
-// Definir pines SPI en Arduino+Logro adjuntar a la trama de datos la humedad en la tierra de un sensor de humedad capacitivo.
  
-#define OLED_MOSI 14  // D5 +====== Actualización 1 diciembre 2019 ======
-#define OLED_CLK 16   // D0 +
-#define OLED_DC 13    // D7 +
-#define OLED_RESET 12 // D6 +
-#define OLED_CS 15    // D8+
  
 +Por alguna razón con el código que tengo aqui ... se presenta el problema de que el modulo funciona bien 5 o 6 dias y despues deja de funcionar bien... no apagando la luz cuando debe de estar apagada o viceversa, dejando la luz prendida cuando debe de estar apagada. El problema es que solo se fija una vez el tiempo
 +en el esp... si estre se reinicia o se va la energia... esto causa que el tiempo se reinicie... ocacionando que el tiempo de las alarmas de las luces no este sincronizado con el tiempo real.
  
-// A continuación informamos al soft del driver,cuales pines del arduino usamos +*Solución: *Se usan las librerias NTP y Time simultaneamente... en resumen se fija al inicio el tiempo local (libreria timecon request al servidor NTP... luego de eso el tiempo local se va actualizando cada 10 miniutos con un request al servidor NTP.
-// Para SH1106 descomentar siguiente comando +
-//Adafruit_SH1106 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS)+
-// Para SSD1306 descomentar siguiente comando +
-Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS); +
-// Para SH1106 descomentar siguiente comando +
-//#if (SH1106_LCDHEIGHT != 64) +
-// Para SSD1306 descomentar siguiente comando +
-#if (SSD1306_LCDHEIGHT != 64) +
-//#error("Height incorrect, please fix Adafruit_SH1106.h!"); +
-#endif+
  
-void setup() +*TODO*
-+
- Serial.begin(115200); // Si se va husar comunicación serial, Descomentar +
- // Para SH1106 descomentar siguiente comando +
- //display.begin(SH1106_SWITCHCAPVCC); // Inicia el display OLED (Carga Buffer) +
- // Para SSD1306 descomentar siguiente comando +
- display.begin(SSD1306_SWITCHCAPVCC); // Inicia el display OLED (Carga Buffer) +
- display.clearDisplay(); // Borrar imagen en el OLED +
- display.setTextSize(1); // Definir Tamaño del Texto +
- display.setTextColor(WHITE); // Definir color del texto. (mono=>Blanco) +
- display.setCursor(0,10 ); // Definir posición inicio texto Columna (0) Fila (10) +
- display.println("Hola este es un mensaje de pruebas #1"); // Carga la información al buffer +
- display.display(); // Actualiza display con datos en Buffer +
- delay(2000); // Demora de 2 segundos. +
-}+
  
-void loop() { +  - *RAPIDO*: integrar al código actual al actualizacion con el servidor NTP 
- // Aquí irá el programa+  - integrar una web en la flash para programar la fecha del rtc digital time.h,  (integrar esa parte que necesito de upayakuwasi y las alarmas) 
 +  - pensar en una interfaz para pedir al usuario la programacion de la luz sea floración o vegetación o esquejes. 
 +  - sacar una tarjetica en fritzing y pasarsela al brol o a uber, con el convertidor de la luz 
 +  - actualizar el firmware por medio de ota 
 + 
 +====== Actualización 13 de julio 2020 ====== 
 + 
 +En todo este tiempo he estado aprendiendo mas que todo sobre las plantas, conociendolas y mirando como los diferentes factores que inciden en ella(Temperatura y humedad, calidad de la tierra, calidad del agua, lummens necesarios, etc...) 
 +Entonces antes de seguir con el codigo y el prototipo de placa. Estuve un tiempo pensando en la mejoras que se le arian al indoor. 
 + 
 +He dispuesto un extrator de 125v para sacar el aire caliente y regular la temperatura del indoor en la parte superior. Tambien arregle el espacio y le trabaje junto con mi tio para volverlo mejor. 
 + 
 +ANTES 
 + 
 +{{:personas:johnny:proyectos:viejo-indoor.jpg?400|}} 
 + 
 +AHORA 
 + 
 +{{:personas:johnny:proyectos:nuevo-indoor.jpg?400|}} 
 + 
 +Tambien mi tio me ayudo a construir un reflector para adaptarle hasta 6 bombillos a este mismo. Este cambio ayudo mucho a las plantas pero tambien afecto bastante otros factores que detallaremos mas adelante. 
 + 
 +{{:personas:johnny:proyectos:reflector1.jpg?400|}} 
 + 
 +{{:personas:johnny:proyectos:reflector2.jpg?400|}} 
 + 
 +En este cultivo tambien estuve experimentando y aprendiendo sobre las podas. En especial la fim y la apical. 
 + 
 +{{:personas:johnny:proyectos:podas.png?400|}} 
 + 
 +Entonces esta fue mi planta experimental... a la cual le hice de todo... apicales y fim... dando espacio minimo de un mes entre poda y poda para que la planta se recuperara y finalmente siempre podando en cuarto menguante. 
 + 
 +{{:personas:johnny:proyectos:poda-apical1.jpg?400|}} 
 +{{:personas:johnny:proyectos:poda-apical2.jpg?400|}} 
 + 
 +Dadas las experimentaciones, la planta desarrollo un brazo mas grande que el otro. Tambien se observa como queda la cicatriz del corte, pero la planta a medida que pasa el tiempo se va curando. 
 + 
 +Este experimento fue para aprender a realizar un cultivo tipo scrog... donde son necesarias este tipo de podas para hacer que las plantas sean mas eficientes a la hora del cultivo... pero el unico contra es que se alarga el tiempo de vegetacion para que las plantas se recuperen. 
 + 
 +** Pasamos la placa base a baquela y actualizaciones y fixes en el código** 
 + 
 +Primero hablaremos de la placa. Entonces antes teniamos este hardware, 4 reles (de los cuales solo estoy usando 1) y una pantallita para ver las lecturas del dht11. 
 + 
 +Antes 
 + 
 +{{:personas:johnny:proyectos:placa-antes.jpg?400|}} 
 + 
 +Cuando teniamos este circuito. Disponiamos de problemas de interrumciones de corriente... porque como vemos los cables estan pegados con mocos y mi casa a veces se mueve el piso, ocacionando que los cables se desconenten. 
 + 
 +Por otro lado estabamos haciendo un request al server **NTP** cada minuto y con esta misma hora era que se configuraba todo en el codigo... ocacionando que cuando se cae el internet... no exista hora y se volviera loca la alarma...  
 + 
 +Otra cosa grave era que cuando se hiba la luz... entonces como la alarma del codigo estaba seteada con una hora quemada... coacionaba que los ciclos de foto periodo se corrieran o no fueran los esperados. 
 + 
 +Otro problema que existia era que cuando las plantas ya necesitan el cambio de fotoperiodo... era necesario ingresar de nuevo el firmware a la placa con el cambio de periodo... entonces era tedidoso cada cierto tiempo estar ingresando el codigo a la base. 
 + 
 +**Ahora** 
 + 
 +Circuito actualmente 
 +{{:personas:johnny:proyectos:dsc06738.jpg?400|}} 
 + 
 +{{:personas:johnny:proyectos:placa-antes-2.jpg?400|}} 
 + 
 +**Arquitectura del firmware** 
 + 
 +{{:personas:johnny:proyectos:logica-firmaware.jpg?400|}} 
 + 
 +Resumidamente cuando se trata de conectar el led parpadea amarillo, si falla entonces parpadeara rojo. Luego hara el request al NTP para sincronizar el timeAlarms y setear la alarma inicialmente. En este proceso el led parpadeara verde, si falla parpadeara rojo. 
 + 
 +Luego de esto el led cada cierto tiempo empezara a parpadear en un color especifico... inicialmente el cyan. Y cada minuto el led parpadeara amarillo, para indicar que esta inviando las lecturas del capacitivo y el dht al influxdb.  
 + 
 +**Mientras eso ocurre no es adecuado presionar el boton para cambiar el ciclo de floracion. 60%>** 
 + 
 +**Como funciona actualmente** 
 + 
 +Tenemos basicamente 4 estados. 
 + 
 +1 - Cyan: Indica estado vegetativo de dia. Las luces se encianden a las 6 y se apagan a las 24 
 +2 - Azul: Indica estado vegetativo de noche. Las luces se encienden a las 18 y se apagan a las 12 del otro dia 
 +3 - Naranja: Indica estado floracion de dia. Las luces se encienden a las 6 y se apagan a las 18 
 +4 - Magenta: indica estado floracion de noche. Las luces se encienden a las 18 y se apagan a las 6 del otro dia. 
 + 
 +Estos estados fueron ideados y pensados principamente por dos razones: 
 +1. No tener que estar programando el esp para cambiar el fotoperido de las luces. 
 +2. favoreces las condiciones de temperatura y humedad en el cuarto de cultivo. Ya que se ha investigado que apagando las luces durante el dia en lugares muy calurosos, se reduce la temperatura. Estos datos son corroborados mirando la trama de datos del influx db... donde se nota claramente que en el dia se superanban temperaturas de 35 grados con luces encendidas... notandose quema de hojas en las puntas. 
 + 
 +Con luces apagadas en el dia... osea configuracion azul, la temperatura no supera los 25, 26 grados. Datos adecuados.... no ideales pero mas cercanos a los necesarios. 
 + 
 +Ahora la placa sobre la baquelita :-o 
 + 
 +{{:personas:johnny:proyectos:placa3.jpg?400|}} 
 + 
 +{{:personas:johnny:proyectos:placa-2.jpg?400|}} 
 + 
 +{{:personas:johnny:proyectos:placa-1.jpg?400|}}
  
- // Cuando se quiera mostrar nueva información 
-  display.clearDisplay(); // Borrar imagen en el OLED 
-  display.setTextSize(0.5); // Definir Tamaño del Texto 
-  display.setTextColor(WHITE); // Definir color del texto. (mono=>Blanco) 
-   
-  display.setCursor(0,0); // Definir posición inicio texto Columna (0) Fila (0) 
-  display.println("El gordo es un hp!"); // Carga la información al buffer 
-  display.setCursor(0,8); // Definir posición inicio texto Columna (0) Fila (0) 
-  display.println("golondras!"); // Carga la información al buffer 
-  display.setCursor(0,16); // Definir posición inicio texto Columna (0) Fila (0) 
-  display.println("12 parea apagarse!"); // Carga la información al buffer 
-  display.setCursor(0,24); // Definir posición inicio texto Columna (0) Fila (0) 
-  display.println("dispositivo"); // Carga la información al buffer 
-  display.display(); // Actualiza display con datos en Buffer 
-  delay(2000); // Demora de 2 segundos. 
- 
  
-</code> 
  
-  
  
  
personas/johnny/proyectos/indoor_diy_autosostenible.txt · Última modificación: 2020/08/13 06:00 por kz