Go Down

Topic: Huerto e Invernadero automatizados con web de control remota (Read 5288 times) previous topic - next topic

soket

Buenos dias,

Me presento, me llamo David y soy nuevo en el mundo de Arduino. Soy ingeniero Informático y siempre ha gustado trastear con electrónica aunque siempre aprendo a base de prueba/error.
Me gustaría que me ayudarais con un proyecto que me ronda la cabeza, tengo un huerto en una finca cerrada que solo visito los fines de semana, actualmente se riega con unos temporizadores diarios, sin ningún otro control y me gustaría poder tener mayor control.

Mi idea es componer pequeñas estacas autonomas (Como las de La Luz de los jardines que venden en los chinos ) que contenga:

- Sensor de humedad en la punta (Para poder enterrarlo)
- Arduino micro (si es posible)
- Sensor de humedad ambiente
- Sensor de temperatura
- Modulo transmisión de datos inhalambrico
- Bateria y placa solar

El sistema debería comprobar los parámetros de humedad ambiente, temperatura, humedad del suelo cada media hora y enviarlo los datos al servidor.

Me gustaría poder hacerme una idea de lo que necesito y ver por cuanto  dinero podría construir cada estaca de este tipo.
Si la idea de las estacas se va de presupuesto he pensado en conectar los sensores directamente al servidor por cable, pero no me gusta mucho la idea de tener todo lleno de cables…..

Por otro lado tendría que tener otro Arduino (Servidor) que reciba los datos de todas las estacas y se encargaría de:

- Abrir la electrovalvula del sector de riego concreto
- Mientras riega comprobar los datos de humedad cada 30 segundos
- Controlar el nivel de en los depósitos,
- Un control de las horas de luz que ha recibido al día
- Un pluviómetro para saber cuando llueve y cuanto

Por otro lado tengo un invernadero que también tendría su control de riego, humedad y temperatura pero ademas tendría que tener un motor paso a paso de 12v para poder abrir y cerrar la ventana automáticamente cuando lo crea necesario, este se podría conectar por cable al servidor

Todo debería funcionar con energía solar, ya que no tengo enchufe.
Tengo que ver como puedo realizar un control remoto, primero para:

- Enviar los datos a un servidor y almacenarlos
- Generar gráficas con esos datos
- Generar alertas antes determinados eventos (no para de regar durante mas de x tiempo, se esta quedando sin agua)
- Poder controlar de forma manual el riego y la ventana del invernadero, para poder abrir o cerrar en caso de algún fallo

Supongo que necesitara algún modulo 4G para enviar los datos a un servidor web

Antes de comenzar con el proyecto me gustara poder hacerme una idea de la inversion que necesitaría hacer en hadware. El tema de los sensores se que no es caro pero me pierdo en las baterías y placas solares

Todo lo que sea posible me lo construiré con mis manos, por ejemplo las estacas o el pluviómetro, a no ser que el precio sea muy muy bajo.

Debería dimensional las baterias para que pueda funcionar un par de días sin sol.

Gracias a todos

surbyte

Y has visto los al menso 10 ejemplos que hay en este foro de cosas parecidas a esta?
Donde? en proyectos, y solo hay que buscar.

Tambien hay en hardware y Software con preguntas relacionadas.

soket

Si, si he leído mucho de los mensajes pero para alguien nuevo en este mundo no es fácil hacerse una imagen final de todo lo necesario. Hay muchos post que se meten con cosas especificas, sensores de humedad, comunicaciones, placas solares, etc, pero es un océano de información abrumadora.

Siguiendo con mi investigación creo que para cada estaca necesitaría lo siguiente:

- Arduino micro +- 20E
- Modulo inalámbrico (NRF24L01) +- 2E
- Sensor temperatura y humedad ambiente DHT22 +- 3E
- Sensor humedad suelo FC-28 +- 2E
- Bateria 6000 mia 3m7v +- 6E
- Placa solar 3w 5v +- 10E
- Convertidor Lipo rider +- 12E

El calculo de la bateria y panel solar lo he realizado basándome en otros proyectos, no tengo nada y no puedo realizar pruebas para saber el consumo, por eso pedía ayuda.

La idea es que mida la temperatura. humedad, cada media hora y lo envié al Arduino master,
Mientras este el riego encendido el se medirá cada 30 segundo, para ello desde el master notificara a los esclavos que lean cada media hora.

He intentado buscar piezas de calidad y lo mas baratas posibles (AliExpress etc) y me sale un presupuesto de unos 55E cada estaca.

hay alguna alternativa al lipo rider mas económica?, mi idea es tener unas 12 estacas medidoras y con este presupuesto se me va de precio.

He visto alternativas al Arduino micro en AliExpress por 3 - 4 E, son fiables?, funcionan?

