Page 6 of 6

Re: Data-green

Posted: Tue May 02, 2017 7:20 am
by xacarana
Ya casi esta listo el proyecto, para que todo quede perfecto se debe realizar los siguientes ajustes:
  1. Infografico o instrucciones gráficas donde se explica como funciona el equipo
  2. Agregar información a la interfaz del equipo (Logo de la empresa, explicación de luz, etiqueta dimmer, etc)
  3. Realizar video donde se explique el funcionamiento y donde se promocione el proyecto
  4. Poner una descripción de las imágenes publicadas
  5. Publicar la presentación del proyecto
Adicionalmente recuerden que el mínimo producto viable creado les sirve para participar de hackathons, ruedas de negocios o para participar de concursos, acá les publico algunos enlaces de interés.

Re: Data-green

Posted: Thu May 04, 2017 6:26 am
by Juanl123
Terminación del Prototipo.

Image
Image
Image
Image
Image

Re: Data-green

Posted: Thu May 04, 2017 6:50 am
by Juanl123
Logo Data Green

Image

Re: Data-green

Posted: Thu May 04, 2017 7:02 am
by Juanl123
código final del prototipo

Code: Select all

// include the library code:
#include <LiquidCrystal.h>
//double temp;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(15, 16, 5, 4, 3, 8);


volatile int NumPulsos; //variable para la cantidad de pulsos recibidos
int PinSensor = 2;    //Sensor conectado en el pin 2
float factor_conversion=7.11; //para convertir de frecuencia a caudal
float volumen=0;
long dt=0; //variación de tiempo por cada bucle
long t0=0; //millis() del bucle anterior
float m3;
#define tiempo 1000
//---Función que se ejecuta en interrupción---------------
void ContarPulsos ()  
{ 
  NumPulsos++;  //incrementamos la variable de pulsos
} 

//---Función para obtener frecuencia de los pulsos--------
int ObtenerFrecuecia() 
{
  int frecuencia;
  NumPulsos = 0;   //Ponemos a 0 el número de pulsos
  interrupts();    //Habilitamos las interrupciones
  delay(tiempo);   //muestra de 1 segundo
  noInterrupts(); //Deshabilitamos  las interrupciones
  frecuencia=NumPulsos; //Hz(pulsos por segundo)
  return frecuencia;
}

#include <SD.h>

File myFile;

#define rojo 14
#define azul 6
#define verde 7

void setup() {

  Serial.begin(9600);
 Serial.print("Iniciando SD ...");
  if (!SD.begin(4)) {
    Serial.println("No se pudo inicializar");
    return;
  }
 
     pinMode(PinSensor, INPUT); 
  attachInterrupt(0,ContarPulsos,RISING);//(Interrupción 0(Pin2),función,Flanco de subida)
 Serial.println ("Envie '1' para restablecer el volumen a 0 Litros"); 
  t0=millis();
  
  
//  Serial.println("inicializacion exitosa");

   Serial.begin(9600);
  pinMode(rojo,OUTPUT);
  pinMode(azul,OUTPUT);
  pinMode(verde,OUTPUT);
  digitalWrite(rojo,HIGH);
  digitalWrite(azul,LOW);
  digitalWrite(verde,HIGH);
  
  
  // put your setup code here, to run once:
//  lcd.createChar(0, customChar);
  lcd.begin(16, 2);
  // Print a message to the LCD.
  //lcd.print("texto a probar");
  delay(5000);
  lcd.clear();

  Serial.begin(9600); 
  pinMode(PinSensor, INPUT); 
  attachInterrupt(0,ContarPulsos,RISING);//(Interrupción 0(Pin2),función,Flanco de subida)
 Serial.println ("Envie '1' para restablecer el volumen a 0 Litros"); 
  t0=millis();

}

void loop() {
  // put your main code here, to run repeatedly:
  if (Serial.available()) {
    if(Serial.read()=='1')volumen=0;//restablecemos el volumen si recibimos 'r'
  }
  double frecuencia=ObtenerFrecuecia(); //obtenemos la frecuencia de los pulsos en Hz
  double caudal_L_m=frecuencia/factor_conversion; //calculamos el caudal en L/m
  dt=millis()-t0; //calculamos la variación de tiempo
  t0=millis();
  volumen=volumen+(caudal_L_m/60)*(dt/1000); // volumen(L)=caudal(L/s)*tiempo(s)
 m3=volumen * 1 / 1000;

  myFile = SD.open("datos.txt", FILE_WRITE);//abrimos  el archivo
 if (Serial.available()) {
    if(Serial.read()=='1')volumen=0;//restablecemos el volumen si recibimos 'r'
  }
 
   //-----Enviamos por el puerto serie---------------
  if(volumen>10.50){
    Serial.println("Encendiendo led  rojo");
     digitalWrite(rojo, LOW);
         digitalWrite(azul,HIGH);
         digitalWrite(verde,HIGH);
    
    }

  if(volumen<5.10 || volumen < 10.0){
    Serial.println("Encendiendo led  azul");
    digitalWrite(rojo, HIGH);
         digitalWrite(azul,LOW);
         digitalWrite(verde,HIGH);   
    
    }  
  
    if( volumen <0.0 || volumen < 5.0){
      Serial.println("Encendiendo led  verde");
      digitalWrite(rojo, HIGH);
         digitalWrite(azul,HIGH);
         digitalWrite(verde,LOW);
      
      }

      

  
  // Serial.print(" ");
  Serial.print("metros cubicos : ");
  Serial.print(m3,3);
  Serial.print ("  Caudal: "); 
  Serial.print (caudal_L_m,3); 
  //Serial.print(" ");
  Serial.print (" L/mint Volumen: "); 
  Serial.print (volumen,3); 
  Serial.println (" L");

   if (myFile) { 
        Serial.print("Escribiendo SD: ");
      
       // myFile.print("Tiempo(ms)=");
     //   myFile.print(millis());
        myFile.print(" L/mint Volumen: ");
        myFile.println(volumen,3);
         myFile.print("  Caudal: ");
         myFile.println(caudal_L_m,3);
     
        myFile.close(); //cerramos el archivo
          
            
  
  } else {
    Serial.println("Error al abrir el archivo");
  }
  delay(1000);

  lcd.setCursor(0,0);
  lcd.print("caudal");
  lcd.setCursor(0,1);
  lcd.print(caudal_L_m);
   lcd.setCursor(7,0);
   lcd.print("volumen");
   lcd.setCursor(7,7);
   lcd.print(volumen);

   

}

Re: Data-green

Posted: Sun May 07, 2017 4:20 pm
by juanrivera
juanrivera wrote:Diagrama de secuencia
Image
Actualizacion diagrama secuencia
Image

Re: Data-green

Posted: Mon May 08, 2017 10:07 pm
by juanrivera
Entrega final
como entrega final se publico el proyecto en :https://www.instructables.com/
Nuestro proyecto es: https://www.instructables.com/id/Sensor ... Domestico/

Re: Data-green

Posted: Tue May 09, 2017 7:27 am
by xacarana
Image