Estación meteorológica DIY Raspberry Pi completa con software
A fines de febrero vi esta publicación en el sitio de Raspberry Pi.
//www.raspberrypi.org/school-weather-station -...
Habían creado estaciones meteorológicas Raspberry Pi para escuelas. ¡Realmente quería uno! Pero en ese momento (y creo que aún al escribir esto) no están disponibles públicamente (debe estar en un grupo selecto de evaluadores). Bueno, quería y no tenía ganas de desembolsar cientos de dólares para un sistema de terceros existente.
Entonces, como un buen usuario Instructable, ¡decidí hacer el mío!
Investigué un poco y encontré algunos buenos sistemas comerciales en los que podía basar la mía. Encontré algunos Instructables buenos para ayudar con algunos de los conceptos de Sensor o Raspberry PI. Incluso encontré este sitio, que era basura, tenían que derribar un sistema Maplin existente:
//www.philpot.me/weatherinsider.html
Avance rápido aproximadamente un mes y tengo un sistema de trabajo básico. Este es un sistema meteorológico completo de Raspberry Pi con solo el hardware básico de la Raspberry Pi, la cámara y algunos sensores analógicos y digitales variados para realizar nuestras mediciones. No compramos anemómetros o pluviómetros prefabricados, ¡estamos haciendo los nuestros! Aquí están sus características:
- Registra información en RRD y CSV, por lo que puede manipularse o exportarse / importarse a otros formatos.
- Utiliza la API Weather Underground para obtener información interesante como altibajos históricos, fases de la luna y amanecer / atardecer.
- Utiliza la cámara Raspberry Pi para tomar una foto una vez por minuto (luego puedes usarla para hacer timelapses).
- Tiene páginas web que muestran los datos de las condiciones actuales y algunas históricas (última hora, día, 7 días, mes, año). El tema del sitio web cambia con la hora del día (4 opciones: amanecer, atardecer, día y noche).
Todo el software para registrar y mostrar la información está en un Github, incluso he hecho un seguimiento de errores, solicitudes de funciones allí también:
//github.com/kmkingsbury/raspberrypi-weather ...
Este proyecto fue una gran experiencia de aprendizaje para mí, pude sumergirme realmente en las capacidades de la Raspberry Pi, especialmente con el GPIO, y también llegué a algunos puntos de dolor de aprendizaje. Espero que usted, el lector, pueda aprender de algunas de mis pruebas y tribulaciones.
Paso 1: materiales




