lunes, 11 de diciembre de 2017

LECTOR DE GASES

  ONOSBY ARCAS
VISTA FINAL


1°DISEÑO y ENSAMBLE
Desarrollado en solidworks




BASE SENSOR

COMPUESTA POR:
-Sensor
-4 Imanes de 3mm de diámetro x 1mm de grosor
-Led smd blanco
-Resistencia * (en este video no aparece)
-PCB * (en este video no aparece)
-Base de madera de MDF de 2.6mm




























2° Selección de Gases y Sensores
      Se seleccionaron los siguientes sensores: MQ-2, MQ-135 , MQ - 5, DHT
HOJAS DE DATOS





3° PROGRAMAS

PROGRAMA | Detector de sensor
Básicamente lo que este programa hace es que por medio del pin A1 de arduino
entra una corriente que varia sengun el sensor conectado y asi es como detecta el sensor conectado

  5v-------Resistencia-------A1

#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
#define analogpila 1
#define PINTO 4
#define vent 13
#define pinled 9
float ass=0,voltaj=0,SENSOR=0;
int analogValor = 0,ledDelay=800;
float voltajeeeee = 0;


U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA,U8X8_PIN_NONE);


void setup(){u8g2.begin();
 pinMode(pinled,OUTPUT);
  pinMode(vent,OUTPUT);
  pinMode(PINTO,INPUT);
 
 }