Por ultimo como veis la parte de bateria y panel, creéis que me puede funcionar 3 días sin sol?, siento no poder dar mas información sobre consumos ya que todo se basa en teoría.

Gracias y un saludo




jscarr2

Te aconsejo que leas mi trabajo "Control remoto de calefacción", que es el sistema que necesitas para controlar las unidades arduino, incluso también tendrías hecho los sensores de temperatura y humedad. Te faltaría el sensor de humedad del suelo y la alimentación mediante energía solar. Te faltaría en la lista poner un router 4G.

Espero que te sirva de ayuda, si necesitas alguna información mi correo es ayudadomotica@gmail.com. No me cuesta ayudarte ya que yo también quiero hacer algo parecido para un huerto que voy a montar.

soket

Buenas,

Siguiendo mi búsqueda para minimizar costes he encontrado 2 opciones:

- trabajar con modulos ESP8266 wifi, como hace @jscarr2, donde me quitaría 2 piezas, el Arduino micro y el transmisor, tendría la ventaja de ser wifi pero como desventaja el alto consumo.

- trabaja con los modelos RFM69W, que van por radiofrecuencia, en este caso también me quitaría el Arduino y el modulo de transmisión, la ventaja es el mínimo consumo.

Entiendo que para lo que los necesito me pueden servir los 2, necesito que una red de ellos se conecten con el master y cuando sea necesario el master se conecte con ellos para recibir información.

Alguna idea para sustituir el Convertidor Lipo rider por algo mas económico?, es la único pieza que dispara un poco el presupuesto

Un saludo y gracias

mavicente

Me apunto, estoy haciendo justo un proyecto muy similar.
Has mirado a usar node mcu, es muy similar a arduino y permite conexión wifi

surbyte

Has mirado a usar node mcu, es muy similar a arduino y permite conexión wifi
Te respondo con esta respuesta del propio autor del hilo

Quote
1. trabajar con modulos ESP8266 wifi, como hace @jscarr2, donde me quitaría 2 piezas, el Arduino micro y el transmisor, tendría la ventaja de ser wifi pero como desventaja el alto consumo.
O sea.. va a atrabajar con nodemcu.

cotarejo

Me quedo por aquí para ver cómo progresa el proyecto... estoy interesado en algo similar...

mavicente

Te respondo con esta respuesta del propio autor del hilo
Perdón no lo había visto.


soket

Buenas,

Efectivamente he descartado el uso de wifi por el alto consumo, quiero que el proyecto sea lo mas barato posible y una buena parte se va a ir en placas solares y baterías. Trabajare con modulo RFM69W

Para ir empezando me he centrado en lo que mas urgente me es, poder abrir y cerrar la ventana del invernadero dependiendo de la humedad y la temperatura. He comprado las siguientes piezas y estoy a la espera de que me lleguen:

- Arduino uno
- Motor paso a paso (Todavia no se cual elegir)
- Sensor DHT22
- L293D
- Tornillo roscado de impresoras CNC
- Potenciometro (Regular velocidad del motor)


Tengo una ventana abatible y mi idea es fijar el motor al marco superior, fijarle la varilla al eje del motor y en la parte de abajo realizar algún tipo de estructura fija que soporte la tuerca.

Cuando se quiera bajar la ventana accionare el motor y el giro de este ira enroscando la varilla dentro de la tuerca haciendo que la ventana se abra.

Cuando se quiera cerrar la ventana se realizara el proceso contrario. Dibujo muy mal pero sino se entiende podría intentar dibujarlo.

He desarrollado una primera versión del código:

Code: [Select]

// Stepper - Version: 1.1.2
#include <Stepper.h>

// DHT - Version: Latest
#include <DHT.h>

// Arduino Low Power - Version: 1.2.0
//#include <ArduinoLowPower.h>

#define STEPS 200
#define NUNVUELTAS 100
#define DHTTYPE DHT22

const int POT = A0;
const int DHTPin = 5;   
const float maxTemperature = 35 ;
const float maxHumidity = 70 ;
const int minRpm = 30 ;
const int maxRpm = 150 ;
const int openDirection = STEPS * NUNVUELTAS ;
const int closeDirection = STEPS * NUNVUELTAS * -1 ;
String stepperStatus = "" ;

DHT dht(DHTPin, DHTTYPE);
Stepper stepper(STEPS, 8, 9);

void setup() {
  Serial.begin(9600);
  Serial.println("Ventana");
  dht.begin();
}

