UNIVERSIDAD NACIONAL DE
INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE
SISTEMAS
Arquitectura del computador
Perfil del proyecto
Integrantes:
Chanca Calderon, Bryan Niel 20150190D
Guerrero Huayta, Renzo Alexis 20152148E
Ignacio Villacorta, Gerardo Jesus 20142813G
Montoya Salazar, Abner Enrique 20150258H
Salazar Trinidad, Cristhian Alexis 20151283F
Zevallos Orihuela, Blue Hendrich 20152190A
Profesor:
Ing. Carranza Milla, Emerson Flormiro
Lima, 2019
Diseño de un prototipo para mantener un control
de calidad de un ambiente
OBJETIVO GENERAL:
El objetivo general de este proyecto es poder diseñar y desarrollar un sistema óptimo de
control de calidad del ambiente, que a su vez sea de bajo costo, que se comunique con un
controlador que realice acciones relevantes para una situación planteada. Para ello, se
empleará el uso de un hardware libre como es el "Arduino", y también de herramientas y
recursos de software libre y de código abierto, que puedan ser manejables (adaptables) a
situaciones esperadas o en su defecto por esperar, con las que por probabilidad diariamente
se convive dentro y fuera del entorno, del hogar o de los centros laborales. Además, se
pretende crear un entorno de simulación donde se pueda realizar pruebas del sistema
implementado. Desde el sensor, se comunicará con el puesto de control, donde los datos de la
detección serán analizados y tomara una determinada acción. Por último, uno de los
principales propósitos de este proyecto es la adaptación del sistema de detección a diferentes
ambientes donde se vaya a utilizar, esto con el fin de reducir riesgos.
OBJETIVOS ESPECIFICOS:
• Diseño de un modelo ergonómico y económico que prevenga las posibles
complicaciones que pueda sufrir el sistema de control de calidad en el aire.
• Entrenamiento del Hardware y Software para cumplir la detección de la multiplicidad
de gases a considerar.
• Elaboración de una maqueta con el fin de poner a prueba las acciones específicas a
considerar.
Dispositivos a utilizar:
Sensor Calidad Aire MQ 135
Arduino, Raspberrypí o beaglebone black
Cable Dupont hembra/macho
Cable usb
Protoboard
Componentes y herramientas de soldadura
Características generales:
SENSOR MQ
El uso de sensores de tipo MQ son analógicos los cuales permitirán graduar y
programar una interfaz de acciones.
Estos son electroquímicos lo cual hacen que varíen su resistencia al menor cambio de
temperatura presenciada, de tal modo que el sensor varié al cambio de influencia
ambiental en función de la temperatura que sufra la resistencia interna que posee.
Permiten la detección de NH3, NOx, alcohol, benceno, humo, CO2, etc.
RASPBERRY/ ARDUINO / BEAGLEBONE
El uso de Raspberry/ arduino / beaglebone, permitirán realizar la programación y
control de los sensores a implementar ya que su entorno de programación de código
abierto y software libre permitirán que sean adaptables a cualquier entorno en función
de sus variables.
Entorno programable será Windows o Linux ya que los softwares de los dispositivos
presentados son compatibles con cualquiera de estos entornos.
La plataforma Arduino
Es una plataforma de prototipos electrónicos de código abierto (open-source) basada en
hardware y software flexibles y fáciles de usar. Arduino puede sentir el entorno mediante la
recepción de entradas desde una variedad de sensores y puede afectar a su alrededor
mediante el control de luces, motores y otros artefactos.
Descripción del sensor
• Tamaño, 32 mm x 22mm x 30mm
• El chip principal: LM393, MQ-x sonda de detecciónde gas.
• Voltaje de funcionamiento, DC 5V
• Salida Dual
• Larga vida útil
• Respuesta rápida
Funcionamiento del sistema
El funcionamiento del sensor MQ-135 es técnico. El mismo posee un microtubo de cerámica
con óxido de aluminio (Al2O3), una capa sensible de dióxido de estaño (SnO2), el electrodo de
medida y el calentador, que están fijados en su estructura. Este último proporciona las
condiciones necesarias para activar el sensor, el mismo no nos mostrará directamente las ppm
del gas, sino que devolverá una cantidad proporcional a la resistencia que producirá cierta
cantidad del gas. Estos datos son tomados mediante cuatro de los seis pines que el dispositivo
posee, los dos restantes son para obtener la energía necesaria para calentar el microtubo.
La conexión del sensor con Arduino es sencilla. La placa del sensor posee dos salidas, una
digital, esta presenta niveles bajos de tensión y una analógica, esta viene a ser directamente
proporcional al incremento de voltaje. Usando el Arduino UNO, la conexión sería como el
siguiente caso, pero de cualquier manera también se puede utilizar cualquier tipo de Arduino.
La misma se hace mediante la salida analógica del sistema, ya que como mencionamos, nos
permite obtener varios niveles de señal y como agregado, si se desea, también permite
trabajar con distintos tipos de gas, siempre y cuando se trabaje para distinguir mediante
rangos los índices de detección de los gases. Se decide integrar unos leds al sistema para que
cuando interactúe con el gas, este indique el rango de concentración de gas obtenido,
mediante distintos colores de luces. Con esto se quiere llegar a que sea más intuitivo
reconocer las cantidades de ppm.
Programación
El código para poder calibrar el sensor conlleva de una serie de ecuaciones para poder sacar el
índice ppm adecuado y compara los rangos.
//------------------------------------------------------------------------------------------------------------
// DEFINE
//------------------------------------------------------------------------------------------------------------
#define anInput A0 // pin analogo del MQ135
#define co2Zero 55 //calibracion CO2 0 nivel
#define led 9 //led en pin 9
//-----------------------------------------------------------------------------------------------------------
// SETUP
//------------------------------------------------------------------------------------------------------------
void setup() {
pinMode(anInput,INPUT);
pinMode(led,OUTPUT);
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
display.clearDisplay();
//------------------------------------------------------------------------------------------------------------
// MAIN LOOP
//------------------------------------------------------------------------------------------------------------
void loop ()
int co2now [10
int co2raw = 0;
int co2comp = 0;
int co2ppm = 0;
int zzz = 0;
int grafX = 0;
display.clearDisplay();
for (int x = 0; x<10; x++) {
co2now[x]=analogRead(A0);
delay (200);
for (int x = 0; x<10; x++) {
zzz=zzz + co2now[x];
co2raw = zzz/10;
co2comp = co2raw - co2Zero;
co2ppm = map(co2comp,0,1023,400,5000);
if(co2ppm>500) {
digitalWrite(led,HIGH); }
else {
digitalWrite(led,LOW);
Serial.println(co2ppm, DEC);
Serial.println(" ppm");
delay (250);