void scan() {
   analogValor = analogRead(analogpila);
  voltajeeeee = 0.0048*analogValor;
  delay(500);
}


 
void loop(){

int cambio = digitalRead(PINTO);
  digitalWrite(vent,LOW);
  digitalWrite(pinled,LOW);
int swi =0;

if(cambio==1){
  digitalWrite(pinled,HIGH);
  int m;
    u8g2.clearBuffer();
u8g2.drawLine(35-m,34,35-m,37);
u8g2.drawLine(36-m,33,36-m,38);
u8g2.drawLine(37-m,34,37-m,41);
u8g2.drawLine(38-m,36,38-m,43);
u8g2.drawLine(39-m,38,39-m,45);
u8g2.drawLine(40-m,40,40-m,46);
u8g2.drawLine(41-m,43,41-m,46);

u8g2.drawLine(39-m,18,39-m,30);
u8g2.drawLine(40-m,16,40-m,34);
u8g2.drawLine(41-m,17,41-m,36);
u8g2.drawLine(42-m,18,42-m,40);
u8g2.drawLine(43-m,20,43-m,44);
u8g2.drawLine(44-m,25,44-m,46);
u8g2.drawLine(45-m,32,45-m,47);
u8g2.drawLine(46-m,38,46-m,50);
u8g2.drawLine(47-m,40,47-m,52);
u8g2.drawLine(48-m,46,48-m,54);
u8g2.drawLine(49-m,48,49-m,54);

u8g2.drawLine(47-m,8,47-m,28);
u8g2.drawLine(48-m,6,48-m,33);
u8g2.drawLine(49-m,5,49-m,37);
u8g2.drawLine(50-m,4,50-m,42);
u8g2.drawLine(51-m,4,51-m,46);
u8g2.drawLine(52-m,4,52-m,52);
u8g2.drawLine(53-m,4,53-m,54);
u8g2.drawLine(54-m,6,54-m,56);
u8g2.drawLine(55-m,20,55-m,57);
u8g2.drawLine(56-m,28,56-m,58);
u8g2.drawLine(57-m,36,57-m,58);
u8g2.drawLine(58-m,53,58-m,58);

u8g2.drawLine(59-m,6,59-m,22);
u8g2.drawLine(60-m,5,60-m,52);
u8g2.drawLine(61-m,3,61-m,55);
u8g2.drawLine(62-m,2,62-m,57);
u8g2.drawLine(63-m,2,63-m,58); //izquierda
u8g2.drawLine(64-m,2,64-m,58);//centro
u8g2.drawLine(65-m,2,65-m,57);// derecha
u8g2.drawLine(66-m,3,66-m,54);
u8g2.drawLine(67-m,4,67-m,50);
u8g2.drawLine(68-m,5,68-m,46);


u8g2.drawLine(80-m,8,80-m,28);
u8g2.drawLine(79-m,6,79-m,33);
u8g2.drawLine(78-m,5,78-m,37);
u8g2.drawLine(77-m,4,77-m,42);
u8g2.drawLine(76-m,4,76-m,46);
u8g2.drawLine(75-m,4,75-m,52);
u8g2.drawLine(74-m,4,74-m,54);
u8g2.drawLine(73-m,6,73-m,56);
u8g2.drawLine(72-m,20,72-m,57);
u8g2.drawLine(71-m,28,71-m,58);
u8g2.drawLine(70-m,36,70-m,58);
u8g2.drawLine(69-m,53,69-m,58);

u8g2.drawLine(88-m,18,88-m,30);
u8g2.drawLine(87-m,16,87-m,34);
u8g2.drawLine(86-m,17,86-m,36);
u8g2.drawLine(85-m,18,85-m,40);
u8g2.drawLine(84-m,20,84-m,44);
u8g2.drawLine(83-m,25,83-m,46);
u8g2.drawLine(82-m,32,82-m,47);
u8g2.drawLine(81-m,38,81-m,50);
u8g2.drawLine(80-m,40,80-m,52);
u8g2.drawLine(79-m,46,79-m,54);
u8g2.drawLine(78-m,48,78-m,54);

u8g2.drawLine(92-m,34,92-m,37);
u8g2.drawLine(91-m,33,91-m,38);
u8g2.drawLine(90-m,34,90-m,41);
u8g2.drawLine(89-m,36,89-m,43);
u8g2.drawLine(88-m,38,88-m,45);
u8g2.drawLine(87-m,40,87-m,46);
u8g2.drawLine(86-m,43,86-m,46);
u8g2.sendBuffer();
delay(2000);


m=62;
int n=6;

u8g2.clearBuffer();
 u8g2.drawLine(11,5+n,5,20+n);
 u8g2.drawLine(12,5+n,5,21+n);
 u8g2.drawLine(13,5+n,5,22+n);
 u8g2.drawLine(14,5+n,5,23+n);
 u8g2.drawLine(15,5+n,5,24+n);
 u8g2.drawLine(16,5+n,5,26+n);
 u8g2.drawLine(5,26+n,26,26+n);
 u8g2.drawLine(6,27+n,25,27+n);
 u8g2.drawLine(7,28+n,25,28+n);
 u8g2.drawLine(16,5+n,35,5+n);
 u8g2.drawLine(15,6+n,36,6+n);
 u8g2.drawLine(14,7+n,34,7+n);
 u8g2.drawLine(37,7+n,26,28+n);
 u8g2.drawLine(36,6+n,26,27+n);
 u8g2.drawLine(35,7+n,26,28+n);
 u8g2.drawLine(37,8+n,27,28+n);
 u8g2.drawLine(37,9+n,28,28+n);
 u8g2.drawLine(37,9+n,27,28+n);

 u8g2.drawLine(40,5+n,40,28+n);
 u8g2.drawLine(41,5+n,41,28+n);
 u8g2.drawLine(42,5+n,42,28+n);
  u8g2.drawLine(43,5+n,43,28+n);
 u8g2.drawLine(44,28+n,57,5+n);
 u8g2.drawLine(44,27+n,56,5+n);
 u8g2.drawLine(44,26+n,55,6+n);
 u8g2.drawLine(44,25+n,54,7+n);
 u8g2.drawLine(44,24+n,53,8+n);
 u8g2.drawLine(44,23+n,52,9+n);
 u8g2.drawLine(54,8+n,58,6+n);
 u8g2.drawLine(54,7+n,59,7+n);
 u8g2.drawLine(60,10+n,60,28+n);
 u8g2.drawLine(61,10+n,61,28+n);
 u8g2.drawLine(62,10+n,62,28+n);
 u8g2.drawLine(63,10+n,63,28+n);
 u8g2.drawLine(61,5+n,63,10+n);
 u8g2.drawLine(54,9+n,63,10+n);
 u8g2.drawLine(54,8+n,63,10+n);
 u8g2.drawLine(60,5+n,62,10+n);
 u8g2.drawLine(59,5+n,61,10+n);
 u8g2.drawLine(58,5+n,60,10+n);
 u8g2.drawLine(55,10+n,58,5+n);
 u8g2.drawLine(55,8+n,62,8+n);

  u8g2.drawLine(11+m,5+n,5+m,20+n);
 u8g2.drawLine(12+m,5+n,5+m,21+n);
 u8g2.drawLine(13+m,5+n,5+m,22+n);
 u8g2.drawLine(14+m,5+n,5+m,23+n);
 u8g2.drawLine(15+m,5+n,5+m,24+n);
 u8g2.drawLine(16+m,5+n,5+m,26+n);
 u8g2.drawLine(5+m,26+n,26+m,26+n);
 u8g2.drawLine(6+m,27+n,25+m,27+n);
 u8g2.drawLine(7+m,28+n,25+m,28+n);
 u8g2.drawLine(16+m,5+n,35+m,5+n);
 u8g2.drawLine(15+m,6+n,36+m,6+n);
 u8g2.drawLine(14+m,7+n,34+m,7+n);
 u8g2.drawLine(37+m,7+n,26+m,28+n);
 u8g2.drawLine(36+m,6+n,26+m,27+n);
 u8g2.drawLine(35+m,7+n,26+m,28+n);
 u8g2.drawLine(37+m,8+n,27+m,28+n);
 u8g2.drawLine(37+m,9+n,28+m,28+n);
 u8g2.drawLine(37+m,9+n,27+m,28+n);

 u8g2.drawLine(107,5+n,123,5+n);
 u8g2.drawLine(106,6+n,123,6+n);
 u8g2.drawLine(105,7+n,123,7+n);
 u8g2.drawLine(100,26+n,123,26+n);
 u8g2.drawLine(100,27+n,122,27+n);
 u8g2.drawLine(100,28+n,121,28+n);
 u8g2.drawLine(108,15+n,120,15+n);
 u8g2.drawLine(108,16+n,120,16+n);
 u8g2.drawLine(108,17+n,120,17+n);
 u8g2.drawLine(107,7+n,107,17+n);
 u8g2.drawLine(106,7+n,106,16+n);
 u8g2.drawLine(105,7+n,105,15+n);
 u8g2.drawLine(121,26+n,121,15+n);
 u8g2.drawLine(122,26+n,122,16+n);
 u8g2.drawLine(123,26+n,123,17+n);


u8g2.drawLine(5,34+n,123,34+n);
  u8g2.setFont(u8g2_font_crox1t_tf);
u8g2.setCursor(7,47+n); 
u8g2.print("ARCAS TECHNOLOGY'S");
u8g2.sendBuffer();
delay(1500);
  swi++;
 
u8g2.clearBuffer();
  u8g2.sendBuffer();
}


while(swi==1){
  for(int tiempo =0;tiempo!=1;tiempo++){
    SENSOR=0;
  ass=0;
  analogValor = analogRead(analogpila);
  voltajeeeee = 0.0048*analogValor;
   
 if (voltajeeeee>=.02){
   
for(int luna=0;luna!=6;luna++) {
  if(luna==0){
     Serial.println("DETECTANDO SENSOR");
  }
  analogValor = analogRead(analogpila);
float  voltaj = 0.0048*analogValor;
ass= ass+voltaj;
    
  delay(50);
if(luna==5){
  SENSOR=ass/5;
}
  }


//MQ135  

if (SENSOR>=.03 && SENSOR<.30){
   digitalWrite(vent,HIGH);
   u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(20,25); 
u8g2.print("SENSOR");
 u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.setCursor(33,41); 
u8g2.print("MQ-135"); 
 u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.setCursor(25,55); 
u8g2.print("CAMBIE PIC");
u8g2.sendBuffer();
delay(1000);
}

//MQ2  
else if(SENSOR>=.60 && SENSOR<1.10){
      digitalWrite(vent,HIGH);
   u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(20,25); 
u8g2.print("SENSOR");
 u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.setCursor(39,41); 
u8g2.print("MQ-2"); 
 u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.setCursor(25,55); 
u8g2.print("CAMBIE PIC");
u8g2.sendBuffer();
delay(1000);
}


//DHT
else if (SENSOR>=1.90 && SENSOR<8.90){
    u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(20,25); 
u8g2.print("SENSOR");
 u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.setCursor(43,41); 
u8g2.print("DHT"); 
 u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.setCursor(25,55); 
u8g2.print("CAMBIE PIC");
u8g2.sendBuffer();
delay(1000);
}
 
}
else{
   u8g2.setFont(u8g2_font_ncenB12_tr);
u8g2.setCursor(0,25); 
u8g2.print("NO DETECTO");
 u8g2.setCursor(22,45); 
u8g2.print("SENSOR");
u8g2.sendBuffer();
delay (1000);
  }
  }
swi=2;
}
u8g2.clearBuffer(); 
u8g2.sendBuffer();
}



FUNCIONAMIENTO CON SENSOR CONECTADO


SENSOR CONECTADO MQ-2

SENSOR CONECTADO MQ-135

SENSOR CONECATDO DHT



FUNCIONAMIENTO SIN SENSOR CONECTADO








PROGRAMA | DHT SENSOR DE TEMPERATURA
Este programa solo se enfoca al sensor DHT

#include "DHT.h"
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
int DHTPIN= 12;    
#define DHTTYPE DHT11 
DHT dht(DHTPIN, DHTTYPE);
#define analogpila 1
#define PINTO 4
#define pinled 9

float ass=0,voltaj=0,SENSOR=0;
int analogValor = 0,ledDelay=800;
float voltajeeeee = 0;


U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA,U8X8_PIN_NONE);


void setup(){u8g2.begin();
dht.begin(); 
 pinMode(pinled,OUTPUT);
  pinMode(PINTO,INPUT);
 
 }

void scan() {
   analogValor = analogRead(analogpila); 
voltajeeeee = 0.0048*analogValor;
  Serial.print("Vol::");
 Serial.println(voltajeeeee);
  delay(500);
}


 
void loop(){

int cambio = digitalRead(PINTO);
  digitalWrite(pinled,LOW);
int swi =0;
if(cambio==1){
    digitalWrite(pinled,HIGH);
  int m;
    u8g2.clearBuffer();
u8g2.drawLine(35-m,34,35-m,37);
u8g2.drawLine(36-m,33,36-m,38);
u8g2.drawLine(37-m,34,37-m,41);
u8g2.drawLine(38-m,36,38-m,43);
u8g2.drawLine(39-m,38,39-m,45);
u8g2.drawLine(40-m,40,40-m,46);
u8g2.drawLine(41-m,43,41-m,46);

u8g2.drawLine(39-m,18,39-m,30);
u8g2.drawLine(40-m,16,40-m,34);
u8g2.drawLine(41-m,17,41-m,36);
u8g2.drawLine(42-m,18,42-m,40);
u8g2.drawLine(43-m,20,43-m,44);
u8g2.drawLine(44-m,25,44-m,46);
u8g2.drawLine(45-m,32,45-m,47);
u8g2.drawLine(46-m,38,46-m,50);
u8g2.drawLine(47-m,40,47-m,52);
u8g2.drawLine(48-m,46,48-m,54);
u8g2.drawLine(49-m,48,49-m,54);

u8g2.drawLine(47-m,8,47-m,28);
u8g2.drawLine(48-m,6,48-m,33);
u8g2.drawLine(49-m,5,49-m,37);
u8g2.drawLine(50-m,4,50-m,42);
u8g2.drawLine(51-m,4,51-m,46);
u8g2.drawLine(52-m,4,52-m,52);
u8g2.drawLine(53-m,4,53-m,54);
u8g2.drawLine(54-m,6,54-m,56);
u8g2.drawLine(55-m,20,55-m,57);
u8g2.drawLine(56-m,28,56-m,58);
u8g2.drawLine(57-m,36,57-m,58);
u8g2.drawLine(58-m,53,58-m,58);

u8g2.drawLine(59-m,6,59-m,22);
u8g2.drawLine(60-m,5,60-m,52);
u8g2.drawLine(61-m,3,61-m,55);
u8g2.drawLine(62-m,2,62-m,57);
u8g2.drawLine(63-m,2,63-m,58); //izquierda
u8g2.drawLine(64-m,2,64-m,58);//centro
u8g2.drawLine(65-m,2,65-m,57);// derecha
u8g2.drawLine(66-m,3,66-m,54);
u8g2.drawLine(67-m,4,67-m,50);
u8g2.drawLine(68-m,5,68-m,46);


u8g2.drawLine(80-m,8,80-m,28);
u8g2.drawLine(79-m,6,79-m,33);
u8g2.drawLine(78-m,5,78-m,37);
u8g2.drawLine(77-m,4,77-m,42);
u8g2.drawLine(76-m,4,76-m,46);
u8g2.drawLine(75-m,4,75-m,52);
u8g2.drawLine(74-m,4,74-m,54);
u8g2.drawLine(73-m,6,73-m,56);
u8g2.drawLine(72-m,20,72-m,57);
u8g2.drawLine(71-m,28,71-m,58);
u8g2.drawLine(70-m,36,70-m,58);
u8g2.drawLine(69-m,53,69-m,58);

u8g2.drawLine(88-m,18,88-m,30);
u8g2.drawLine(87-m,16,87-m,34);
u8g2.drawLine(86-m,17,86-m,36);
u8g2.drawLine(85-m,18,85-m,40);
u8g2.drawLine(84-m,20,84-m,44);
u8g2.drawLine(83-m,25,83-m,46);
u8g2.drawLine(82-m,32,82-m,47);
u8g2.drawLine(81-m,38,81-m,50);
u8g2.drawLine(80-m,40,80-m,52);
u8g2.drawLine(79-m,46,79-m,54);
u8g2.drawLine(78-m,48,78-m,54);

u8g2.drawLine(92-m,34,92-m,37);
u8g2.drawLine(91-m,33,91-m,38);
u8g2.drawLine(90-m,34,90-m,41);
u8g2.drawLine(89-m,36,89-m,43);
u8g2.drawLine(88-m,38,88-m,45);
u8g2.drawLine(87-m,40,87-m,46);
u8g2.drawLine(86-m,43,86-m,46);
u8g2.sendBuffer();
delay(2000);
m=62;
int n=6;

u8g2.clearBuffer();
 u8g2.drawLine(11,5+n,5,20+n);
 u8g2.drawLine(12,5+n,5,21+n);
 u8g2.drawLine(13,5+n,5,22+n);
 u8g2.drawLine(14,5+n,5,23+n);
 u8g2.drawLine(15,5+n,5,24+n);
 u8g2.drawLine(16,5+n,5,26+n);
 u8g2.drawLine(5,26+n,26,26+n);
 u8g2.drawLine(6,27+n,25,27+n);
 u8g2.drawLine(7,28+n,25,28+n);
 u8g2.drawLine(16,5+n,35,5+n);
 u8g2.drawLine(15,6+n,36,6+n);
 u8g2.drawLine(14,7+n,34,7+n);
 u8g2.drawLine(37,7+n,26,28+n);
 u8g2.drawLine(36,6+n,26,27+n);
 u8g2.drawLine(35,7+n,26,28+n);
 u8g2.drawLine(37,8+n,27,28+n);
 u8g2.drawLine(37,9+n,28,28+n);
 u8g2.drawLine(37,9+n,27,28+n);

 u8g2.drawLine(40,5+n,40,28+n);
 u8g2.drawLine(41,5+n,41,28+n);
 u8g2.drawLine(42,5+n,42,28+n);
  u8g2.drawLine(43,5+n,43,28+n);
 u8g2.drawLine(44,28+n,57,5+n);
 u8g2.drawLine(44,27+n,56,5+n);
 u8g2.drawLine(44,26+n,55,6+n);
 u8g2.drawLine(44,25+n,54,7+n);
 u8g2.drawLine(44,24+n,53,8+n);
 u8g2.drawLine(44,23+n,52,9+n);
 u8g2.drawLine(54,8+n,58,6+n);
 u8g2.drawLine(54,7+n,59,7+n);
 u8g2.drawLine(60,10+n,60,28+n);
 u8g2.drawLine(61,10+n,61,28+n);
 u8g2.drawLine(62,10+n,62,28+n);
 u8g2.drawLine(63,10+n,63,28+n);
 u8g2.drawLine(61,5+n,63,10+n);
 u8g2.drawLine(54,9+n,63,10+n);
 u8g2.drawLine(54,8+n,63,10+n);
 u8g2.drawLine(60,5+n,62,10+n);
 u8g2.drawLine(59,5+n,61,10+n);
 u8g2.drawLine(58,5+n,60,10+n);
 u8g2.drawLine(55,10+n,58,5+n);
 u8g2.drawLine(55,8+n,62,8+n);

  u8g2.drawLine(11+m,5+n,5+m,20+n);
 u8g2.drawLine(12+m,5+n,5+m,21+n);
 u8g2.drawLine(13+m,5+n,5+m,22+n);
 u8g2.drawLine(14+m,5+n,5+m,23+n);
 u8g2.drawLine(15+m,5+n,5+m,24+n);
 u8g2.drawLine(16+m,5+n,5+m,26+n);
 u8g2.drawLine(5+m,26+n,26+m,26+n);
 u8g2.drawLine(6+m,27+n,25+m,27+n);
 u8g2.drawLine(7+m,28+n,25+m,28+n);
 u8g2.drawLine(16+m,5+n,35+m,5+n);
 u8g2.drawLine(15+m,6+n,36+m,6+n);
 u8g2.drawLine(14+m,7+n,34+m,7+n);
 u8g2.drawLine(37+m,7+n,26+m,28+n);
 u8g2.drawLine(36+m,6+n,26+m,27+n);
 u8g2.drawLine(35+m,7+n,26+m,28+n);
 u8g2.drawLine(37+m,8+n,27+m,28+n);
 u8g2.drawLine(37+m,9+n,28+m,28+n);
 u8g2.drawLine(37+m,9+n,27+m,28+n);

 u8g2.drawLine(107,5+n,123,5+n);
 u8g2.drawLine(106,6+n,123,6+n);
 u8g2.drawLine(105,7+n,123,7+n);
 u8g2.drawLine(100,26+n,123,26+n);
 u8g2.drawLine(100,27+n,122,27+n);
 u8g2.drawLine(100,28+n,121,28+n);
 u8g2.drawLine(108,15+n,120,15+n);
 u8g2.drawLine(108,16+n,120,16+n);
 u8g2.drawLine(108,17+n,120,17+n);
 u8g2.drawLine(107,7+n,107,17+n);
 u8g2.drawLine(106,7+n,106,16+n);
 u8g2.drawLine(105,7+n,105,15+n);
 u8g2.drawLine(121,26+n,121,15+n);
 u8g2.drawLine(122,26+n,122,16+n);
 u8g2.drawLine(123,26+n,123,17+n);
u8g2.drawLine(5,34+n,123,34+n);
  u8g2.setFont(u8g2_font_crox1t_tf);
u8g2.setCursor(7,47+n); 
u8g2.print("ARCAS TECHNOLOGY'S");
u8g2.sendBuffer();
delay(1500);
  swi++;
u8g2.clearBuffer();
  u8g2.sendBuffer();
}
while(swi==1){
   for(int tiempo =0;tiempo!=1;tiempo++){
    SENSOR=0;
  ass=0;
  analogValor = analogRead(analogpila);
  voltajeeeee = 0.0048*analogValor;
   
   
for(int luna=0;luna!=6;luna++) {
  analogValor = analogRead(analogpila);
float  voltaj = 0.0048*analogValor;
ass= ass+voltaj;
if(luna==5){
  SENSOR=ass/5;
}
  }

  u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(25,30); 
u8g2.print("SENSOR");

  u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.setCursor(45,45); 
u8g2.print("DHT"); 
u8g2.sendBuffer();
delay(800);
 float h = dht.readHumidity();
  int t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    u8g2.clearBuffer();         
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(0,30); 
u8g2.print("CONECTE SENSOR"); 
u8g2.sendBuffer();
    return;
  }
  float hic = dht.computeHeatIndex(t, h, false);
u8g2.clearBuffer();  
u8g2.setFont(u8g2_font_helvB10_tf);
u8g2.setCursor(21,12); 
u8g2.print("Temperatura");
u8g2.setFont(u8g2_font_helvR10_tf);
u8g2.setCursor(50,28); 
u8g2.print(t);u8g2.print(" C");
u8g2.drawCircle(68,18,1.7);
      
u8g2.setFont(u8g2_font_helvB08_tf);
u8g2.setCursor(75,45); 
u8g2.print("Humedad");
u8g2.setFont(u8g2_font_helvR08_tf);
u8g2.setCursor(81,58); 
u8g2.print(h);u8g2.print("%");

u8g2.setFont(u8g2_font_helvB08_tf);
u8g2.setCursor(10,45); 
u8g2.print("S.Termica");
u8g2.setFont(u8g2_font_helvR08_tf);
u8g2.setCursor(16,58); 
u8g2.print(hic);u8g2.print(" C");
u8g2.drawCircle(44,50,1);
u8g2.sendBuffer();
delay(2500);
  }
swi=2;
}
u8g2.clearBuffer(); 
u8g2.sendBuffer();
}


