Módulo para Maceta autonoma

Saludos a todos, soy consciente que es el enesimo proyecto sobre el tema "huerto urbano", pero cada uno tiene sus propias particularidades. Y las piedras con los que otros se tropezaron para aprender no me hacen a mi aprender, debo tropezarme yo mismo, como ya he comprobado muchas veces.

En mi caso, mi pretensión es hacer un módulo pequeño que pueda ser transportable y facilmente instalable para convertir a cualquier maceta en autónoma y controlable online, via wifi. Aunque no descarto en un futuro ir añadiendo mas funcionalidades al proyecto para hacerlo más versatil, de momento quiero que me controle tan solo riego e iluminación artificial. La razón es porque basicamente lo quiero para especies frescas, albahaca, romero, salvia... No... no es mi pretensión usarlo para Maria, ... en serio.. de hecho la floración tendrá poca importancia en mi iluminación y mas el crecimiento vegetativo con entrenudos cortos a ser posible:

[u]Requisitos del proyecto:[/u]

  • Barato
  • Pequeño y transportable
  • Control del riego en función de la humedad ( a ser posible)
  • Control horario de la iluminación
  • Relativamente seguro,... el fallo de una conexión o sensor no debería inundar la casa
  • Control a distancia (via web, problablemente con un interface en una pagina web)

[u]Requisitos secundarios:[/u]

  • Probable control de temperatura
  • Probable control de humedad ambiental
  • Probable aireación

De momento voy a empezar los los requisitos primarios, de los que ya llevo bastante avanzado, con varios problemas encontrados algunos resueltos... voy a hacer un resumen de los problemas que me he encontrado de momento, como los he solucionado y por donde voy. No soy ni programador ni electrónico ni nada de nada.. soy novato aunque en programación ya he hecho mis pinitos y en webs también. Soy Ingeniero agrónomo, pero ni eso me sirve mucho puesto de mi especialidad nada tiene que ver con las plantas.... El requisito de barato no es por mi presupuesto, sino porque entiendo que no tiene sentido si no sale razonablemente económico, no me importa gastarme mucho mas en el proceso, prototipo etc.. pero una vez realizado en proceso, la suma de los componentes debe dar algo asequible.

Electronica necesaria: Microprocesador: ESP32 38 pines con WIFI Sensor de humedad de suelo : este inicialmente y este en camino 2 o 3 relay Lampara de crecimiento vegetal Bomba periestáltica Transformador 220v a 5V USB... osea .. un cargador de movil, Convertidor de nivel lógico 3.3v -5V

Otros recursos: Hosting con php y mysql

Avances del proyecto: De momento tengo resuelta la interface, sin ser bonita es practica, y conseguí que todo funcionara bien durante unos dos días.... el tiempo que duro el sensor de humedad en corroerse, motivo por el cual viene de camino uno capacitivo se puede ver la parte de la web aquí

En si el funcionamiento es simple, tomo la energía de un enchufe de casa 220v, de ahí a un transformador de 5V que alimenta el esp32 y 2 relees, uno controla el enchufe al que va la lampara que tomamos de los mismos 220 que le llegan al transformador, y el otro la bomba peristáltica, que aunque es de 12v ira a 5V así me ahorro transformandores y cuanto mas lento vaya mejor controlare el riego. Luego del ESP32 el sensor de humedad que mide cada 15 minutos y lo sube a la web, donde una gráfica de google charts nos muestra los últimos 100 datos, osea el último día aproximadamente. Si el dato de humedad es menor que un valor umbral que coge de la web, entonces pone en marcha el riego durante un minuto, sino pues nada. La bomba persitáltica me permite dosificar muy bien el riego y alturas manométricas importantes, .... es perfecto para lo que quiero, el agua la puede coger de cualquier deposito, como una botella de agua, un acuario.... En la próxima versión el sensor de humedad de suelo será alimentado solo cuando tiene que leer ... no se si esto puede ser exactamente cuando tiene que leer o debe hacerse con algún segundo de margen...... he leído en otros hilos comentarios de que se puede alimentar con un pin .... pero sino pues lo haré con un rele.. por otro lado el esp32 pide cada 5 segundos a la web si debería estar estar la lampara encendida o apagada, y activa el relee o lo desactiva. La web lo que hace es comparar la hora del servidor con las horas que le hemos dicho de encendido... y devuelve una archivo .json con el pin y el estado...

