En los inicios del proyecto observamos como a la hora de calcular factores atmosféricos como la sensación térmica, existen diferentes modelos en función de los parámetros que los forman. En nuestro proyecto hemos empleado dos de esos modelos: uno en el que la sensación térmica se calcula en función de la humedad relativa y la temperatura ambiente y otro en el que también se tiene en cuenta la velocidad del viento.
Para poder obtener medidas de la velocidad del viento barajamos 2 opciones: Medirla directamente con un transductor o bien estimarla a través de medidas atmosféricas recogidas por la red ambiental de estaciones atmosféricas del Gobierno Vasco: Estaciones Atmosféricas
Dado que disponíamos de capacidad para construir un Anemómetro decidimos lanzarnos a la aventura. A través del enlace: https://www.thingiverse.com/thing:2559929 nos hicimos con el modelo .stl del cuerpo de un anemómetro imprimible en 3D. La estructura del dispositivo está compuesta por 3 elementos: base, copas y cubierta.
Impresión de las cucharas y del elemento soporte
-El ensamblado de las cucharas sobre la cubierta se realiza mediante pegamento epoxi, introduciendo cada cuchara en su orificio correspondiente. A la cubierta se le realiza un orificio en el borde inferior en el que se aloja un imán de neodimio que servirá como elemento transductor. Por su parte, sobre la base, se introduce por un lado un sensor de Efecto Hall digital (1 ó 0 en presencia o no de un campo magnético) así como un rodamiento 608zz que permite el giro libre del conjunto cubierta-cucharas accionado por el viento.
Una vez el anemómetro gira, el sensor de efecto hall detecta en cada giro el imán, lo que nos permite recibir un flanco en la señal del señal y que a su vez activ aun led para visualizar la detección. La programación llevada a cabo para traducir impulsos en velocidad de viento queda dispuesta :
Para poder obtener medidas de la velocidad del viento barajamos 2 opciones: Medirla directamente con un transductor o bien estimarla a través de medidas atmosféricas recogidas por la red ambiental de estaciones atmosféricas del Gobierno Vasco: Estaciones Atmosféricas
Dado que disponíamos de capacidad para construir un Anemómetro decidimos lanzarnos a la aventura. A través del enlace: https://www.thingiverse.com/thing:2559929 nos hicimos con el modelo .stl del cuerpo de un anemómetro imprimible en 3D. La estructura del dispositivo está compuesta por 3 elementos: base, copas y cubierta.
El proceso de impresión 3D del anemómetro:
Impresión de las cucharas y del elemento soporte
-El ensamblado de las cucharas sobre la cubierta se realiza mediante pegamento epoxi, introduciendo cada cuchara en su orificio correspondiente. A la cubierta se le realiza un orificio en el borde inferior en el que se aloja un imán de neodimio que servirá como elemento transductor. Por su parte, sobre la base, se introduce por un lado un sensor de Efecto Hall digital (1 ó 0 en presencia o no de un campo magnético) así como un rodamiento 608zz que permite el giro libre del conjunto cubierta-cucharas accionado por el viento.
Una vez el anemómetro gira, el sensor de efecto hall detecta en cada giro el imán, lo que nos permite recibir un flanco en la señal del señal y que a su vez activ aun led para visualizar la detección. La programación llevada a cabo para traducir impulsos en velocidad de viento queda dispuesta :
# ------------------------------------------------------------------- # DESARROLLO DE PROGRAMA PARA TOMAR MEDIDA DEL ANEMOMETRO (sensor efecto Hall) # Inicialización de Variables dist_meas = 0.00 km_por_hora = 0 rpm = 0 intervalo = 0 sensorHALL = 14 # Nº de Pin GPIO al que está conectado el sensor HALL pulso = 0 iniciar_timer = time.time() def init_GPIO(): # inicializar el pin GPIO GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(sensorHALL,GPIO.IN,GPIO.PUD_UP) def calculo_intervalo(channel): # Función CALLBACK global pulso, iniciar_timer, intervalo pulso+=1 # incrementa el pulso en 1 cuando se da una interrupción. intervalo = time.time() - iniciar_timer # intervalo para cada una de las vueltas dadas. iniciar_timer = time.time() #Tiempo actual = iniciar el timer de nuevo def calcular_velocidad_viento(r_cm): # Llamar a la función con el radio en cm como parámetro. global pulso,intervalo,rpm,dist_km,dist_meas,km_por_seg,km_por_hora if intervalo !=0: # to avoid DivisionByZero error rpm = 1/intervalo * 60 circ_cm = (2*math.pi)*r_cm # Calcular el perímetro de la circunferencia descrita por las palas del anemometro en [cm]. dist_km = circ_cm/100000 # Convertir cm a kM km_por_seg = dist_km / intervalo # calcular KM/seg km_por_hora = km_por_seg * 3600 # calcular KM/h dist_meas = (dist_km*pulso)*1000 # medida de distancia en metros return km_por_hora def init_interrupt(): # Espera a detectar evento = flanco en el pin sensor hall GPIO.add_event_detect(sensorHALL, GPIO.FALLING, callback = calculo_intervalo, bouncetime = 20) init_GPIO() # Inicializo pin GPIO init_interrupt() # Inicializo Interrupción
Amazing! Eres un currante.
ResponderEliminarhola, ¿podrá funcionar igual si aplico este tipo de sensor hall?
ResponderEliminarSensor Efecto Hall Lineal ss49E KY-024