FUNCIONAMIENTO



PROGRAMA | SENSOR MQ-2


float RL_VALOR=5,MQ1=0,RAL=9.83,GAS_LP=0;
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

String inputstring = ""; 
float LPCurve[3]={2.3,0.21,-0.47};
float Ro=10;
U8G2_SSD1306_128X32_UNIVISION_F_SW_I2C u8g2(U8G2_R0,SCL,SDA,U8X8_PIN_NONE);

void setup(){
  Serial.begin(9600);
u8g2.begin();
u8g2.clearBuffer();         
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(0,30); 
u8g2.print("Calibrando"); 
u8g2.sendBuffer();
Ro = Calibracion(MQ1);  
 }


 
void loop(){

  for(int bola=4,bota=4;bola!=46,bota!=11;bola++,bota++){
  u8g2.clearBuffer(); 
  u8g2.setFont(u8g2_font_courB08_tf);
  u8g2.setCursor(52,11); 
  u8g2.print("MQ-2");
  u8g2.drawCircle(bola,bota,2, U8G2_DRAW_ALL);
  u8g2.drawLine(0,15,128,15);
  u8g2.drawLine(0,13,128,13);
  u8g2.setFont(u8g2_font_helvR12_tf);
  u8g2.setCursor(0,30); 
  u8g2.print("LPG:");         
  u8g2.setFont(u8g2_font_timR12_tf);
  u8g2.setCursor(38,30); 
  u8g2.print(porcentaje_gas(lecturaMQ(MQ1)/Ro,GAS_LP));
  u8g2.setFont(u8g2_font_helvR08_tf);
  u8g2.setCursor(100,30); 
  u8g2.print("PPM");
  u8g2.sendBuffer();         
  delay(1);
}

for(int bola=10,bota=10;bola!=46,bota!=4;bola++,bota--){
  u8g2.clearBuffer(); 
  u8g2.setFont(u8g2_font_courB08_tf);
  u8g2.setCursor(52,11); 
  u8g2.print("MQ-2");
  u8g2.drawCircle(bola,bota,2, U8G2_DRAW_ALL);
  u8g2.drawLine(0,15,128,15);
  u8g2.drawLine(0,13,128,13);
  u8g2.setFont(u8g2_font_helvR12_tf);
  u8g2.setCursor(0,30); 
  u8g2.print("LPG:");         
  u8g2.setFont(u8g2_font_timR12_tf);
  u8g2.setCursor(38,30); 
  u8g2.print(porcentaje_gas(lecturaMQ(MQ1)/Ro,GAS_LP));
  u8g2.setFont(u8g2_font_helvR08_tf);
  u8g2.setCursor(100,30); 
  u8g2.print("PPM");
  u8g2.sendBuffer();         
  delay(1);
}for(int bola=16,bota=4;bola!=46,bota!=10;bola++,bota++){
  u8g2.clearBuffer(); 
  u8g2.setFont(u8g2_font_courB08_tf);
  u8g2.setCursor(52,11); 
  u8g2.print("MQ-2");
  u8g2.drawCircle(bola,bota,2, U8G2_DRAW_ALL);
  u8g2.drawLine(0,15,128,15);
  u8g2.drawLine(0,13,128,13);
  u8g2.setFont(u8g2_font_helvR12_tf);
  u8g2.setCursor(0,30); 
  u8g2.print("LPG:");         
  u8g2.setFont(u8g2_font_timR12_tf);
  u8g2.setCursor(38,30); 
  u8g2.print(porcentaje_gas(lecturaMQ(MQ1)/Ro,GAS_LP));
  u8g2.setFont(u8g2_font_helvR08_tf);
  u8g2.setCursor(100,30); 
  u8g2.print("PPM");
  u8g2.sendBuffer();         
  delay(1);
}for(int bola=22,bota=10;bola!=46,bota!=4;bola++,bota--){
  u8g2.clearBuffer(); 
  u8g2.setFont(u8g2_font_courB08_tf);
  u8g2.setCursor(52,11); 
  u8g2.print("MQ-2");
  u8g2.drawCircle(bola,bota,2, U8G2_DRAW_ALL);
  u8g2.drawLine(0,15,128,15);
  u8g2.drawLine(0,13,128,13);
  u8g2.setFont(u8g2_font_helvR12_tf);
  u8g2.setCursor(0,30); 
  u8g2.print("LPG:");         
  u8g2.setFont(u8g2_font_timR12_tf);
  u8g2.setCursor(38,30); 
  u8g2.print(porcentaje_gas(lecturaMQ(MQ1)/Ro,GAS_LP));
  u8g2.setFont(u8g2_font_helvR08_tf);
  u8g2.setCursor(100,30); 
  u8g2.print("PPM");
  u8g2.sendBuffer();         
  delay(1);
}



}

