#!/usr/bin/env python # -*- coding: utf-8 -*- # # Controlador da estação meteorologica # Por Rafael Pezzi # Centro de Tecnologia Acadêmica - UFRGS # http://cta.if.ufrgs.br # # Licença: GPL v3 # # Baseado em projeto de Gilson Giuriatti # https://github.com/gilsong/labduino from pylab import * import time, serial, datetime ser = serial.Serial('/dev/ttyUSB0', 115200) time.sleep(2) # Log de inicialização da estação meteorologfile = open('meteorolog.log','a') now=datetime.datetime.now() meteorologfile.write(now.strftime("%Y-%m-%d %H:%M:%S")+" - Iniciando log meteorológico\n") medida = [] temperatura = [] umidade_ar = [] umidade_solo = [] pressao = [] print "Iniciando Log da Estação Meterológica" # Loop que realiza as medições while True: try: # Temperatura ser.write('t') t = float(ser.readline().replace('\r\n','')) except KeyboardInterrupt: break try: # Umidade do ar ser.write('u') u_ar = float(ser.readline().replace('\r\n','')) except KeyboardInterrupt: break try: # Umidade do solo ser.write('s') u_s = int(ser.readline().replace('\r\n','')) except KeyboardInterrupt: break try: # Luminosidade ser.write('l') lum = int(ser.readline().replace('\r\n','')) except KeyboardInterrupt: break try: # Pressão ser.write('p') pressao = int(ser.readline().replace('\r\n','')) # Registra horário atual now=datetime.datetime.now() # Arquivo de log logfile = open('logfile.log','a') # Considere o caminho completo print now.strftime("%Y%m%d%H%M%S"),"\t", t,"\t", u_ar,"\t", u_s, "\t", pressao, "\t", lum logfile.write(now.strftime("%Y%m%d%H%M%S")+"\t"+str(t)+"\t"+str(u_ar)+"\t"+str(u_s)+"\t"+str(pressao)+"\t"+str(lum)+'\n') logfile.close() # Aguarda para iniciar outra medida time.sleep(59) except KeyboardInterrupt: break ser.close();