/*
VERSION: 2.2 (Arduino MEGA)
AUTOR: hiddenotebook
USO: Este sketch es un cultivo autonomo avanzado.
Agradecimientos:
En especial por su gran ayuda a colaboradores del foro http://forum.arduino.cc
- surbyte, por sus multiples aportaciones sin duda una gran persona.
- noter, Por hacer posible el uso correcto del LCD
Licencia:
Este sketch es Libre para mejorar y compartir! Se prohibe su uso con fines comerciales sin autorizacion del autor.
*/
#include <LiquidCrystal.h> // Libreria para LCD
#include <Wire.h> // Libreria comunicacion I2C
#include "RTClib.h" // Libreria RTC
#include "DHT.h" // Librería DHT
// RELAY PUMP1
#define RELAY_ON 0
#define RELAY_OFF 1
#define RELAY_1 39
// END RELAY PUMP1
// DHT22
#define DHTPIN 25 //Seleccionamos el pin en el que se conectará el sensor
#define DHTTYPE DHT22 //Se selecciona el DHT22(hay otros DHT)
DHT dht(DHTPIN, DHTTYPE); //Variable usada para comunicarse con el sensor
// END DHT22
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Asigniacion de pines para LCD Keypad Shield.
RTC_DS1307 RTC; // Creamos objeto reloj RTC.
bool PowerON = false; // Variable booleana para el encendido.
int sensorHumedad; // Variable para SoilSensor.
int histeresis = 5; // Margen de riego.
// Array para mostrar los dias de la semana gracias a surbyte.
const char* diaDeSemana[7]= {"Domingo", "Lunes", "Martes", "Miercol","Jueves", "Viernes", "Sabado"};
// Creamos un nuevo caracter una gota de agua para el LCD
byte newChar[8] =
{
B00000,
B00100,
B01110,
B11111,
B11111,
B11111,
B01110,
B00000
};
// Configuracion:
void setup()
{
// POWER ON/OFF ATX:
pinMode(53,OUTPUT); // Para usar un LED de encendido.
pinMode(23, OUTPUT); // Para encender la fuente con un LOW.
digitalWrite(23, HIGH); // Inicia la Fuente apagada.
pinMode(45, INPUT_PULLUP); // Para leer el boton.
// END POWER ON/OFF ATX.
// RELAY PUMP1
pinMode(RELAY_1, OUTPUT);
// END RELAY PUMP1
dht.begin(); //Se inicia el sensor DHT22
Wire.begin(); // Inicia el puerto I2C.
RTC.begin(); // Inicia la comunicacion con el RTC.
lcd.createChar(0, newChar);
lcd.begin(16, 2); // Inicia LCD 16X2.
lcd.clear(); // Limpiamos la pantalla.
// Establece la fecha y hora, Comentar una vez establecida la hora!! Descomentar para establecer hora.
// RTC.adjust(DateTime(2015,06,13, 21,44,00));
} // Cerramos la llave de la configuracion.
// Funciones
void loop() // Esta funcion se mantiene en bucle...
{
// POWER ON OFF ATX:
bool boton = digitalRead(45);
if (boton == LOW)
{
digitalWrite(23, PowerON); // Como el pin va invertido, lo establecemos antes de cambiar el estado.
PowerON = ! PowerON ; // Ivertimos el estatus de la fuente.
digitalWrite(53, PowerON); // Encender o apagar el LED.
}
// END POWER ON OF ATX.
sensorHumedad = analogRead(A15); // Leemos sensor de suelo, entrada analogica pin A15:
sensorHumedad = map (sensorHumedad, 0, 1023, 100, 0); // Mapeamos el valor del sensor de 0 a 100.
int h = dht.readHumidity(); //Se lee la humedad DHT22
int t = dht.readTemperature(); //Se lee la temperatura DHT22
// TIME LCD
DateTime now = RTC.now(); // Obtiene la fecha y hora del RTC.
lcd.setCursor(8, 0); // Cursor en fila 1 posicion 1.
char myBuffer[16]; // Creamos myBuffer para mostrar bien los dijitos del 1 al 9.
sprintf(myBuffer, "%02d:%02d", now.hour(), now.minute());
lcd.print(myBuffer); // Muestra la hora, minutos y segundos.
lcd.setCursor(0, 0); // Cursor en fila 1 posicion 12.
lcd.print(diaDeSemana[now.dayOfWeek()]); // Muestra dia de la semana.
// END TIME LCD
// SOIL_SENSOR LCD
lcd.setCursor(0, 1); // Cursor en fila 2 posicion 1.
lcd.write((byte)0); // Muestra una gota de agua.
lcd.print(sensorHumedad); // Muestra valor leido de humedad.
lcd.print("% "); // Muestra Signo de %
// END SOIL_SENSOR LCD
// DHT22 LCD
lcd.setCursor(6, 1); // Cursor en fila 2 posicion 1.
lcd.print(t); // Muestra la temperatura.
lcd.print((char)223); // Simbolo de los grados.
lcd.print("C "); // La C de centigrados
lcd.print(h); // Muestta la Humedad
lcd.print("%"); // Simbolo de %
lcd.println("H"); // Muestra caracter H
// END DHT22 LCD
// RELAY BOMBA1
if (sensorHumedad < 85)
{
digitalWrite(RELAY_1, RELAY_ON);
}
if (sensorHumedad > (85 + histeresis))
{
digitalWrite(RELAY_1, RELAY_OFF);
}
// END RELAY BOMBA1
} // Cerramos la llave del bucle y vuelve arriba.
Uno de mis objetivos es precisamente poner paneles solares porque vivo en el último piso y tengo acceso a la azotea cultivar con la energía del sol sería lo suyo. Tengo pensado hacer los paneles desde 0Me estreno en el foro para felicitarte tio!!
Increible lo que estás apretando ese arduino jajaja
Hace tiempo que a mi me ronda una idea parecida por la cabeza, un cultivo totalmente autosuficiente. Cuando digo totalmente me refiero a meter dos paneles fotovoltaicos junto a un rack de baterías y poder usar los paneles cuando haga sol para encender las luces y en caso de no disponer de sol tirar de baterías. Eso sería ya la hostia.
Por cierto, el ciclo de hysteresis deberías hacerlo más grande, no? Tendrás muchas encendidas y apagadas, las plantas capaz que estarían siempre humedad.. Capaz que es mejor programarlo como que cuando baje de x valor regar durante unos minutos que puedas preestablecer o simplemente tirar tantos litros (he visto que puedes medir cabal) en función del tiesto que tenemos. También tendrás que apañar mejor esa goma de goteo para repartir mejor y cubrir más área jeje.
He visto que tenéis problemas con lo del sensor de temperatura. Lo que más se acostumbra a utilizar es una cosa llamada tremopar. Es minúsculo y barato. Consiste en una resistencia eléctrica que varia en función de la temperatura. El problema que puedes tener es que tal vez tengas que acondicionar la señal, es decir, no es conectar y disfrutar. Tendrías que mirar el rango al que trabaja/oscila y necesitarías un pin analógico del arduino para tratarlo. Lo bueno es que tendrías mucha precisión y es casi instantáneo.
Bueno, he visto esto y me he emocionado jajaja Voy a hacer una leída más detenida. Ya me iré pasando. Si hay algún tema técnico relacionado con electrónica y electricidad es posible que pueda ayudarte.
Me has incitado a ponerme a diseñar algo.. veremos! jeje
Un saludo.
/*
FECHA: 14/06/1015
AUTOR: hiddenotebook
VERSION: V2.2
USO: Este sketch es un cultivo autonomo avanzado, usando un Arduino MEGA2560
Agradecimientos:
En especial por su gran ayuda a colaboradores del foro http://forum.arduino.cc
- surbyte, por sus multiples aportaciones sin duda una gran persona.
- noter, Por hacer posible el uso correcto del LCD
Licencia:
Este sketch es Libre para mejorar y compartir! Se prohibe su uso con fines comerciales sin autorizacion del autor.
*/
#include <LiquidCrystal.h> // Libreria para LCD.
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h> // Libreria comunicacion I2C.
#include "RTClib.h" // Libreria RTC.
#include "DHT.h" // Librería DHT.
// RELAY PUMP1
#define RELAY_ON 0
#define RELAY_OFF 1
#define RELAY_1 39
// END RELAY PUMP1
// DHT22
#define DHTPIN 25 // Seleccionamos el pin en el que se conectará el sensor.
#define DHTTYPE DHT22 // Se selecciona el DHT22(hay otros DHT).
DHT dht(DHTPIN, DHTTYPE); // Variable usada para comunicarse con el sensor DHT22.
// END DHT22
// ETHERNET
byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC
IPAddress ip(169, 254, 48, 41); //IP
EthernetServer servidor(80); // Puerto HTTP estándar
int PIN_LED= 13;
String readString=String(30); //lee los caracteres de una secuencia en una cadena.
String state=String(3);//Los strings se representan como arrays de caracteres (tipo char)
// END ETHERNET
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Asigniacion de pines para LCD Keypad Shield.
RTC_DS1307 RTC; // Creamos objeto reloj RTC.
bool PowerON = false; // Variable booleana para el encendido.
int sensorHumedad; // Variable para SoilSensor.
int histeresis = 5; // Margen de riego.
// Array para mostrar los dias de la semana gracias a surbyte.
const char* diaDeSemana[7]= {"Domingo", "Lunes", "Martes", "Miercoles","Jueves", "Viernes", "Sabado"};
// Creamos un par de caracteres, gota de agua y reloj para el LCD.
byte Drop[8] =
{
B00000,
B00100,
B01110,
B11111,
B11111,
B11111,
B01110,
B00000
};
byte Clock[8] =
{
B01110,
B11011,
B11011,
B11000,
B11111,
B11111,
B01110,
B00000
};
// Configuracion:
void setup()
{
// POWER ON/OFF ATX:
pinMode(53,OUTPUT); // Para usar un LED de encendido.
pinMode(23, OUTPUT); // Para encender la fuente con un LOW.
digitalWrite(23, HIGH); // Inicia la Fuente apagada.
pinMode(45, INPUT_PULLUP); // Para leer el boton.
// END POWER ON/OFF ATX.
// RELAY PUMP1
pinMode(RELAY_1, OUTPUT);
// END RELAY PUMP1
//ETHERNET
Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
servidor.begin();
pinMode(PIN_LED,OUTPUT);
digitalWrite(PIN_LED,LOW);
state="OFF";
// END ETHERNET
dht.begin(); //Se inicia el sensor DHT22.
Wire.begin(); // Inicia el puerto I2C.
RTC.begin(); // Inicia la comunicacion con el RTC.
lcd.createChar(0, Drop);
lcd.createChar(1, Clock);
lcd.begin(16, 2); // Inicia LCD 16X2.
lcd.clear(); // Limpiamos la pantalla.
// Establece la fecha y hora, Comentar una vez establecida la hora!! Descomentar para establecer hora.
// RTC.adjust(DateTime(2015,06,13, 21,44,00));
} // Cerramos la llave de la configuracion.
// Funciones
void loop() // Esta funcion se mantiene en bucle...
{
// POWER ON/OFF ATX:
bool boton = digitalRead(45); // Variale booleana para leer el boton.
if (boton == LOW)
{
digitalWrite(23, PowerON); // Como el pin va invertido, lo establecemos antes de cambiar el estado.
PowerON = ! PowerON ; // Ivertimos el estatus de la fuente.
digitalWrite(53, PowerON); // Encender o apagar el LED.
}
// END POWER ON/OFF ATX.
// ETHERNET
//EthernetClient Crea un cliente que se puede conectar a una dirección específica de Internet IP
EthernetClient cliente= servidor.available();
if(cliente) {
boolean lineaenblanco=true;
while(cliente.connected()) {
if(cliente.available()) {
char c=cliente.read();
if(readString.length()<30) {
readString.concat(c);
//Cliente conectado
//Leemos petición HTTP caracter a caracter
//Almacenar los caracteres en la variable readString
}
if(c=='\n' && lineaenblanco) //Si la petición HTTP ha finalizado
{
int LED = readString.indexOf("LED=");
if(readString.substring(LED,LED+5)=="LED=T") {
digitalWrite(PIN_LED,HIGH);
state="ON"; }
else if (readString.substring(LED,LED+5)=="LED=F") {
digitalWrite(PIN_LED,LOW);
state="OFF";
}
//Cabecera HTTP estándar
cliente.println("HTTP/1.1 200 OK");
cliente.println("Content-Type: text/html");
cliente.println(); //Página Web en HTML
cliente.println("<html>");
cliente.println("<head>");
cliente.println("<title>LAMPARA ON/OFF</title>");
cliente.println("</head>");
cliente.println("<body width=100% height=100%>");
cliente.println("<center>");
cliente.println("<h1>LAMPARA ON/OFF</h1>");
cliente.print("<br><br>");
cliente.print("Estado de la lampara: ");
cliente.print(state);
cliente.print("<br><br><br><br>");
cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED=T\'>");
cliente.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED=F\'>");
cliente.println("</center>");
cliente.println("</body>");
cliente.println("</html>");
cliente.stop();
//Cierro conexión con el cliente.
readString="";
}
}
}
}
// END ETHERNET
sensorHumedad = analogRead(A15); // Leemos sensor de suelo, entrada analogica pin A15:
sensorHumedad = map (sensorHumedad, 0, 1023, 100, 0); // Mapeamos el valor del sensor de 0 a 100.
int h = dht.readHumidity(); //Se lee la humedad DHT22.
int t = dht.readTemperature(); //Se lee la temperatura DHT22.
// TIME LCD
DateTime now = RTC.now(); // Obtiene la fecha y hora del RTC.
lcd.setCursor(10, 0); // Cursor en fila 10 posicion 1.
lcd.write((byte)1); // Muestra el caracter creado reloj.
lcd.setCursor(11, 0); // Cursor en fila 11 posicion 1.
char myBuffer[16]; // Creamos myBuffer para mostrar bien los dijitos del 1 al 9.
sprintf(myBuffer, "%02d:%02d", now.hour(), now.minute());
lcd.print(myBuffer); // Muestra la hora, minutos y segundos.
lcd.setCursor(0, 0); // Cursor en fila 1 posicion 12.
lcd.print(diaDeSemana[now.dayOfWeek()]); // Muestra dia de la semana.
// END TIME LCD
// SOIL_SENSOR LCD
lcd.setCursor(0, 1); // Cursor en fila 2 posicion 1.
lcd.write((byte)0); // Muestra la gota de agua.
lcd.print(sensorHumedad); // Muestra valor leido de humedad.
lcd.print("% "); // Muestra Signo de %
// END SOIL_SENSOR LCD
// DHT22 LCD
lcd.setCursor(6, 1); // Cursor en fila 2 posicion 1.
lcd.print(t); // Muestra la temperatura.
lcd.print((char)223); // Simbolo de los grados.
lcd.print("C "); // La C de centigrados.
lcd.print(h); // Muestta la Humedad.
lcd.print("%"); // Muestra simbolo de %
lcd.println("H"); // Muestra caracter H
// END DHT22 LCD
// RELAY BOMBA1
if (sensorHumedad < 85) // Si el sensor detecta menos de 80%H
{
digitalWrite(RELAY_1, RELAY_ON); // Activamos rele y bomba
}
if (sensorHumedad > (85 + histeresis))// Si detecta mas de 90%H
{
digitalWrite(RELAY_1, RELAY_OFF); // Apaga el rele y la bomba
}
// END RELAY BOMBA1
} // Cerramos la llave del bucle y vuelve arriba.
/*
FECHA: 14/06/1015
AUTOR: hiddenotebook
VERSION: V2.2
USO: Este sketch es un cultivo autonomo avanzado, usando un Arduino MEGA2560
Agradecimientos:
En especial por su gran ayuda a colaboradores del foro http://forum.arduino.cc
- surbyte, por sus multiples aportaciones sin duda una gran persona.
- noter, Por hacer posible el uso correcto del LCD
Licencia:
Este sketch es Libre para mejorar y compartir! Se prohibe su uso con fines comerciales sin autorizacion del autor.
*/
#include <LiquidCrystal.h> // Libreria para LCD.
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h> // Libreria comunicacion I2C.
#include "RTClib.h" // Libreria RTC.
#include "DHT.h" // Librería DHT.
// RELAY PUMP1
#define RELAY_ON 0
#define RELAY_OFF 1
#define RELAY_1 39
// END RELAY PUMP1
// DHT22
#define DHTPIN 25 // Seleccionamos el pin en el que se conectará el sensor.
#define DHTTYPE DHT22 // Se selecciona el DHT22(hay otros DHT).
DHT dht(DHTPIN, DHTTYPE); // Variable usada para comunicarse con el sensor DHT22.
// END DHT22
// ETHERNET
byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC
IPAddress ip(169, 254, 48, 41); //IP
EthernetServer servidor(80); // Puerto HTTP estándar
int PIN_LED= 13;
String readString=String(30); //lee los caracteres de una secuencia en una cadena.
String state=String(3);//Los strings se representan como arrays de caracteres (tipo char)
// END ETHERNET
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Asigniacion de pines para LCD Keypad Shield.
RTC_DS1307 RTC; // Creamos objeto reloj RTC.
bool PowerON = false; // Variable booleana para el encendido.
int sensorHumedad; // Variable para SoilSensor.
int histeresis = 5; // Margen de riego.
// Array para mostrar los dias de la semana gracias a surbyte.
const char* diaDeSemana[7]= {"Domingo", "Lunes", "Martes", "Miercoles","Jueves", "Viernes", "Sabado"};
// Creamos un par de caracteres, gota de agua y reloj para el LCD.
byte Drop[8] =
{
B00000,
B00100,
B01110,
B11111,
B11111,
B11111,
B01110,
B00000
};
byte Clock[8] =
{
B01110,
B11011,
B11011,
B11000,
B11111,
B11111,
B01110,
B00000
};
// Configuracion:
void setup()
{
// POWER ON/OFF ATX:
pinMode(53,OUTPUT); // Para usar un LED de encendido.
pinMode(23, OUTPUT); // Para encender la fuente con un LOW.
digitalWrite(23, HIGH); // Inicia la Fuente apagada.
pinMode(45, INPUT_PULLUP); // Para leer el boton.
// END POWER ON/OFF ATX.
// RELAY PUMP1
pinMode(RELAY_1, OUTPUT);
// END RELAY PUMP1
//ETHERNET
Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
servidor.begin();
pinMode(PIN_LED,OUTPUT);
digitalWrite(PIN_LED,LOW);
state="OFF";
// END ETHERNET
dht.begin(); //Se inicia el sensor DHT22.
Wire.begin(); // Inicia el puerto I2C.
RTC.begin(); // Inicia la comunicacion con el RTC.
lcd.createChar(0, Drop);
lcd.createChar(1, Clock);
lcd.begin(16, 2); // Inicia LCD 16X2.
lcd.clear(); // Limpiamos la pantalla.
// Establece la fecha y hora, Comentar una vez establecida la hora!! Descomentar para establecer hora.
// RTC.adjust(DateTime(2015,06,13, 21,44,00));
} // Cerramos la llave de la configuracion.
// Funciones
void loop() // Esta funcion se mantiene en bucle...
{
// POWER ON/OFF ATX:
bool boton = digitalRead(45); // Variale booleana para leer el boton.
if (boton == LOW)
{
digitalWrite(23, PowerON); // Como el pin va invertido, lo establecemos antes de cambiar el estado.
PowerON = ! PowerON ; // Ivertimos el estatus de la fuente.
digitalWrite(53, PowerON); // Encender o apagar el LED.
}
// END POWER ON/OFF ATX.
// ETHERNET
//EthernetClient Crea un cliente que se puede conectar a una dirección específica de Internet IP
EthernetClient cliente= servidor.available();
if(cliente) {
boolean lineaenblanco=true;
while(cliente.connected()) {
if(cliente.available()) {
char c=cliente.read();
if(readString.length()<30) {
readString.concat(c);
//Cliente conectado
//Leemos petición HTTP caracter a caracter
//Almacenar los caracteres en la variable readString
}
if(c=='\n' && lineaenblanco) //Si la petición HTTP ha finalizado
{
int LED = readString.indexOf("LED=");
if(readString.substring(LED,LED+5)=="LED=T") {
digitalWrite(PIN_LED,HIGH);
state="ON"; }
else if (readString.substring(LED,LED+5)=="LED=F") {
digitalWrite(PIN_LED,LOW);
state="OFF";
}
//Cabecera HTTP estándar
cliente.println("HTTP/1.1 200 OK");
cliente.println("Content-Type: text/html");
cliente.println(); //Página Web en HTML
cliente.println("<html>");
cliente.println("<head>");
cliente.println("<title>LAMPARA ON/OFF</title>");
cliente.println("</head>");
cliente.println("<body width=100% height=100%>");
cliente.println("<center>");
cliente.println("<h1>LAMPARA ON/OFF</h1>");
cliente.print("<br><br>");
cliente.print("Estado de la lampara: ");
cliente.print(state);
cliente.print("<br><br><br><br>");
cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED=T\'>");
cliente.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED=F\'>");
cliente.println("</center>");
cliente.println("</body>");
cliente.println("</html>");
cliente.stop();
//Cierro conexión con el cliente.
readString="";
}
}
}
}
// END ETHERNET
sensorHumedad = analogRead(A15); // Leemos sensor de suelo, entrada analogica pin A15:
sensorHumedad = map (sensorHumedad, 0, 1023, 100, 0); // Mapeamos el valor del sensor de 0 a 100.
int h = dht.readHumidity(); //Se lee la humedad DHT22.
int t = dht.readTemperature(); //Se lee la temperatura DHT22.
// TIME LCD
DateTime now = RTC.now(); // Obtiene la fecha y hora del RTC.
lcd.setCursor(10, 0); // Cursor en fila 10 posicion 1.
lcd.write((byte)1); // Muestra el caracter creado reloj.
lcd.setCursor(11, 0); // Cursor en fila 11 posicion 1.
char myBuffer[16]; // Creamos myBuffer para mostrar bien los dijitos del 1 al 9.
sprintf(myBuffer, "%02d:%02d", now.hour(), now.minute());
lcd.print(myBuffer); // Muestra la hora, minutos y segundos.
lcd.setCursor(0, 0); // Cursor en fila 1 posicion 12.
lcd.print(diaDeSemana[now.dayOfWeek()]); // Muestra dia de la semana.
// END TIME LCD
// SOIL_SENSOR LCD
lcd.setCursor(0, 1); // Cursor en fila 2 posicion 1.
lcd.write((byte)0); // Muestra la gota de agua.
lcd.print(sensorHumedad); // Muestra valor leido de humedad.
lcd.print("% "); // Muestra Signo de %
// END SOIL_SENSOR LCD
// DHT22 LCD
lcd.setCursor(6, 1); // Cursor en fila 2 posicion 1.
lcd.print(t); // Muestra la temperatura.
lcd.print((char)223); // Simbolo de los grados.
lcd.print("C "); // La C de centigrados.
lcd.print(h); // Muestta la Humedad.
lcd.print("%"); // Muestra simbolo de %
lcd.println("H"); // Muestra caracter H
// END DHT22 LCD
// RELAY BOMBA1
if (sensorHumedad < 85) // Si el sensor detecta menos de 80%H
{
digitalWrite(RELAY_1, RELAY_ON); // Activamos rele y bomba
}
if (sensorHumedad > (85 + histeresis))// Si detecta mas de 90%H
{
digitalWrite(RELAY_1, RELAY_OFF); // Apaga el rele y la bomba
}
// END RELAY BOMBA1
} // Cerramos la llave del bucle y vuelve arriba.
Vale voy a probar hoy vi algunas fotos y el Ethernet tiene que estar conectado al router, por eso siempre digo que voy a necesitar un wifi ya estoy en eso para no usar cables@Zion Lion Prueba cuando lo hagas desde el movil a activar la opcion de "ver como ordenador" en el navegador del movil y luego accede a tu sistema, a ver si asi te va, un saludo y enhorabuena macho, te lo estas currando.
Bienvenido amigo muchas gracias para seguir este proyecto no hace falta saber programar el código lo pongo porque con cargarlo en Arduino ya esta hecho el trabajo, eso sí hay que conectar todo como yo lo hago y por eso voy poniendo el esquema de conexiones, y si quedan dudas a preguntar el caso es aprender cosas nuevas entre todos.Hola Zion Lion. tomo asiento en este tu proyecto, pues acabo de empezar en este mundo, y despues de leer bastante me decidi por indor( construccion casera) + led´s ( construccion casera ) + automatismos programadores de tiempo.
Lo de los automatismos con pc ó este tipo de programadores multiusos de programacion abierta tambien lo contemple, pero al no encontrar proyectos terminados o muy complicados lo descarte( hasta que encontre el tuyo). y aunque no entiendo nada de programacion, seguro que algo aprendere. donde mas podre aportar sera en temas bricoleros y automatismos .
Asi que desde aqui te animo a seguir y terminar tu proyecto ,como no con la ayuda de toda la comunidad de este y otros foros a los que tambien agradezco su aportacion.
Saludos
Creo que puedes usar la fuente atx para alimentar LEDs pero yo no he probado... buena pregunta tengo que probar lo mismo me ahorro los driversPuedo echar una mano con estas cosas, una pregunta, esto puede aguantar poner muchos leds en serie para el cultivo en interior?
Y me interesa guardar los datos claro ver el historial de todo ayuda mucho a prevenir cosas en el cultivo tu serías de gran ayuda aquí porque yo ese tema no lo he tocado aún espero que te quedes por aquí jajajaSi señor, muy interesante. Yo empecé un proyecto similar, solo que me interesaba guardar los datos así que conecté el arduino a una raspberry. Con eso lo guardaba en un server mysql y construía gráficas de temperatura y humedad en una web que podía acceder en local o remoto. Por diversos asuntos lo deje de lado mientras probaba a introducir ordenes en el arduino desde la raspberry, por consola o con botones en la web.
Puedo echar una mano con estas cosas, una pregunta, esto puede aguantar poner muchos leds en serie para el cultivo en interior?
Creo que puedes usar la fuente atx para alimentar LEDs pero yo no he probado... buena pregunta tengo que probar lo mismo me ahorro los drivers
Pues te va a quedar muy bien terminado, total, si lo tienes todo, pues da rienda suelta a tu lado artistico a ver como te quedaSuena muy razonable voy a seguir tus consejos si senor.
Estoy pensando en lijar el panel y pintarlo de blanco mate del todo total tengo compresor y pistola y la pintura con la pistola queda muy pro.
Que tal brother @alejokaban aquí andamos, oye una cosa tu me comentaste que hiciste un proyecto con unos robots verdad que se comunicaban vía wifi o bluetooth, pues ahora estoy con esa parte del proyecto con un ESP8266 wifi para controlar todo vía web tu ayuda seria muy valiosa en estos momentos el modulo trabaja con comandos AT+
Bueno pana espero que pronto vuelvas de la montaña y le demos un poco a esto un abrazo.
Claro el rele soporta 220v puedes conectar lo que sea.Me estoy animando a hacer un bicho de estos, y asi dedicarle menos tiempo a mis plantikis y nas a mi familia, funcionaria igual con focos de 600w?