Pluviómetro microfónico (3 / 6 paso)

Paso 3: Haz el trabajo de programa de python

El programa de python necesita importar algunas bibliotecas estándar. La mayoría ya está instalada en Jessie, excepto pyaudio. Instalarlo con

 python -u rain.py 

Descargar el programa de python (rain.py) y en el mismo directorio ejecutarlo con

 ........ We will open device 1 ave: 254 [ 0 703 479 266 222 185 195 161 177 150] wind level: 0ave: 274 [ 0 927 489 285 201 172 187 158 161 157] wind level: 0 

El u - se asegura que la salida del programa aparece inmediatamente en la pantalla del terminal. Sin él la salida se protege y puede tardar algún tiempo en aparecer.

Si tu webcam es reconocida correctamente, el programa debe abrir el micrófono e imprimir un montón de cosas y luego algo como esto, con una nueva línea de números que aparecen sobre cada 6 segundos

 No sound input device found. Try again with device_debug = 1 to see what devices PyAudio can find. Bye 

Por el contrario si recibes esto

 device_debug = 1 

tiene trabajo por hacer para conseguir pyaudio a reconocer su micrófono. En línea 29 de rain.py, compruebe

 python -u rain.py 

y otra vez con

 {'defaultSampleRate': 16000.0, 'defaultLowOutputLatency': -1.0, 'defaultLowInputLatency': 0.0239375, 'maxInputChannels': 1L, 'structVersion': 2L, 'hostApi': 0L, 'index': 2, 'defaultHighOutputLatency': -1.0, 'maxOutputChannels': 0L, 'name': u'USB Device 0x46d:0x0059: Audio (hw:1,0)', 'defaultHighInputLatency': 0.096} 

Hacia el final de la carga de cosas ves unas líneas buscando algo parecido

 'maxInputChannels': 1L 

Uno debe corresponder a su webcam. Busca

 if dev['maxInputChannels'] == 1 and dev['defaultSampleRate'] == 16000.0 : 

Esto dice que es una entrada por ejemplo, un micrófono. Deberás ajustar las pruebas acerca de la línea 41 de rain.py para conectar a la tuya. Para un solo micrófono USB similar a la mía Esto funcionó:

 device_debug = 0 

¡Buena suerte!

Asumiendo que usted tiene éxito, usted puede cambiar alrededor de línea 29 a

 ave: 269 [ 0 873 411 304 224 185 195 161 180 158] wind level: 0ave: 280 [ 0 937 475 281 209 185 195 174 176 167] wind level: 0 ave: 284 [ 0 791 649 296 228 171 188 173 182 164] wind level: 0 

Ahora ejecute de nuevo y mira los números - una nueva línea debe venir cada 6 segundos

 ave: 307 [ 0 739 584 400 317 229 231 210 189 173] wind level: 54ave: 14138 [ 0 13832 21242 10181 14903 24935 13589 30922 7767 4013] wind level: 2155 ave: 10666 [ 0 14417 18740 16290 8441 9277 9960 17068 7375 5098] wind level: 6093 

Cada línea muestra el resultado de analizar un trozo de la señal de audio desde el micrófono. Las 3 líneas anteriores son típicas de mi micrófono cuando no hay mucho sonido.

La primera parte es la potencia media - alrededor de 280. Las unidades son arbitrarias - por lo que tendremos que calibrar en el paso siguiente.

La segunda parte - entre los corchetes son los niveles de energía en bandas de frecuencia de 10. El más bajo uno se ve obligado a ser cero.

La tercera parte es una estimación del nivel de viento. Se utiliza para reducir la posibilidad de ruido del viento de ser registrado como lluvia.

Ahora hacer algo de ruido. Hablar, poner música, toque la cámara web o espere lluvia ruidosa (si la cámara ya está en el Conservatorio). Debería ver algo como

 21/10/2015 17:05:02,0,3171,1787,1636,959,362,244,424,256,204,204,0.0,1228 

Así podemos ver que suena más fuerte hace números más altos correspondiente a los niveles más altos de energía. Si ustedes no cambian, volver atrás y compruebe que el micrófono está realmente trabajando.

Dejarlo funcionando durante al menos 5 minutos y luego ver la que anexa los resultados para el archivo /run/shm/rain1.csv en un formato similar

 ave: 269 [ 0 873 411 304 224 185 195 161 180 158] wind level: 0ave: 280 [ 0 937 475 281 209 185 195 174 176 167] wind level: 0 ave: 284 [ 0 791 649 296 228 171 188 173 182 164] wind level: 0 

Se trata de un csv (valores separados por comas) listo para ser leído por la hoja de cálculo favorita o web lenguaje de scripting.

El primer valor es la fecha y hora.

Los siguientes 10 son los niveles de potencia en las bandas de frecuencia de 10, a los 5 minutos.

La siguiente es la precipitación estimada hasta ese día.

El último es el nivel promedio del viento durante los últimos 5 minutos.

He encontrado que el valor promedio de la banda de frecuencia más alta fue la mejor correlación con la precipitación. El valor 4 fue similar a la más alta para la lluvia, pero era muy sensible al viento, por lo que se utiliza para evitar el viento de la cuenta como lluvia.

Cada 24 horas, a medianoche, guarda lluvias de la día en /home/pi/rain_daily.csv y se reinicia la lluvia guardada en /run/shm/rain1.csv