void loop() {
// Apagamos 15 x 8 segundo, que es limite de tiempo
// for (int i = 0 ;  i  <  16 ; i++)
//   LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);

  //Coprobamos la temperatura y humedad
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();
 
  if (isnan(temperature) || isnan(humidity)) {
    //Failed to read from DHT sensor!
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
 
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println(" %\t");
 
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" *C ");
 
  //Lectura potenciómetro
  int potenciometer = analogRead(POT);
  //Establecemos la velocidad
  int velocity = map(potenciometer, 0, 1023, minRpm, maxRpm);
 
  if (isnan(velocity)) {
    //Failed to read Potencimeter
    Serial.println("Failed to read Potencimeter!");
    return;
  }
 
  Serial.print("Velocity: ");
  Serial.print(velocity);
  Serial.println(" RPM ");


  Serial.print("Posicion: ");
  Serial.println(stepperStatus);
 
  if (temperature > maxTemperature || humidity > maxHumidity) {
    if(stepperStatus != "Open") {
      Serial.println("Open Window!");
      move(velocity, openDirection);
      stepperStatus = "Open";
      delay(6000);
    }
  } else {
    if(stepperStatus != "Close") {
      Serial.println("Close Window!");
      move(velocity, closeDirection);
      stepperStatus = "Close";
      delay(6000);
    } 
  }
  Serial.println("End");
  delay(60000);
}

void move(int velocity, int direction) {
  Serial.print("Move engine: ");
  Serial.print(direction);
  Serial.println(" Direction ");
  stepper.setSpeed(velocity);
  stepper.step(direction);
  return;
}


que tal lo veis?

Segun me vayan llegando los componentes are avanzando.

PD: Sigo buscando una alternativa barata para el convertidor Lipo rider

soket

Buenos dias:

Mientras espero que me vengan los componentes estoy intentando ajustar al máximo el presupuesto de las estacas, he descubierto que el modulo RFM69W necesita de un Arduino, ósea que ese gasto no lo quito.

tengo en mente lo siguiente:

- Arduino Nano pro
- Modulo
- Panel solar 1w 6v
- Bateria 6000 mah
- convertidor: Convertidor Es valido para lo que necesito?

- Sensor DHT22
- Sensor humedad Suelo

He calculado que con ese panel solar y quitando un 20% la bateria se podría cargar en 4,5 horas de luz solar.
Como veis el dimensionamenito de la bateria, me quedo corto?

Gracias y un saludo

Lagger18


soket

Pues no lo he pensado por desconocimiento, la verdad que son novatillo en esto y no sabia que existían estos módulos, si he entendido bien el ESP32 es como un Arduino + comunicación Wifi + bajo consumo y que se puede programar igual que Arduino, cierto?

De esta forma puedo prescindir del Arduino y del modulo RFM69W con las ventajas de la comunicación Wifi, cierto?

Gracias

Lagger18

Si, se puede programar con el IDE de arduino, es muy fácil de configurar y hay muchos tutoriales. si buscas un poco por china ni llegan a 10€ y lo tienes todo ahi (los esp8266 son parecidos, son los predecesores).

Y si ves que el wifi te puede dar jaleo por alguna razón o vives a <10km monta LoRa y lo puedes ver directamente desde casa. Lo malo es que la trama de datos que puede mandar es mucho mas pequeña que la de Wifi, pero para mandar los datos de los sensores te sobra!

soket

Pufff, que jaleo, con tanta información. El tema del wifi lo descarte por consumos, mi idea es ahorrar en la placa solar y la bateria.

Por otro lado no se que montar si un mesh network, si usar lora, si solo wifi, si comunicación bidirectional, cada vez lo veo mas complicado y con menos ejemplos en internet

Mi primera idea era:

- 15 clientes y 1 servidor,
- cada 15 minutos leen la temperatura y la enviar al servidor
- cuando el servidor activa el riego comunica a los clientes que deben leer la humedad cada 10 segundos
- cuando la humedad media alcanza la mínima detiene el riego
- comunica a los clientes que vuelvan a enviar las lecturas cada 15 minutos

Esto me implica comunicación bidireccional, e implementar algún tipo de websocket para comunicar el servidor con los clientes.

Ahora estoy pensando esto:

- 15 clientes y 1 servidor
- cada 15 minutos leen la temperatura y la enviar al servidor
- cada x tiempo pedirle al servidor la humedad mínima
- Si la humedad esta por debajo de la mínima leer y enviar cada 10 segundos, aquí puedo devolver el estado del riego
- cuando la humedad media alcanza la mínima detiene el riego
- cuando el estado del riego paso a enviar cada 15 minutos

De esta forma me evito tener que implementar la comunicación del servidor con los clientes, pero tengo que implementar un nuevo endpoint para que lea la temperatura mínima.
También podría darse el caso de que este leyendo cada 10 segundo y el riego no este activo

El servidor y los sensores estarán a manos de 50 metros unos de otros.

que os parece?


Go Up