Electrónica:
- 9 interruptores de láminas (8 para la dirección del viento, 1 para el pluviómetro, opcionalmente 1 para la velocidad del viento en lugar de un sensor Hall), utilicé estos: //amzn.to/2RExNkT
- 1 sensor Hall (para la velocidad del viento, llamado anemómetro) - //amzn.to/38tIQTK
- Temperatura (//amzn.to/2RIHf6H)
- Humedad (muchos sensores de humedad vienen con un sensor de temperatura), utilicé el DHT11: //amzn.to/2PapjQU
- Presión (el BMP también incluía un sensor de temperatura). Utilicé el BMP180, //www.adafruit.com/product/1603, este producto ahora está descontinuado pero hay un equivalente con el BMP280 (// amzn. to / 2E8nmhi)
- Photoresistor (//amzn.to/2seQFwd)
- Chip GPS o GPS USB (//amzn.to/36tZZv3).
- 4 imanes fuertes (2 para anemómetro, 1 para dirección, 1 para pluviómetro), utilicé los imanes de tierras raras, muy recomendable) (//amzn.to/2LHBoKZ).
- Un puñado de resistencias variadas, tengo este paquete que ha resultado ser extremadamente útil con el tiempo: //www.sparkfun.com/products/10969
MCP3008 - para convertir entradas analógicas a digitales para Raspberry Pi - //amzn.to/38rtLCa
Hardware
- Raspberry Pi: originalmente utilicé el 2 con un adaptador inalámbrico, ahora también obtengo el kit 3 B + con adaptador de corriente. (//amzn.to/2P76Mop)
- Pi Camera //amzn.to/2LGDFGz
- Un adaptador de corriente sólido de 5V (esto resultó ser dolorosamente molesto, eventualmente obtuve el Adafruit, de lo contrario la cámara extrae demasiado jugo y puede / colgará el Pi, está aquí: //www.adafruit.com/products/501 )
Materiales:
- 2 rodamientos axiales (o los rodamientos de skate o de patines también funcionarán), obtuve estos en Amazon: //amzn.to/2siMwra
- 2 Cajas impermeables (utilicé una caja eléctrica de la tienda local de cajas grandes), no importa mucho, solo necesito encontrar una caja de buen tamaño que tenga suficiente espacio y proteja todo.
- Algunos tubos de PVC y tapas finales (varios tamaños).
- Soportes de montaje de PVC
- Un par de láminas de plexiglás delgado (nada demasiado elegante).
- separadores de plástico
- mini tornillos (utilicé pernos y tuercas n. ° 4).
- 2 Adorno de plástico del árbol de Navidad: usado para el anemómetro, obtuve el mío en el Hobby Lobby local.
- Taco pequeño
- Pequeño trozo de madera contrachapada.
Herramientas:
- Dremel
- Pistola de pegamento
- Soldador
- Multímetro
- Perforar
Paso 2: caja principal: Pi, GPS, cámara, luz













El recinto principal alberga el PI, la cámara, el GPS y el sensor de luz. Está diseñado para ser resistente al agua ya que alberga todos los componentes críticos, las mediciones se toman desde el recinto remoto y ese está diseñado para estar expuesto / abierto a los elementos.
Pasos:
Escogí una caja, utilicé una caja de conexiones eléctricas, varias cajas de proyectos y fundas impermeables funcionarán igual de bien. El punto clave es que tiene suficiente espacio para guardar todo.
Mi gabinete contiene:
- Raspberry pi (en separadores): necesita un chip WIFI, ¡no quiero ejecutar Cat5e en el patio trasero!
- La cámara (también en separadores)
- El chip GPS, conectado a través de USB (usando un cable FTDI sparkfun: //www.sparkfun.com/products/9718) - El GPS proporciona latitud y longitud, lo cual es bueno, pero lo más importante, puedo obtener un tiempo preciso del GPS !
- dos conectores ethernet / cat 5 para conectar el gabinete principal al otro gabinete que alberga los otros sensores. Esta fue solo una forma conveniente de tener cables entre las dos cajas, tengo aproximadamente 12 cables y los dos cat5 proporcionan 16 conexiones posibles, por lo que tengo espacio para expandir / cambiar las cosas.
Hay una ventana en el frente de mi gabinete para que la cámara vea. El estuche con esta ventana protege la cámara, pero tuve problemas en los que el led rojo de la cámara (cuando está tomando una foto) se refleja en el plexiglás y aparece en la foto. Utilicé un poco de cinta negra para mitigar esto e intenté bloquearlo (y otros LED del Pi y el GPS), pero todavía no está al 100%.
Paso 3: 'Recinto remoto' para temperatura, humedad, presión






Aquí es donde almacené los sensores de temperatura, humedad y presión, así como las "conexiones" para los sensores de lluvia, dirección del viento y velocidad del viento.
Todo es muy sencillo, los pines aquí se conectan a través de los cables de Ethernet a los pines necesarios en la Raspberry Pi.
Traté de usar sensores digitales donde pude y luego se agregaron todos los analógicos al MCP 3008, se necesitan hasta 8 analógicos, lo que fue más que suficiente para mis necesidades, pero me da espacio para mejorar / expandir.
Este recinto está abierto al aire (tiene que ser para una temperatura, humedad y presión precisas). Los orificios inferiores están abiertos, así que le di a algunos de los circuitos un spray de Silicone Conformal Coating (puede obtenerlo en línea o en un lugar como Fry's Electronics). Con suerte, debería proteger el metal de cualquier humedad, aunque debe tener cuidado y no usarlo en algunos de los sensores.
La parte superior del gabinete también es donde encaja el sensor de velocidad del viento. Fue una sacudida, podría haber puesto la velocidad del viento o la dirección del viento en la parte superior, no vi ninguna ventaja importante de uno sobre el otro. En general, desea que ambos sensores (dirección y velocidad del viento) sean lo suficientemente altos donde los edificios, las cercas y los obstáculos no interfieran con las mediciones.
Paso 4: pluviómetro








Sobre todo seguí este instructable para hacer el indicador real:
//www.instructables.com/id/Arduino-Weather-St ...
Hice esto de plexiglás para poder ver lo que estaba pasando y pensé que sería genial. En general, el plexiglás funcionó bien, pero combinado con el Gluegun, el sellador de goma y el corte y perforación en general, no se ve tan impecable, incluso con la película protectora.
Puntos clave:
- El sensor es un simple interruptor de láminas y un imán tratado como un botón en el código RaspberryPi, simplemente cuento los cubos con el tiempo y luego hago la conversión a "pulgadas de lluvia".
- Hazlo lo suficientemente grande como para contener suficiente agua para inclinar, pero no tanto como para necesitar una gran cantidad de propinas. Mi primera pasada hice que cada bandeja no fuera lo suficientemente grande para que se llenara y comenzara a drenar sobre el borde antes de que se volcara.
- También descubrí que el agua residual podría agregar algún error a la medición. Es decir, completamente seco, se necesitaron X gotas para llenar un lado y volcarlo, una vez mojado se necesitaron gotas Y (que son menos de X) para llenar y volcar. No es una gran cantidad, pero entró en vigencia al intentar calibrar y obtener una buena medición de "1 carga equivale a cuánto".
- Equilibre, puede hacer trampa agregando pegamento de pistola de pegamento a los extremos inferiores si un lado es mucho más pesado que el otro, pero lo necesita lo más equilibrado posible.
- Puedes ver en la foto que configuré un pequeño equipo de prueba usando algunas esponjas y un soporte de madera para probar y equilibrarlo adecuadamente antes de instalar.
Paso 5: dirección del viento











Esta era una veleta simple. Basé la electrónica en el sistema Maplin:
//www.philpot.me/weatherinsider.html
Puntos clave:
- Este es un sensor analógico. Los ocho interruptores de láminas combinados con varias resistencias dividen la salida en trozos para que pueda identificar en qué coordenada está el sensor por el valor. (El concepto se explica en este instructable: //www.instructables.com/id/Accessing-5-button ...
- Después de atornillar la parte de la veleta, debe calibrarla para que "esta dirección sea la que apunta hacia el norte".
- Hice una plataforma de prueba con madera para poder conectar y desconectar resistencias fácilmente que cubrían el rango completo de valores para mí, ¡fue súper útil!
- Utilicé un cojinete de empuje, funcionó bien, estoy seguro de que un patín normal o un cojinete de patinaje sobre ruedas hubiera sido igual de bueno.
Paso 6: velocidad del viento






Este, una vez más, recurrí a la comunidad Instructable y encontré y seguí este instructable:
//www.instructables.com/id/Data-Logging-Anemo ...
Puntos clave:
- Puede usar el sensor de pasillo o cambiar a un sensor de lámina también. El sensor hall es más un sensor analógico, por lo que si lo está utilizando de forma digital, como presionar un botón, debe asegurarse de que la lectura / voltaje sea lo suficientemente alta como para que actúe como un verdadero botón, en lugar de no ser suficiente .
- El tamaño de la copa es crucial, ¡también lo es la longitud del palo! Originalmente usaba pelotas de ping pong y eran demasiado pequeñas. También los puse en palos largos que tampoco funcionaron. Me sentí muy frustrado y luego encontré ese instructable, Ptorelli hizo un gran trabajo explicando y me ayudó cuando mi diseño original no funcionó tan bien.
Paso 7: software


El software está escrito en Python para registrar los datos de los sensores. Utilicé algunas otras bibliotecas Git de terceros de Adafruit y otras para obtener la información de los sensores y el GPS. También hay algunos trabajos cron que también extraen parte de la información de la API. La mayoría se explica / describe en la documentación de Git en docs / install_notes.txt
El software web está en PHP para mostrarlo en la página web, al mismo tiempo que utiliza YAML para los archivos de configuración y, por supuesto, la herramienta RRD para almacenar y graficar los datos.
Utiliza la API Weather Underground para obtener algunos de los datos interesantes que los sensores no pueden obtener: Grabe los tiempos de Hi y Low, Phase of the Moon, Sunset y Sunrise, también hay mareas disponibles en su API, que pensé que era realmente genial, pero vivo en Austin TX, que está muy lejos del agua.
Todo está disponible en Github y se mantiene de forma activa y actualmente se usa a medida que perfecciono y calibro mi propio sistema, para que pueda enviar solicitudes de funciones e informes de errores también.
El software pasa por un cambio de tema dependiendo de la hora del día, hay 4 etapas. Si la hora actual es + o - 2 horas desde el amanecer o el atardecer, obtendrá los temas de amanecer y atardecer, respectivamente (en este momento, solo un fondo diferente, probablemente haré diferentes colores de fuente / borde en el futuro). Asimismo fuera de esos rangos da el tema del día o la noche.
Gracias por leer, si desea ver más fotos y videos de mis proyectos que ver mi Instagram y canal de YouTube.