Commit d7ed0012 authored by beuren's avatar beuren
parents ba81e7cc 3bc82dd0
......@@ -3,8 +3,18 @@
// Centro de Tecnologia Academica - UFRGS
// http://cta.if.ufrgs.br -
int sensorTemperature = 5;
float sensorValue = 0;
/*
Protocolo:
0x01 para erro de frequência de operação muito alta para o processador do microcontrolador.
0x0A para indicar que o microcontrolar irá enviar os dados dos termistores em dupla, seṕarados por \n.
*/
#define TERM_PIN_1 A0
#define TERM_PIN_2 A1
int frequency = 5;
unsigned long time_0;
float period;
......@@ -14,25 +24,29 @@ void setup()
Serial.begin(115200);
period = 1.0/frequency;
Serial.println(frequency);
delay(50);
delay(10);
}
void loop()
{
time_0=millis();
temperatura_NTC();
if((period*1000) -(millis()-time_0) < 0)
{
Serial.println("Erro1");
time_0 = millis();
tensao_NTC();
if((period*1000) -(millis()-time_0) < 0){
Serial.write(0x01);
}
else
{
else{
delay((period*1000) -(millis()-time_0));
}
}
void temperatura_NTC()
void tensao_NTC()
{
sensorValue = analogRead(sensorTemperature);
Serial.println(sensorValue);
int sensor_value1, sensor_value2;
sensor_value1 = analogRead(TERM_PIN_1);
sensor_value2 = analogRead(TERM_PIN_2);
Serial.write(0x0A);
Serial.println(sensor_value1);
Serial.println(sensor_value2);
}
void pulso(){
}
......@@ -5,6 +5,8 @@
#
# Programa para aquisição dos dados
# Este programa é utilizado com o programa biometrica.ino no qual a taxa de amostragem é definida no microcontrolador
#
# Protocolo usado está disponível no biométrica.ino
#
# Centro de Tecnologia Acadêmica - UFRGS
# http://cta.if.ufrgs.br
......@@ -27,38 +29,46 @@ ser = serial.Serial(argumento[0], argumento[1])
ser.setDTR(False) # Desliga DTR
time.sleep(0.005)
ser.flushInput() # Limpa buffer de dados
ser.setDTR(True) # Liga DTR novamente
ser.setDTR(True) # Liga DTR novamente
# Variáveis de controle
frequencia = int(ser.readline().replace('\r\n',''))
periodo = 1.0/frequencia
# Arquivos de log
fisiologfile = open(argumento[2],'w')
now=datetime.datetime.now()
fisiologfile.write(now.strftime("#Frequência\t"+str(frequencia)+"\n"+"#Estação Biométrica\n"+"#Coleta de dados iniciado em: "+"%Y-%m-%d %H:%M:%S" +"\n"))
while True:
fisiologfile.write(now.strftime("#Frequência\t"+str(frequencia)+"\n"+"#Estação Biométrica\n"+"#Coleta de dados iniciado em: "+"%Y-%m-%d %H:%M:%S" +"\n"+"#Protocolo usado: a primeira coluna é a medida do primeiro termistor e a segunda do segundo.\n"))
fisiologfile.close()
while 1:
try:
# Temperatura
t = ser.readline().replace('\r\n','')
if t == 'Erro1':
print 'Frequência muito alta para o microcontrolador: ', frequencia, '. Finalizando processo.\n'
except KeyboardInterrupt:
break
try:
# Registra horário atual
now = datetime.datetime.now()
option = ser.read()
# Respiração
# Para o python '\x' serve para representar uma caracter HEX ASCII
# e o 0x para para valores HEX literais. O comando write do arduino
# envia um caracter, logo deve-se usar a primeira forma
if option == '\x0A':
sensor_value1 = ser.readline().replace('\r\n','')
sensor_value2 = ser.readline().replace('\r\n','')
# Arquivo de log
fisiologfile = open(argumento[2],'a')
fisiologfile.write(str(sensor_value1)+"\t"+str(sensor_value2)+"\n")
fisiologfile.close()
# Mostrando dados na tela
print now.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3],"\t", t
# Arquivo de log
fisiologfile = open(argumento[2],'a')
fisiologfile.write(str(t)+"\n")
fisiologfile.close()
# Registra horário atual
now = datetime.datetime.now()
# Mostrando dados na tela
print now.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3],"\t", sensor_value1, "\t", sensor_value2
# Erro 1
if option == '\x01':
print 'Frequência muito alta para o microcontrolador: ', frequencia, '. Finalizando processo.\n'
except KeyboardInterrupt:
break
break
ser.close()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment