Tabla de Contenidos

Sensor de humedad en la tierra

Conceptos básicos de la humedad del suelo

Sensor de humedad resistivo

Sensor de humedad capacitivo

Basado en los diseños encontrados en el siguiente enlace http://zerocharactersleft.blogspot.com.co/2011/11/pcb-as-capacitive-soil-moisture-sensor.html y adaptándolo a materiales locales se ha construído un sensor para el jardín de las delicias versión unloquer. A continuación se muestra el proceso:

FIXME Describir los pasos

FIXME Agregar los videos de demostración

opciones comerciales - http://vegetronix.com/

Software

Código que no funciona. La implementación del manejo de las interrupciones esta mal. Adaptado de acá http://openenergymonitor.org/emon/node/123

//Number of pulses, used to measure energy.
long pulseCount = 0;   

//Used to measure power.
unsigned long pulseTime,lastTime;

//power and energy
double freq,muestraPromedio,muestraTemporal;

void setup()
{
Serial.begin(115200);

// interrupt attached to = pin5
pinMode(5, INPUT_PULLUP);
attachInterrupt(5, onPulse, FALLING);
}

void loop()
{

}

// The interrupt routine
void onPulse()
{


//disable_interrupt()
//pulseCounter
if(pulseCount++ < 4) {// Número de pulso de la muestra
  //Calculate power
  //used to measure time between pulses.
  lastTime = pulseTime;
  pulseTime = micros();
  
  muestraTemporal = freq;
  freq = pulseTime - lastTime;

  muestraPromedio = (muestraTemporal + freq)/2;
  
} else {
  pulseCount = 0;
  //Print the values.
  Serial.println(muestraPromedio);

}
//enableInterrup()

}

Manejo de Interrupciones

https://en.wikipedia.org/wiki/Interrupt_handler
https://www.arduino.cc/en/Reference/AttachInterrupt
https://www.sparkfun.com/tutorials/326

https://www.youtube.com/watch?v=DGPEB2Q83E8&nohtml5=False https://www.youtube.com/watch?v=D_7ciW_TCac https://www.youtube.com/watch?v=RiYmLy8yUAY

Portando FreqMeasure para el ESP8266

Investigación pwm basado en variación de capacitancia

https://www.allaboutcircuits.com/worksheets/signal-modulation/

TODO

- Probar sming https://github.com/SmingHub/Sming
- Hay varios ejemplos que están en c++ plano. Sming es para poderlos probar
- Probar platforma.io http://platformio.org/#!/

Referentes

Uso de los timers de ESP → https://github.com/DINGGLABS/ESP8266/blob/master/WiFi-Button/WiFi-Button.ino
arduino-frequency-counterduty-cycle-meter → https://www.electronicsblog.net/arduino-frequency-counterduty-cycle-meter/
FreqCounter → http://www.pjrc.com/teensy/td_libs_FreqMeasure.html
Timer en el ESP8266 → http://www.switchdoc.com/2015/10/iot-esp8266-timer-tutorial-arduino-ide/
Contador de frecuencia con arduino (usa interrupciones - ISR) → http://www.chemcool.co.za/p/603366/arduino-frequency-counter-6-mhz
Ver como implementan los timers → https://github.com/NEBULAIR/esponics/blob/master/esponics-01/esponics-01.ino
Tachometer - ESP8266 implementation → https://github.com/eadf/esp8266_tachometer Contador de pulsos - http://openenergymonitor.org/emon/buildingblocks/introduction-to-pulse-counting → código: http://openenergymonitor.org/emon/node/123 (Por este lado va, ¿cómo se deshabilitan las interrupciones?) https://github.com/esp8266/source-code-examples/blob/master/interrupt_example/Makefile https://github.com/esp8266/Arduino/blob/ea302aab05480ad36c076b618abb642b1eb1893b/hardware/esp8266com/esp8266/libraries/Servo/src/esp8266/ServoTimers.h Sensor comercial de DFrobot: