Tabla de contenido:

Reloj meteorológico con barómetro Raspberry Pi: 9 pasos (con imágenes)
Reloj meteorológico con barómetro Raspberry Pi: 9 pasos (con imágenes)

Video: Reloj meteorológico con barómetro Raspberry Pi: 9 pasos (con imágenes)

Video: Reloj meteorológico con barómetro Raspberry Pi: 9 pasos (con imágenes)
Video: Arduino desde cero en Español - Capítulo 75 - Nano 33 BLE Sense Introducción y Bluetooth LE 2024, Noviembre
Anonim
Reloj meteorológico barómetro Raspberry Pi
Reloj meteorológico barómetro Raspberry Pi

En este instructivo, le mostraré cómo construir un reloj termómetro / barómetro básico usando una Raspberry Pi 2 con un sensor BMP180 I2C que se muestra en una pantalla I2C de 4 dígitos y 7 segmentos de Adafruit. El Pi también utiliza un módulo de reloj I2C en tiempo real DS3231 para mantener el tiempo cuando se reinicia el Pi.

El reloj recorre 4 etapas durante 5 segundos cada una. Primero muestra la temperatura en Celsius, luego en Fahrenheit, luego la presión barométrica en kPa * (camina este número a la izquierda debido al número limitado de dígitos) y finalmente muestra una tendencia de cambio de presión barométrica entre ahora y el promedio de la hora anterior.

Lo que hace que este reloj sea diferente a la mayoría es que usa una base de datos MySQL en el Pi para registrar datos del BMP180 cada minuto. Como la presión barométrica actual no es tan valiosa como su movimiento hacia arriba o hacia abajo durante un período de tiempo determinado, utiliza esta base de datos para calcular un promedio para un intervalo de una hora entre 2 horas y 1 hora atrás y lo compara con la presión actual. Un aumento significativo en la presión barométrica generalmente indica una mejora en las condiciones climáticas frente a una gran caída que podría advertir de una tormenta inminente.

El reloj está alojado en una carcasa de ABS impresa en 3D con el BMP180 en una tapa ventilada en la parte posterior del reloj para evitar que el calor generado por el Pi afecte las lecturas de temperatura. Le proporcionaré el esquema de Autodesk 123D Design si desea imprimir el suyo.

El reloj se alimenta con una verruga de pared USB estándar y consume alrededor de 450 mA en total.

No entraré en demasiados detalles sobre la configuración básica de Pi e I2C, ya que esto se ha cubierto en muchos otros instructivos a los que proporcionaré enlaces.

Paso 1: prepara el Pi

Prepara el Pi
Prepara el Pi

Configure su Raspberry Pi - Detalles en Raspberrypi.org

  1. Descargue e instale la distribución de Linux seleccionada en una tarjeta SD: usé Raspbian
  2. Conecta el pi y enciéndelo
  3. Usé un adaptador micro WiFi para conectar el pi a mi enrutador ya que la carcasa del reloj oculta el puerto Ethernet.
  4. Usé el modo sin cabeza en el que te conectas al pi usando SSH, por lo que todo lo que necesitas enchufar es la energía.
  5. Configure I2C en la Pi: seguí estas instrucciones en el sitio de Adafruit.

Paso 2: Conéctelo todo

Conéctelo todo
Conéctelo todo

Todos los módulos que uso en este proyecto son tolerantes a 5 V y usan I2C, que es un protocolo de 2 cables que se usa para que los circuitos integrados se comuniquen entre sí, por lo que el cableado es bastante simple. Conecte todos los VCC a 5 V, todas las conexiones a tierra juntas y todas las líneas SCA y SCL juntas según el esquema. Trabajo hecho.

Paso 3: Pruebe su I2C

Pruebe su I2C
Pruebe su I2C

Parte de la instalación de I2C es ejecutar i2cdetect, que debería verse como la imagen adjunta si todo está cableado correctamente.

A continuación se muestran las direcciones coincidentes

  1. 0x70 = Pantalla de 7 segmentos
  2. 0x77 = Sensor de termómetro / barómetro BMP180
  3. 0x68 = Módulo de reloj en tiempo real DS3231
  4. 0x57 = DS3231 a bordo EEPROM para almacenar datos de alarma.

Paso 4: Instale MySQL y PhpMyAdmin

Instalar MySQL y PhpMyAdmin
Instalar MySQL y PhpMyAdmin

La instalación de mySQL es bastante sencilla si sigue el tutorial aquí

sudo apt-get install mysql-server

También instalé phpMyAdmin, que es un sitio web que se ejecuta en Apache y que puede usar para crear y administrar bases de datos mySQL. Tutorial aquí

sudo apt-get install phpmyadmin

Una vez instalado, configuré una base de datos llamada BP180 usando phpMyAdmin con la estructura según la imagen.

También hago uso de un módulo de Python llamado mysqlDB que puedes instalar usando

sudo apt-get install python-mysqldb

Paso 5: instalar módulos de Python

Descargue e instale los siguientes módulos de Python que utilizará para conectarse a los sensores.

  1. Módulo Adafruit_BMP085
  2. Módulo SDL_DS3231
  3. Módulo de 7 segmentos de Adafruit

Paso 6: Código para iniciar sesión en la base de datos

El siguiente fragmento de código se utiliza para registrar la temperatura y la presión barométrica y se llama desde un script cron (tareas programadas de Linux) que se ejecuta cada 5 minutos. Para aprender a usar crond, consulte este tutorial.

¡NÓTESE BIEN! No se moleste en arruinar mis habilidades de codificación, no soy un desarrollador, así que sí, probablemente hay un millón de formas mejores, más rápidas, más suaves y más limpias de hacer esto

Notará que en el código la temperatura se reduce en 7 grados, lo que equivale al calor generado por la Raspberry Pi incluso con la BMP180 montada en el exterior de la carcasa. Cuando lo tenía originalmente dentro de la carcasa, hacía unos 15 grados más que la temperatura ambiente. Parece bastante lineal, pero no he tenido la oportunidad de probar ningún extremo. Se agradecería recibir comentarios sobre sus experiencias.

Paso 7: Código para mostrar la temperatura

Código para mostrar la temperatura
Código para mostrar la temperatura
Código para mostrar la temperatura
Código para mostrar la temperatura
Código para mostrar la temperatura
Código para mostrar la temperatura
Código para mostrar la temperatura
Código para mostrar la temperatura

Este código se llama para recorrer la pantalla según la introducción.

Una vez más, no soy desarrollador, por lo que el código es muy tosco, pero funciona

Paso 8: Caja impresa en 3D

Caja impresa en 3D
Caja impresa en 3D
Caja impresa en 3D
Caja impresa en 3D
Caja impresa en 3D
Caja impresa en 3D
Caja impresa en 3D
Caja impresa en 3D

El siguiente es el diseño del recinto. Esto fue bastante desafiante ya que la forma es propensa a deformarse porque las partes de la capa exterior tienen solo 2 mm de grosor. Primero dibujé maquetas del Pi y todas las partes y luego diseñé el recinto a su alrededor. La impresión tomó alrededor de 7 horas en mi RapMan 3.2 (que es una impresora bastante lenta) a una profundidad de capa de 0.25.

El esquema adjunto está realizado en Autodesk 123D Design, que creo que es una fantástica pieza de software gratuito.

Tenga en cuenta que algunos de los orificios, como los necesarios para montar el Pi, no están en el diseño, ya que es mejor perforarlos después en caso de que la impresión se deforme un poco. Mano firme, una broca de 3 mm es todo lo que necesita. Marque la profundidad en la broca con cinta adhesiva para que no pase accidentalmente por su impresión de 7 horas como lo hice yo.

Paso 9: Qué hacer

Cosas para hacer
Cosas para hacer
  1. El reloj en tiempo real fue una adición después de que el gabinete se imprimió por quinta vez, por lo que actualmente está pegado en caliente en el costado del gabinete que no se ve bien, por lo que me gustaría volver a hacer el diseño y agregarle un lugar.
  2. El brillo de la pantalla de 7 segmentos está configurado actualmente en su nivel más ligero, lo que no es óptimo para condiciones de luz intensa. Me gustaría agregar una fotorresistencia en la parte superior del gabinete y ajustar el brillo de 7 segmentos según las condiciones de luz ambiental.
  3. Hay algunos problemas de diseño menores con el agrietamiento de la base que también se solucionarán.
  4. Cualquier idea es bienvenida.

Espero que hayas disfrutado de este instructivo y lo hayas encontrado lo suficientemente inspirador como para ponerte en marcha. La idea es proporcionar una plataforma que pueda utilizar para agregar sus propias ideas. ¡Divertirse!

Recomendado: