Você está na página 1de 9

[Nome do autor]

Sensor qualidade do ar

Fig. 1: Grove- Air quality sensor v1.3

Curso: Licenciatura em Bioengenharia


Unidade Curricular: Instrumentação e Medidas
Docente: Paulo Salgado
Discentes: Ana Rita Seixas | 66768
Beatriz Pascoal Botelho | 66828
Página | 1
[Nome do autor]

Índice
Introdução…………………………………………………………………………………………..…3
Material Utilizado……………………………………………………………………………………...4
Esquema de Montagem……………………………………………………………………………...5
Códigos arduino e matlab………………………………………………………………………….6-8
Análise de resultados…………………………………………………………………………………9

Página | 2
[Nome do autor]

Introdução

Grove - air quality sensor v1.3 é desenhado para testar a qualidade do ar em


espaços fechados. Tem a capacidade de detetar uma ampla gama de gases nocivos,
tais como monóxido de carbono, álcool, acetona, diluente, formaldeído, entre outros.
Devido ao mecanismo de medição, este sensor não pode gerar dados específicos
para descrever quantitativamente as concentrações dos gases-alvo. No entanto, pode
ser usado em aplicações que exigem apenas resultados qualitativos, como, por
exemplo, pulverizadores de reciclagem automática e sistemas de ciclagem
automática de ar.

Página | 3
[Nome do autor]

Material Utilizado

• Grove - air quality sensor v1.3;


• Placa arduino (UNO);
• Fios de ligação;

Programas utilizados:

• Arduino;
• Matlab.

Página | 4
[Nome do autor]

Esquema de Montagem

5V Red

GND Black

Not Conencted White

A0 Yellow

Página | 5
[Nome do autor]

Códigos Arduino

#include"AirQuality.h"
#include"Arduino.h"

AirQuality airqualitysensor;

int current_quality =-1;

void setup()
{
Serial.begin(9600);
airqualitysensor.flag_msg=false; // Faz com que as mensagens enviadas para o
PC sejam exclusivamente os dados do sensor

airqualitysensor.init(A0);
}

void loop()
{
if(Serial.available()>0)
{
int ch=Serial.read();
if(ch=='#')
{
//Enviar o dado do sensor para o computador

Serial.print(airqualitysensor.first_vol);
Serial.print(';');

Página | 6
[Nome do autor]

Serial.println(airqualitysensor.vol_standard);
}
}
}
ISR(TIMER2_OVF_vect)
{
if(airqualitysensor.counter==122)//set 2 seconds as a detected duty
{
airqualitysensor.last_vol=airqualitysensor.first_vol;
airqualitysensor.first_vol=analogRead(A0);
airqualitysensor.counter=0;
airqualitysensor.timer_index=1;
PORTB=PORTB^0x20;
}
else
{
airqualitysensor.counter++;
}
}

Página | 7
[Nome do autor]

Códigos MATLAB

function ler_plot_writefile()

global fid;
global S;
global H;

fprintf(S,'#');
pause(0.1);

txt=fscanf(S);
v=str2num(txt);

X=get(H,'XData');
Y=get(H,'YData');
X=[X v(1)];
Y=[Y v(2)];
n=length(X);
set(H,'XData',(1:n));
set(H,'YData',Y);

fprintf(fid,'%d %d %d %d %d ',clock);
fprintf(fid,'%d %d \n',v);
end
global fid;
global S;
global H;

fid=fopen('dados_sensor.txt','a');

H=plot(0,0,'.');

T=timer;
T.Period=5
T.TimerFcn='ler_plot_writefile';
set(T,'ExecutionMode','fixedRate');

S=serial('COM4');

fopen(S);

pause(20);
start(T);

% PARA FINALIZAR EXECUTAR ESTES COMANDOS


stop(T); clear T;fclose(fid); fclose(S);

Página | 8
[Nome do autor]

Análise de resultados

Página | 9

Você também pode gostar