Herramientas de usuario

Herramientas del sitio


proyectos:talleres_esp:start

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
proyectos:talleres_esp:start [2017/06/12 02:11] – [Biostation] brolinproyectos:talleres_esp:start [2018/03/07 02:08] miguel
Línea 114: Línea 114:
 FIXME Agregar esquema del automator FIXME Agregar esquema del automator
  
-FIXME Agregar repositorio+https://github.com/unloquer/TalleresESP/tree/master/autoMator
  
 [[proyectos:talleres_esp:automator|AutoMator]] [[proyectos:talleres_esp:automator|AutoMator]]
Línea 122: Línea 122:
 FIXME Agregar esquema del emotion FIXME Agregar esquema del emotion
  
-FIXME Agregar repositorio+https://github.com/unloquer/TalleresESP/tree/master/eMotion
  
 [[proyectos:talleres_esp:emotion|ver detalles eMotion]] [[proyectos:talleres_esp:emotion|ver detalles eMotion]]
 +
 +==== Soil Moisture ====
 +
 +Para leer cambios de humedad en el suelo existen varias técnicas, una que nos interesó bastante es un circuito conductivo basado en el famoso timer 555, y el circuito es el mismo de un drawdio -mas emocionante todavia-; para los que en algún momento han construido ese lápiz que suena depronto se dieron cuenta que lo que hace el timer es apagarse y prenderse cada tanto tiempo, esto genera un pulso a cierta frecuencia y por eso suena :B  .Un pulso puede tener diversos tiempos para sus tiempos de encendido y apagado o.O, digamos que tenemos un pulso que dura 1sg, podemos encender 0.5sg y apagar 0.5sg el timer, o que tal 0.1sg y 0.9sg? ^^, a esto se le llama "duty cycle".La librería de arduino tiene una función que mide el tiempo que un input se encuentra en alguno de estos estados, se llama pulseIn(). En términos generales el duty cycle sube y la frecuencia baja mientras más húmedo se encuentre el suelo, aqui se abre la opción de generar más datos, todavía falta generar mas datos e implementar bien la relación duty cycle/frecuencia
 +
 +El código para leer la frecuencia a partir del periodo de tiempo formado por el pulso HIGH y LOW es el siguiente:
 +
 +<code java>
 +#include "Arduino.h"
 +
 +int pulse_pin = 2;
 +// pulse in devuelve unsigned long, tener cuidado con el envio de esta variable a otros entornos
 +
 +unsigned long pulse_high_time, pulse_low_time, period;
 +int frecuency;
 +int inByte = 0;
 +
 +//---------------------
 +void setup(){
 +
 +  Serial.begin(9600);
 +  pinMode(pulse_pin,INPUT);
 +
 +}
 +//--------------------------------
 +void loop(){
 +
 +    pulse_low_time = pulseIn(pulse_pin,LOW);
 +    pulse_high_time = pulseIn(pulse_pin, HIGH);
 +
 +    period = pulse_low_time + pulse_high_time;
 +    
 +    frecuency = 1000000/period; // valores en sg, 10M de microsegundos son 1 segundo
 +
 +    Serial.print("high :");
 +    Serial.print(pulse_high_time);
 +    Serial.print("\t");
 +    Serial.print("low :");
 +    Serial.print(pulse_low_time);
 +    Serial.print("\t");
 +    Serial.print("frecuency:  ");
 +    Serial.println(frecuency); 
 +
 +    delay(30);
 + 
 +}
 +</code>
 +
 +probado en áreas pequeñas :3 y con bastante humedad
 +
 +{{:proyectos:talleres_esp:20180305_112548.jpg?400|}}{{:proyectos:talleres_esp:20180305_152428.jpg?400|}}{{:proyectos:talleres_esp:2018-03-05-114439_1920x1080_scrot.png?400|}}
 +
 +referentes:
 +
 +https://en.wikipedia.org/wiki/Duty_cycle
 +
 +https://www.arduino.cc/reference/en/language/functions/advanced-io/pulsein/ 
 +
 +
 +
 +[[proyectos:talleres_esp:soilmoisture|ver detalles soil moisture]]
proyectos/talleres_esp/start.txt · Última modificación: 2018/03/10 21:30 por miguel