float calc_res(int raw_adc)
{return ( ((float)RL_VALOR*(1023-raw_adc)/raw_adc));}

float Calibracion(float mq_pin){
int i;
float val=0;
for (i=0;i<50;i++) {
val += calc_res(analogRead(mq_pin));
delay(50);}

val = val/50;                                                                                    
val = val/RAL;
return val;
}

float lecturaMQ(int mq_pin){
int i;
float rs=0;
for (i=0;i<5;i++) {
rs += calc_res(analogRead(mq_pin));
delay(50);
 }
rs = rs/5;
return rs;
}

 int porcentaje_gas(float rs_ro_ratio, int gas_id){
if ( gas_id == GAS_LP ) {
return porcentaje_gas(rs_ro_ratio,LPCurve);
   }
  return 0;
}
int porcentaje_gas(float rs_ro_ratio, float *pcurve){
return (pow(10, (((log(rs_ro_ratio)-pcurve[1])/pcurve[2]) + pcurve[0])));
}


FUNCIONAMIENTO






Gracias por ver proyecto si gustan una guia para desarrollarlo dejen un comentario















miércoles, 6 de diciembre de 2017

NOCHE DE MUERTOS

YOHUALI XOKOYOK

El planteamiento de esta maqueta comenzó con el planteamiento del concepto, desde el inicio al pensar en esta tradición tan propia de los mexicanos lo relacionamos con los tradicionales mariachis. 
Con esto en mente empezamos con el desarrollo del  concepto e inmediatamente nació la idea de tres mariachis que le cantaran al amor y a  la muerte.