Todo funcionaba perfectamente o casi hasta que el sensor de humedad se corrompió.... pero hasta ese momento incluso las medidas me parecieron muy fiables, pero claro en el momento que fallo cada 15 minutos encendía el riego y eso no es admisible, el fallo de un sensor no puede tener la posibilidad de producir un desborde del riego... Por lo que he pensado ponerle un contador de las ultimas 24 horas y si ha regado... digamos mas de 4 veces no permitir un 5 riego.

Otra idea seria abandonar el riego automático, y que simplemente te diera la lectura del a humedad cuando tu se la pidieses via web y luego con la lectura de ese instante decidieras uno accionar por la web el riego un tiempo determinado, pero preferiría hacer algo automático.

Explicado así suena sencillo, pero el proceso no lo fue, ... mis reles se volvían locos, al parecer porque mi esp32 entrega por el pin 3.3v y deben ser 5v,... en algún momento termine quemando mi procesador por equivocarme de cables, pines o que se yo.. Sin embargo, cuando cambié la placa los relees de 5v han funcionado perfectamente con la señal de 3.3,..... y la alimentación de 5... .. misterio... Pero tengo el convertidor lógico preparado por si acaso. Todo lo metí en un tapper, de unos 15 x 10 cm que agujereé para poner la bomba peristáltica de forma que el agua esta siempre lejos de la parte eléctrica. Al meter todo en el tapper me doy cuenta que es sencillo que terminen por tocarse partes metálicas de cables, pines, relees que no deberían y producir cortocircuitos o fallos, por lo que he encargado unas placas de soldado para intentar ordenarlo todo. Y prácticamente todo lo que cuento es la primera vez que lo hago o casi, incluyendo soldar, por lo que imaginareis que ando algo desbordado.

Se admiten apoyos, sugerencias, experiencias, criticas y demás... los códigos, .. si a alguien le interesa los pongo, con el resultado de bastante copia y pega y alguna aportación mía,

Explicado así suena sencillo, pero el proceso no lo fue, ... mis reles se volvían locos, al parecer porque mi esp32 entrega por el pin 3.3v y deben ser 5v,... en algún momento termine quemando mi procesador por equivocarme de cables, pines o que se yo..

No se como lo conectaste. Te comento que hay reles con interfaz 3.3V asi que puedes buscar con mas cuidado. Tambièn puedes separar los circuitos del RELE de modo que el LED del opto se alimente con 3.3V y el resto con 5V. De donde sacas 5V es otro tema pero seguramente tendras fuente externa. En este foro se ha comentado muchas veces como conectar un dispositivo 3.3V con RELEs de 5V. Levantas el JUMPER si lo tiene JD-VCC y con eso separas circuitos entrada/salida del opto.

Lo que comentas del sensor podrìa prevenirse con una especie de STOP en el que no haga locuras si recibes por ejemplo NAN o sea cuando no recibes datos. Ahora si los datos que recibes son fallidos es mas dificil resolverlo.

hola surbyte, aprecio mucho tu ayuda..... pero mi nivel no da como para entenderte del todo. Los relees, ya me comentaste, mis reles no tienen jumper..... pero lo curioso es que antes de quemar el antiguo esp32 aunque estaba alimentado el relee con 5v y la señal con 3.3v no funcionaba... ahora funciona sin problemas, aunque he leido en varias sitios que es una situación inestable y que el convertidor del nivel logico lo arreglaria. La fuente que tengo es un transformador de 220V a 5V ... asi que sin problemas.

Seguiré con el proyecto, proximamente con fotos códigos y entregas,...

Algunas fotos del proyecto, espero que ayuden a coger la idea… y asi pongo de manifiesto el nivel de chapucismo que manejo…