Si quieres, puedes mirar los comentarios en rain.py para ver cómo funciona. Probablemente deberás hacer esto si tiene que cambiar nada o calibrar para el micrófono.

Artículos Relacionados

Hacer un pluviómetro

Hacer un pluviómetro

En este instructable que discutir un pluviómetro sencillo que está esencialmente hecho de basura.Este es un proyecto maravilloso para cualquier grupo de personas.  Posiblemente, nosotros, no podemos decir que esto seria un sustituto para instrumento
A reciclado pluviómetro para Davis Wizard III

A reciclado pluviómetro para Davis Wizard III

He añadido un Sensor de lluvia "Libre" en una tarde.Mi Davis 7425 tiempo asistente III todavía cuelga en la pared en la sala de familia, como lo ha hecho durante la última década, mostrando la información meteorológica. Tengo mi estación en 2003
Hacer un pluviómetro acústico (disdrometer)

Hacer un pluviómetro acústico (disdrometer)

para un proyecto en la Universidad Tecnológica de Delft (Holanda) estamos construyendo pluviómetros acústicos baratos, durables, conocidos como disdrometers. Estos dispositivos "escuchar" a la lluvia y calcular la tasa de lluvia de la señal acús
Barriendo el telémetro ultrasónico

Barriendo el telémetro ultrasónico

este Instructable muestra cómo utilizar un Arduino Uno, telémetro ultrasónico, servo y TFT pantalla para hacer un telémetro ultrasónico barrido manual. Como el servo barre un arco de 180 grados, la ONU procesa los datos del telémetro, tramando obstác
Distanciómetro ultrasónico con un ATtiny85 (con escudo)

Distanciómetro ultrasónico con un ATtiny85 (con escudo)

Estoy aquí para mostrarle cómo usar un telémetro de ultrasonidos HC-SR04 un ATtiny85 como programar ATtiny85 usar que el maravilloso escudo randofo creado.Lista de materiales:Biblioteca de programación ATtiny85Arduino UnoTelémetro ultrasónico HC-SR04
♻ Pluviómetro de botella plástico ♻

♻ Pluviómetro de botella plástico ♻

esto es un simple indicador de lluvia procedente de una botella de plástico. Mi padre enseñó me cómo hacerlo.Siempre lo usamos para decidir si debemos agua nuestros árboles frutales. (tenga en cuenta que en un caluroso día 4 o 5 mm de agua al día eva
Distanciómetro ultrasónico con Arduino

Distanciómetro ultrasónico con Arduino

Telémetro ultrasónico es un método sencillo de calcular distancia de un obstáculo a la distancia sin contacto físico. Emplea un sensor de distancia por ultrasonidos que utiliza pulsos de sonido para medir la distancia. Emiten un pulso ultrasónico y t
Perillas de volumen/potenciómetro casero único

Perillas de volumen/potenciómetro casero único

para todos los pedal FX, cool buscando sintetizadores y otras máquinas wacky que requieren un control con cualquier tipo de potenciómetro! Esto no es una lista exhaustiva de las soluciones, no dude en utilizar su imaginación y publicar fotos de tus c
Fácil sensor ultrasónico de 4 pines monitoreo (hc-sr04)

Fácil sensor ultrasónico de 4 pines monitoreo (hc-sr04)

Hola Instructables,He tenido algunos problemas con mi sensor de ultrasonidos barato (hc-sr04) y hoy he encontrado una solución muy fácil.Es una edición muy simple del código normal de 3 pines.He añadido el int 4 al principio del código, por lo que pu
Podómetro de Arduino

Podómetro de Arduino

problema: así que mi nutricionista (no todo el mundo tiene un nutricionista) sugerido debo aumentar mi ejercicio que principalmente consiste en pasear a mi perro. Incluso me dio una tabla de actividades y calorías quemadas. Aquí es un ejemplo.http://
Gesto ultrasónico basado en TV con control remoto

Gesto ultrasónico basado en TV con control remoto

este es un proyecto bastante simple que está diseñado para introducir los componentes clave para un nuevo usuario de Arduino. He creado esto en unas horas trasteando con existentes de las bibliotecas de Arduino y un kit de inicio de SainSmart. Aplica
Visualizador de Sensor ultrasónico de distancias con procesamiento

Visualizador de Sensor ultrasónico de distancias con procesamiento

Este proyecto utiliza procesamiento a tomar datos de un telémetro ultrasónico en una placa arduino y que en las variables en el procesamiento de un bosquejo de la entrada.Paso 1: Configurar el hardwarese necesita:telémetro ultrasónicoplaca Arduinocab
Anemómetro DIY y Windvane para estación meteorológica independiente

Anemómetro DIY y Windvane para estación meteorológica independiente

Me gustaría compartir algunos conocimientos sobre estación meteorológica. Como hemos escuchado muchas veces acerca de estación y algunas personas le gustaría construir su propia estación meteorológica en su página de inicio.Estación meteorológica es
Estación meteorológica de Arduino GPRS - parte 1

Estación meteorológica de Arduino GPRS - parte 1

Con la amenaza de los patrones de tiempo cada vez más errático circula los cielos de nuestro planeta, día tras día de la incesante lluvia, inundaciones, sequías, tormentas de granizo y quién sabe qué más, una estación meteorológica parece ser un acce