1° Diseño de maqueta
El diseño se desarrollo en Sketchup 















2° Manufactura de base 
La base se hizo con MDF de 2.6mm y 8mm










3°Bocetos de murales y diseño y manufactura de tapa
El mural principal la idea fue que estuviera la gran parte de la historia asi que pusimos manos a las obras  y esto fue lo que paso.....








4° Primeros pincelazos
Primero se sello la madera y lijo y después se comenzó a pintar con pintura acrilica



























5° Textura de Tumba
Se utilizo plastilita para darle esa textura de mármol a la tumba







6° CUPULA 
La cúpula se elaboro con media bola de unicel y igual se le aplico textura


Se habían conseguido ya la guitarra y sombreros

7°Segundo mural y pintura a la tapa de la tumba
En este se busco que uno de los mariachis en este caso el guitarrista, Apareciera con su amada




8°  Textura al suelo y termino de pintar tumba
En esta parte pensamos que lo mas ideal era hacer parecer al piso como rocas y esto sucedió..


                                                       Se decidió poner hasta las esquinas de abajo para que                                                                      asimilara todo junto y no existiera separación de los murales y la parte superior
9° Violín , Cruz y Cráneos

El violín y la cruz se diseñaron y se mandaron cortar a laser los cráneos los conseguimos en el mercado.