Aprovecho para plantear varias dudas que tengo que acometer en breve,

  1. Puedo sustituir los cables del sensor de humedad del suelo por cables de un metro de largo? de un grueso mas nromal, basicamente porque jumpers de esa longitud no tengo…
  2. ¿Que forma usariais para aislar los relees del resto de conexiones? sobre todo del de 220V
  3. Una vez que tenga la placa de soldado… ¿le sueldo pines hembra para “pinchar” el procesador en el?



maceta automoma2

Hoy vengo con el cogido,… que estara lleno de errores y blasfemias, … pero funciona

#include <WiFi.h>
#include <HTTPClient.h>
#include <Arduino_JSON.h>
 
// Pin donde se conecta el bus 1-Wire
int sensor_pin = 34;
int bomba_pin = 32;
int value ;
// red  y clave de red
const char* ssid = "Nombre de mi red";
const char* password = "el password de mi wifi"; 
// Keep this API Key value to be compatible with the PHP code provided in the project page.
// If you change the apiKeyValue value, the PHP file /esp-post-data.php also needs to have the same key
String apiKeyValue = "claveunicadedispositivoquesecomprobaraendestino";
//La URL a la que mandara por metodo post los datos
const char* serverName = "https://www.urlderecibirdatos.php";
//LA URL para ver si el pin de luz debería estar entendido o apagado 
const char* serverName2 = "https://www.urldeconsultardatos.php?action=outputs_state&board=1";
//LA URL para ver cual es la humedad limite para accionar bomba
const char* serverName3 = "https://www.urldeconsultardatos.php?action=limitehumedad&board=1";


// poner los contadores en usigned long pq en int se acabarian rapido los 14 digitos..
// estos son los contadores para humedad
unsigned long lastTime = 0;
// 15 minutos dara como resultado algo menos de 100 medidas al dia y en la grafica caben 100
unsigned long timerhumedad = 900000;
// Actualiza el estado de los temporizados
// estos son los contadores para luz
const long interval = 5000;
unsigned long previousMillis = 0;

//tiempo de riego 1 minuto
const long tiemporiego = 60000;

int humedadminima = 4500;
boolean bombafuncionando = false;
unsigned long otrotiempo = 0;

String outputsState;
String limitehumedad;

String sensorName = "HUMEDAD SUELO";
String sensorLocation = "CASA";
 