10° Pintura al suelo
Se comenzó a dar el terminado de rocas al suelo y entre cada división se puso un color tinto asemejando que hay vida debajo de el




11° Cambio de cráneo de catrina y pintura al violin
Al notar que eran muy diferentes los tamaños de cráneos de la catrina a los mariachis se procedió a hacer el cráneo de la catrina en barro





12° Instalación de leds
Se le hicieron perforaciones al mural y fue ahí donde se instalaron leds amarillos para crear mas vista en el mural



13° Tercer Mural
Se repite la dinámica solo que esta ves el mariachi que aparecerá será el violinista


14° Vida al cráneo
Se pintaron los cráneos para darles el mismo aspecto al de los personajes del mural


15° Instalación de leds a murales laterales






16° Vestuario en camino
Llego el vestuario una semana antes de presentar pero valla valla



Los tamaños que se le habían dado a la costurera no los respeto he hizo los trajes mas grandes
de lo que se le habían pedido así que se paso a rediseñar el tamaño de los cráneos

17° Diseño de zapatos de mariachi y rediseño de cráneos
Se les agrego un alambre y periodico para crear como los huesos






18° FLORES LUMINOSAS
Se le instalaron flores con leds para que tuviera mas vista el suelo









18° Comenzó el movimiento de la tumba












19° A mover los huesos






20° Últimos detalles 













PRESENTACION FINAL
Pagina de internet de la maqueta (https://modelc9.wixsite.com/nochedemuertos)
Diseño de gafetes, código QR y Patrocinadores