void setup() {
    // Iniciamos la comunicación serie
    Serial.begin(115200);
  
// hacemos la conexion de wifi
    WiFi.begin(ssid, password);
  Serial.println("Connecting");
  while(WiFi.status() != WL_CONNECTED) { 
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to WiFi network with IP Address: ");
  Serial.println(WiFi.localIP());
  pinMode(bomba_pin, OUTPUT);
  digitalWrite(bomba_pin, 0);
}
 
void loop() {

  // que cada 5 segundos mire si es la hora de encender la luz o apagarla
 unsigned long currentMillis = millis();
  
  if(currentMillis - previousMillis >= interval) {
     // Check WiFi connection status
    if(WiFi.status()== WL_CONNECTED ){ 
      outputsState = httpGETTemporizador(serverName2);
      Serial.println(outputsState);
      JSONVar myObject = JSON.parse(outputsState);
  
      // JSON.typeof(jsonVar) can be used to get the type of the var1
      if (JSON.typeof(myObject) == "undefined") {
        Serial.println("Parsing input failed!");
        return;
      }
    
      Serial.print("JSON object = ");
      Serial.println(myObject);
    
      // myObject.keys() can be used to get an array of all the keys in the object
      JSONVar keys = myObject.keys();
    
      for (int i = 0; i < keys.length(); i++) {
        JSONVar value = myObject[keys[i]];
        Serial.print("GPIO: ");
        Serial.print(keys[i]);
        Serial.print(" - SET to: ");
        Serial.println(value);
        pinMode(atoi(keys[i]), OUTPUT);
        digitalWrite(atoi(keys[i]), atoi(value));
      }
      
      // save the last HTTP GET Request
      previousMillis = currentMillis;
    }
    else {
      Serial.println("WiFi Disconnected");
    }
  }
  
// ahora mira si han pasado 15 minutos mira y graba la humedad del suelo
   if ((millis() - lastTime) > timerhumedad) {
    //Check WiFi connection status
    if(WiFi.status()== WL_CONNECTED){
      HTTPClient http;

      // Your Domain name with URL path or IP address with path
      http.begin(serverName);

       // Specify content-type header
      http.addHeader("Content-Type", "application/x-www-form-urlencoded");
 
 // Mandamos comandos para toma de temperatura a los sensores
    Serial.println("Mandando comandos a los sensores");
  value= analogRead(sensor_pin);
  Serial.print(value);
  value = map(value,4095,0,0,4095);
  //Serial.print("Moisture : ");
  //Serial.print(value);
  //Serial.println("%");
  
// Prepare your HTTP POST request data
      String httpRequestData = "api_key=" + apiKeyValue + "&sensor=" + sensorName
                            + "&location=" + sensorLocation + "&value1=" + String(value) +  "";
      Serial.print("httpRequestData: ");
      Serial.println(httpRequestData);
      
   
      // Send HTTP POST request
      int httpResponseCode = http.POST(httpRequestData);


      if (httpResponseCode>0) {
        Serial.print("HTTP Response code: ");
        Serial.println(httpResponseCode);
      }
      else {
        Serial.print("Error code: ");
        Serial.println(httpResponseCode);
      }
      // Free resources
      http.end();
    }
    else {
      Serial.println("WiFi Disconnected");
    }
Serial.println("inicio mirar limite humedad");
//INICIO BLOQUE MIRAR LIMITE HUMEDAD
 if(WiFi.status()== WL_CONNECTED ){ 
      
      limitehumedad = httpGETHumedad(serverName3);
      Serial.println("ha comprobado que se conecta");
      Serial.println(limitehumedad);
      JSONVar myObject2 = JSON.parse(limitehumedad);
  
      // JSON.typeof(jsonVar) can be used to get the type of the var
      if (JSON.typeof(myObject2) == "undefined") {
        Serial.println("Parsing input failed!");
        return;
      }
    
      Serial.print("JSON object = ");
      Serial.println(myObject2);
    
      // myObject.keys() can be used to get an array of all the keys in the object
      JSONVar keys = myObject2.keys();

      JSONVar valor = myObject2[keys[0]];
       humedadminima=atoi(valor);
       Serial.println("limite de humedad");
       Serial.println(humedadminima);
    }
    else {
      Serial.println("WiFi Disconnected");
    }

    
//FIN BLOQUE MIRAR LIMITE HUMEDAD

    // el last time tiene que estar aunque quite el bloque de mirar limite humedad    
    lastTime = millis();
    
// si value es menos de un valor, por ejemplo 1500,  pon en marcha la bomba un minuto. 
    if (value < humedadminima && digitalRead(bomba_pin) == LOW) {
      Serial.println("Humedad por debajo del limite");
      // de momento no comprueba el estado del pin......  hay que repasarlo
     // if (digitalRead(bomba_pin) == LOW){
        Serial.println(digitalRead(bomba_pin));
        digitalWrite(bomba_pin, 1);
        Serial.println("empieza el riego");
        otrotiempo=millis();
     // }    
    }
  }
//Fin de contar if de 15 minutos
// Esto conecta la bomba durante 1 min si la humedad esta baja

// si value es menos de un valor, por ejemplo 1500,  pon en marcha la bomba un minuto. 

    
     if (digitalRead(bomba_pin) == HIGH && (millis() - otrotiempo) > tiemporiego) {   // contar un minuto
          digitalWrite(bomba_pin, 0);
          Serial.println("termina el riego");
         }     
    }
  

String httpGETTemporizador(const char* serverName2) {
  HTTPClient http;
    
  // Your IP address with path or Domain name with URL path 
  http.begin(serverName2);
  
  // Send HTTP POST request
  int httpResponseCode = http.GET();
  
  String payload = "{}"; 
  
  if (httpResponseCode>0) {
    Serial.print("HTTP Response code: ");
    Serial.println(httpResponseCode);
    payload = http.getString();
  }
  else {
    Serial.print("Error code: ");
    Serial.println(httpResponseCode);
  }

  // Free resources
  http.end();

 return payload;
  }

  
   String httpGETHumedad(const char* serverName3) {
  HTTPClient http;
    
  // Your IP address with path or Domain name with URL path 
  http.begin(serverName3);
  
  // Send HTTP POST request
  int httpResponseCode = http.GET();
  
  String payload = "{}"; 
  
  if (httpResponseCode>0) {
    Serial.print("HTTP Response code: ");
    Serial.println(httpResponseCode);
    payload = http.getString();
  }
  else {
    Serial.print("Error code: ");
    Serial.println(httpResponseCode);
  }

  // Free resources
  http.end();

 return payload;
  }

Me doy cuenta que el tiempo de riego es una variable que podria determinarse tambien desde la web, por lo que voy a cambiarlo, Me gusta la idea de que espere 15 minutos entre riegos porque esto da tiempo a que se expanda la humedad por la tierra y pueda alcanzar al sensor. Pero poder controlar el tiempo de riego tambien determinará mucho los saltos, y dado que no tenemos prisa en llegar al valor objetivo de humedad, .... pues eso que voy a cambiarlo

He aprovechado los dias de espera para los nuevos componentes, placas de soldado, sensor de humedad capacitivo, etc… para mejorar la interface web.
Ahora mismo lo que mas me reconcome es poner un limitador al numero de veces al dia que pueda ponerse en marcha la bomba peristaltica, por supuesto podría hacerlo con un contador de millis por día… pero me parece una forma algo basta de hacerlo,… no se porque, se os ocurre otra manera?

15 min entre riegos es una locura!!! no hagas eso o vas a matar a la planta. Debes tener un sensor que te diga el nivel de humedad de suelo y entonces llevar la humedad de suelo a dicho valor y punto. Tampoco estresarla con tanto riego. Algunas plantas no se si es el caso de la tuya necesitan dejarlas un poco sin agua para que justamente se desarrollen.
Debes estudiar tu planta, pero repito 15 min es un período muy breve para regarlas.

hola… claro claro que seria una locura… tal y como lo concibes, pero lo que hace mi sistema es comprobar la humedad cada 15 minutos, y si esta por debajo de el umbral riega… … pero no hace un riego… completo… la bomba peristaltica de 12v funcionando a 5v da un riego por goteo, ademas la duración de ese riego tambien se puede determinar , pongamos 30 segundos, tras eso el riego para, sin medir en ese momento la humedad, espera otros 14min y 30 segundos y vuelve a medir la humedad, el resultado es que he regado con unas gotas y durante 14 minutos el agua se ha distribuido por la tierra, dando tiempo a alcanzar el sensor, si la humedad no ha alcanzado el sensor gotea otros 30 segundos y le da 15 min mas de tiempo al agua para humidificar la tierra antes de volver a medir, de esta forma soy mucho mas preciso que si riego midiendo, en el que el riego para cuando el agua alcanza el sensor… en mi experiencia hasta que se corrompio el sensor es una sesion de goteo o dos al día ahora en primavera… manteniendo la tierra mojadita sin que llegue nunca a drenar por exceso.
Pero por cuestiones de seguridad quiero limitar de alguna forma la cantidad de sesiones de goteo al día… para asegurarme que si se rompe el sensor no se pone a regar como loco…, probablemente lo mejor sea decirle que mida la humedad cada 4 horas, pero me gusta tener la grafica de la humedad cada 15 min porque da una idea muy clara de el estado de la planta

Hola hoy voy a poner el esquema que, a priori, pienso usar, soldando en una placa, no conozco ni se manejar programas que hagan estos esquemas asi que he usado el power point que a efectos de organizarme me sirve.


entiendo que todos los GND de la esp estan internamente unidos no? y lo mismo pasa con el conversor logico no? con conectar uno de los dos estan ambos conectados.

1 Like

Existe un programa para mostrar como montar los componentes en una plaqueta como la que estas usando. En esta sección lo hemos comentado alguna vez. No recuerdo el nombre en este momento.

Te sugiero el Fritzing, no me gusta mucho porque el novato tiende a poner lineas por cualquier lado y las líneas que representan conexiones se trazan ortogonalmente ( a 90°) y no en ángulos.
Lo bueno es que tiene los Arduinos, los reles, y te resultárá mas facil dibujarlo aunque sea electricamente y no montado en el PCB de desarrollo como el que tienes.

Gracias debo estar torpe, porque no he conseguido descargarmelo gratis… En fin lo que más me corroe ahora es que me ha llegado el nuevo sensor de humedad del suelo capacitivo y no soy capaz de hacerlo funcionar. Sensor v2.0

que no es el que ponen en la foto sino el 2.0 el que ponen todos las fotos en el comentario. El caso es que todos los tutoriales lo ponene en el pin 36 del esp32 (ver pinout en el primer post) pero no hay forma… si lo pongo en el 36 que en el pinout a mi entender es el marcado como SP me da una lectura mas o menos constante de 2360 con algo de variación pero independientemente de que este al aire o en el agua…
si en la programación lo pongo en el pin 36 pero conecto el Aout a el pin 39 marcado en la placa como SN entonces me da medidas de 325… de nuevo aproximadamente , con algo mas de variabilidad pero sin que influya en nada si el sensor esta al aire o al agua… desespero… He leido muchos posts, pero en casi todos parece que el problema termina por no solucionarse o no entiendo la solucion… ayuda? por cierto para probarlo lo hago con un codigo simplificado que os pongo:

 int sensor_pin = 36;
 int value ;
  
 void setup()
 {
   Serial.begin(115200);
   Serial.println("Reading");
   delay(2000);
 }
  
 void loop()
 {
  
   value= analogRead(sensor_pin);
    Serial.print(value);
   value = map(value,550,0,0,100);
   Serial.print("Moisture : ");
   Serial.print(value);
   Serial.println("%");
   delay(1000);
 }

Cualquier cosa leída por el ADC da valores entre 0 y 1023 de modo que tu map esta mal en los terminos 2 y 3
correge por esto

value = map(value, 0, 1023, 0,100);

Respecto del Fritzing veo que ahora pide una contibución de 8 euros. Bueno no creo que sea tanto, considerando que hace demasiado, dibujo, cad.

1 Like

Si el… map no me preocupa de momento, ya que lo que me fijo es en el Serial.print(value); de la linea anterior… de hecho probablemente no lo ponga en porcentaje sino en valor total, que probablemente me ayude mas a entender la dinamica de mi suelo sin perder resolucion… pero el mayor problema es que no me lee ningun cambio de humedad, he visto en algun post tuyo que aconsejabas poner una resistencia por ahi… de 10 k que no he entendido muy bien como o porque… pero voy a probar algo asi creo… si consigo aclararme

Vaaaaleee error encontrado en un fallo de conexion… en fin…
Surbyte, no se como ira en arduino pero este sensor en el pin36 del esp32 me da medidas de hasta 3330…o asi… calibrando en agua y en aire… (ya lo calibrare en mi suelo) se me queda la linea value = map(value,3450,1190,0,100); pues me da mas cuanto mas seco está, y en agua el miínimo en torno a 1190.

1 Like

El ESP32 tiene ADC de 12 bits si mal recuerdo. o Sea 0 a 4095.
Entonces no entrega 3330 sino que tu estas leyendo hasta 3.3 o 3300 mV. Tal vez tu tensión de referencia sea de 3330 mV.
No existe una condición de humedad con pura agua. Si con agua saturada que es la situación en la que la tierra no puede aboserver mas agua. Tal situación solo puedes establecerla en laboratorio, con una muestra de tu suelo y agregando agua hasta que comprueben que no absorve mas.

1 Like

Ahora la siguiente duda que me queda es si al ser capacitivo, puedo tenerlo energizado siempre,… o darle los 3.3v solo cuando vaya a medir mediante otro pin,… Y si es solo durante la medición… bastará con que este una linea de codigo de antes de la medición o convendría esperar medio segundo antes de medir?

He mirado la descripción de tu sensor y dice

El Sensor de humedad de suelo capacitivo v1.2 permite medir la humedad en el suelo utilizando el principio de capacitancia entre electrodos en lugar de resistencia, lo que aumenta considerablemente la vida útil del sensor. El electrodo posee una capa de protección anticorrosión para una mayor duración (no se oxida como el sensor resistivo).

Lo que quiere decir que no deberías tener problemas de corrosión.
Si quieres ṕuedes usar un pin para alimentarlo pero según el comentario deberías probar la duración del sensor. Si con el tiempo se degrada para la próxima entonces lo alimentas con un pin y listo. No es tan caro como para no hacer una simple prueba.

Medidas totalmente correctas, Ese sensor aunque se puede alimentar a 5v intermamente funciona a 3,3V y en seco te da la maxima. si en el agua diluyes sal baja hasta unos 990, la minima medicion sacala en tu suelo optimamente regado y actualizas la función MAP.
Saludos chicos.
Pd: Interensantisima vuestra conversasión, no me pierdo ni un post,estoy con lo mismo pero para una orquidea

Lo de el sensor ha sido toda una odisea… en realidad me llego el v2.0, le he cubierto los cantos con laca de uñas, que lo he visto recomendado en varios sitios, pues al parecer como el dieléctrico esta expuesto en los bordes puede coger agua por ahí. Mi sensor va a estar un una maceta, por lo que no voy a hacerle más modificaciones, pero encontré un post muy interesante en el que le quitan varios componentes al sensor y lo encapsulan para que resista lluvias… pinta bien pero la verdad es que entiendo la mitad. Os lo dejo: Mejorar el sensor de humedad del suelo

En cuanto a la iluminación, es también todo un mundo, que conozco lateralmente por el mundo de los acuarios. Lo primero, que no tengo claro que potencia de leds necesitaría para mis plantas, actualmente tengo un 10W que creo q serán suficiente aunque es probable que algo excesivos. Recuerdo que va a ser para especias, tipo albahaca, salvia… nada de plantas grandes, y va a estar a 15-20 cm de la planta. La lampara que elegí, está en el primer post, es una lampara de acuarios, por su protección a la humedad y porque es adecuada para las plantas en su crecimiento vegetativo, incluye 4 leds azules y el resto son más bien de luz día (unos 6500ºK) lo que da un aspecto a la luz bastante natural. Prefiero esto a los rojos y azules, pues el proyecto esta destinado a estar en el salón de mi casa y una luz de aspecto natural seria deseable. Pero lo cierto es que si en vez de esa luz consiguiera una a 5V , mejoraría mucho el proyecto, actualmente llega un cable a 220 Alterna a la caja del proyecto y ahí lo transformo a 5V DC con esto
Si tuviera todo a 5V el transformador lo pondría en el enchufe y así me ahorraría espacio en la caja y además seria todo mas seguro. Contemplo varias opciones … esta pero con la luces rojas y azules que me gustaría evitar… la opción de 9W probablemente…
O esta muy estetica pero no se como de fiable…
De momento he soldado en una placa pcb de esas de prototipado los pines para encajar el esp32, los 2 reles y el sensor de humedad, y estoy muy orgulloso de mi mismo, pues es la segunda vez que sueldo y he conseguido que quede decente, la primera vez tenían todas las soldaduras una pinta de soldaduras frias que “pa que”…
Ahora no sé muy bien cómo hacer las conexiones entre pines, como hay muchas cosas que se vana cruzar no veo más remedio que hacerlo con cables de pin a pin no? algún consejo? para mi es todo la primera vez.