Tabla de contenido:
- Paso 1: Factura de equipo imperativa
- Paso 2: Conexiones de hardware para el circuito
- Paso 3: Programación de Raspberry Pi en Python
- Paso 4: el código de ejecución
- Paso 5: Utilización en el mundo práctico
- Paso 6: Conclusión
Video: Estación meteorológica con Raspberry Pi con BME280 en Python: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
is maith an scéalaí an aimir (El tiempo es un buen narrador)
Con los problemas del calentamiento global y el cambio climático, el patrón meteorológico global se está volviendo errático en todo el mundo, lo que lleva a una serie de desastres naturales relacionados con el clima (sequías, temperaturas extremas, inundaciones, tormentas e incendios forestales), una estación meteorológica parece ser una necesidad maldad en casa. Aprende mucho sobre electrónica básica en un proyecto de estación meteorológica utilizando un montón de piezas y sensores baratos. Es bastante fácil de configurar y en poco tiempo puede tenerlo.
Paso 1: Factura de equipo imperativa
1. Una Raspberry Pi
Pon tus manos en una placa Raspberry Pi. Raspberry Pi es una computadora de placa única con Linux. La Raspberry Pi es realmente barata, pequeña y versátil construida a partir de una computadora accesible y funcional para que los estudiantes ejerciten los conceptos básicos de programación y desarrollo de software.
2. Escudo I2C para Raspberry Pi
El INPI2 (adaptador I2C) proporciona a la Raspberry Pi 2/3 un puerto I²C para usar con varios dispositivos I2C. Está disponible en DCUBE Store.
3. Sensor digital de humedad, presión y temperatura, BME280
El BME280 es un sensor de humedad, presión y temperatura que tiene un tiempo de respuesta rápido y una alta precisión general. Compramos este sensor en la tienda DCUBE.
4. Cable de conexión I2C
Usamos el cable I²C disponible aquí DCUBE Store.
5. Cable micro USB
La fuente de alimentación del cable micro USB es una opción ideal para alimentar la Raspberry Pi.
6. Interpretar el acceso a Internet a través del adaptador de cable Ethernet / WiFi
El acceso a Internet se puede habilitar a través de un cable Ethernet conectado a una red local e Internet. Alternativamente, puede conectarse a una red inalámbrica mediante un dispositivo de seguridad inalámbrico USB, que requerirá configuración.
7. Cable HDMI (cable de conectividad y pantalla)
Cualquier monitor HDMI / DVI y cualquier televisor debería funcionar como pantalla para el Pi. Alternativamente, puede acceder de forma remota a la Pi a través de SSH sin necesidad de un monitor (solo para usuarios avanzados).
Paso 2: Conexiones de hardware para el circuito
Realice el circuito según el esquema que se muestra. En general, las conexiones son muy sencillas. Mantenga la calma y siga las instrucciones e imágenes anteriores, y no debería tener problemas. Mientras aprendíamos, adquirimos a fondo los conceptos básicos de la electrónica con respecto al conocimiento de hardware y software. Queríamos elaborar un esquema electrónico simple para este proyecto. Los esquemas electrónicos son como planos. Dibuja un plano y sigue el diseño cuidadosamente. ¡Algunos conceptos básicos de electrónica pueden ser útiles aquí!
Conexión de Raspberry Pi y I2C Shield
Primero, tome la Raspberry Pi y coloque el I²C Shield sobre ella. Presione el escudo suavemente y terminamos con este paso tan fácil como un pastel (ver la foto).
Conexión del sensor y Raspberry Pi
Tome el sensor y conecte el cable I²C con él. Asegúrese de que la salida I²C SIEMPRE se conecte a la entrada I²C. Se debe seguir lo mismo para la Raspberry Pi con el escudo I²C montado sobre los pines GPIO. Recomendamos el uso de cables I²C ya que niega la necesidad de leer los pines, soldaduras y malestar causado por incluso el más mínimo deslizamiento.. Con este simple cable plug and play, puede instalar, intercambiar placas o agregar más placas a una aplicación con facilidad.
Nota: El cable marrón siempre debe seguir la conexión de tierra (GND) entre la salida de un dispositivo y la entrada de otro dispositivo
La conectividad a Internet es clave
Tu tienes dos opciones aquí. Puede conectar la Raspberry Pi a la red mediante un cable ethernet o utilizar un adaptador de USB a WiFi para conectividad WIFI. De cualquier manera, siempre que esté conectado a Internet, estará cubierto.
Encendido del circuito
Enchufe el cable Micro USB en el conector de alimentación de Raspberry Pi. ¡Golpea y listo! Nuestro equipo es información.
Conexión a la pantalla
Podemos tener el cable HDMI conectado a un monitor oa un televisor. Además, podemos acceder a una Raspberry Pi sin conectarla a un monitor mediante acceso remoto. SSH es una herramienta útil para un acceso remoto seguro. También puede usar el software PUTTY para eso. Esta opción es para usuarios avanzados, por lo que no la cubriremos en detalle aquí.
Es un método económico si no quiere gastar mucho
Paso 3: Programación de Raspberry Pi en Python
El código Python para el sensor Raspberry Pi y BME280. Está disponible en nuestro repositorio de Github.
Antes de continuar con el código, asegúrese de leer las instrucciones dadas en el archivo Léame y configure su Raspberry Pi de acuerdo con él. Solo un poco de tiempo lo preparará para la configuración. Una estación meteorológica es una instalación, ya sea en tierra o en el mar, con instrumentos y equipos para medir las condiciones atmosféricas a fin de proporcionar información para los pronósticos meteorológicos y para estudiar el tiempo y el clima.
El código está claramente frente a usted y está en la forma más simple que pueda imaginar y no debería tener problemas. Aún pregunte si hay alguna (incluso si sabe mil cosas, aún pregúntele a alguien que sepa).
También puede copiar el código Python de trabajo para este sensor desde aquí.
# Distribuido con una licencia de libre albedrío. # Úselo de la forma que desee, lucrativa o gratuita, siempre que se ajuste a las licencias de sus obras asociadas. # BME280 # Este código está diseñado para funcionar con el mini módulo BME280_I2CS I2C disponible en ControlEverything.com. #
importar smbus
tiempo de importación
# Obtener bus I2C
bus = smbus. SMBus (1)
# Dirección BME280, 0x76 (118)
# Leer datos de 0x88 (136), 24 bytes b1 = bus.read_i2c_block_data (0x76, 0x88, 24)
# Convierte los datos
# Coeficientes de temperatura dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] si dig_T2> 32767: dig_T2 - = 65536 dig_T3 = b1 [5] * 256 + b1 [4] si dig_T3> 32767: dig_T3 - = 65536
# Coeficientes de presión
dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] si dig_P2> 32767: dig_P2 - = 65536 dig_P3 = b1 [11] * 256 + b1 [10] si dig_P3 > 32767: dig_P3 - = 65536 dig_P4 = b1 [13] * 256 + b1 [12] si dig_P4> 32767: dig_P4 - = 65536 dig_P5 = b1 [15] * 256 + b1 [14] si dig_P5> 32767: dig_P5 - = 65536 dig_P6 = b1 [17] * 256 + b1 [16] si dig_P6> 32767: dig_P6 - = 65536 dig_P7 = b1 [19] * 256 + b1 [18] si dig_P7> 32767: dig_P7 - = 65536 dig_P8 = b1 [21] * 256 + b1 [20] si dig_P8> 32767: dig_P8 - = 65536 dig_P9 = b1 [23] * 256 + b1 [22] si dig_P9> 32767: dig_P9 - = 65536
# Dirección BME280, 0x76 (118)
# Leer datos de 0xA1 (161), 1 byte dig_H1 = bus.read_byte_data (0x76, 0xA1)
# Dirección BME280, 0x76 (118)
# Leer datos de 0xE1 (225), 7 bytes b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)
# Convierte los datos
# Coeficientes de humedad dig_H2 = b1 [1] * 256 + b1 [0] if dig_H2> 32767: dig_H2 - = 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) si dig_H4> 32767: dig_H4 - = 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) if dig_H5> 32767: dig_H5 - = 65536 dig_H6 = b1 [6] if dig_H6> 127: dig_H6 - = 256
# Dirección BME280, 0x76 (118)
# Seleccionar registro de humedad de control, 0xF2 (242) # 0x01 (01) Sobremuestreo de humedad = 1 bus.write_byte_data (0x76, 0xF2, 0x01) # Dirección BME280, 0x76 (118) # Seleccionar registro de medición de control, 0xF4 (244) # 0x27 (39) Tasa de sobremuestreo de presión y temperatura = 1 # Modo normal bus.write_byte_data (0x76, 0xF4, 0x27) # Dirección BME280, 0x76 (118) # Seleccionar registro de configuración, 0xF5 (245) # 0xA0 (00) Tiempo de espera = bus de 1000 ms.write_byte_data (0x76, 0xF5, 0xA0)
tiempo. de sueño (0.5)
# Dirección BME280, 0x76 (118)
# Leer datos de 0xF7 (247), 8 bytes # Presión MSB, Presión LSB, Presión xLSB, Temperatura MSB, Temperatura LSB # Temperatura xLSB, Humedad MSB, Datos de humedad LSB = bus.read_i2c_block_data (0x76, 0xF7, 8)
# Convierta los datos de presión y temperatura a 19 bits
adc_p = ((datos [0] * 65536) + (datos [1] * 256) + (datos [2] y 0xF0)) / 16 adc_t = ((datos [3] * 65536) + (datos [4] * 256) + (datos [5] y 0xF0)) / 16
# Convierta los datos de humedad
adc_h = datos [6] * 256 + datos [7]
# Cálculos de compensación de temperatura
var1 = ((adc_t) / 16384.0 - (dig_T1) / 1024.0) * (dig_T2) var2 = (((adc_t) / 131072.0 - (dig_T1) / 8192.0) * ((adc_t) /131072.0 - (dig_T1) /8192.0)) * (dig_T3) t_fine = (var1 + var2) cTemp = (var1 + var2) / 5120.0 fTemp = cTemp * 1.8 + 32
# Cálculos de compensación de presión
var1 = (t_fine / 2.0) - 64000.0 var2 = var1 * var1 * (dig_P6) / 32768.0 var2 = var2 + var1 * (dig_P5) * 2.0 var2 = (var2 / 4.0) + ((dig_P4) * 65536.0) var1 = ((dig_P3) * var1 * var1 / 524288.0 + (dig_P2) * var1) / 524288.0 var1 = (1.0 + var1 / 32768.0) * (dig_P1) p = 1048576.0 - adc_p p = (p - (var2 / 4096.0)) * 6250.0 / var1 var1 = (dig_P9) * p * p / 2147483648.0 var2 = p * (dig_P8) / 32768.0 presión = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100
# Cálculos de compensación de humedad
var_H = ((t_fine) - 76800.0) var_H = (adc_h - (dig_H4 * 64.0 + dig_H5 / 16384.0 * var_H)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * var_H * (1.0 + dig_H3 / 67108864.0 * var_H2))) humedad = var_H * (1.0 - dig_H1 * var_H / 524288.0) si humedad> 100.0: humedad = 100.0 elif humedad <0.0: humedad = 0.0
# Salida de datos a la pantalla
print "Temperatura en Celsius:%.2f C"% cTemp print "Temperatura en Fahrenheit:%.2f F"% fTemp print "Presión:%.2f hPa"% de presión print "Humedad relativa:%.2f %%"% de humedad
Paso 4: el código de ejecución
Ahora, descargue (o git pull) el código y ábralo en la Raspberry Pi.
Ejecute los comandos para compilar y cargar el código en el terminal y vea el resultado en la pantalla. Después de unos segundos, mostrará todos los parámetros. Después de asegurarse de que todo funciona bien, puede desarrollar algunos más interesantes.
Paso 5: Utilización en el mundo práctico
El BME280 logra un alto rendimiento en todas las aplicaciones que requieren medición de humedad y presión. Estas aplicaciones emergentes son la conciencia del contexto, p. Ej. Detección de piel, Detección de cambio de habitación, Monitoreo de condición física / Bienestar, Advertencia sobre sequedad o altas temperaturas, Medición de volumen y flujo de aire, Control de automatización del hogar, Control de calefacción, ventilación, Aire acondicionado (HVAC), Internet de las cosas (IoT), Mejora del GPS (por ejemplo, mejora del tiempo hasta la primera localización, navegación a estima, detección de pendientes), navegación interior (detección de cambio de piso, detección de ascensor), navegación al aire libre, aplicaciones deportivas y de ocio, pronóstico del tiempo e indicación de velocidad vertical (subida / caída Velocidad).
Paso 6: Conclusión
Espero que este proyecto inspire más experimentación. Hacer una estación meteorológica más sofisticada puede involucrar más sensores como pluviómetro, sensor de luz, anemómetro (velocidad del viento), etc. Puede agregarlos y modificar el código. Tenemos un video tutorial en YouTube que tiene el funcionamiento básico del sensor I²C con Rasp Pi. Es realmente sorprendente ver los resultados y el funcionamiento de las comunicaciones I²C. Compruébalo también. ¡Diviértete construyendo y aprendiendo! Háganos saber lo que piensa de este instructivo. Nos encantaría hacer algunas mejoras si es necesario.
Recomendado:
Estación meteorológica personal con Raspberry Pi con BME280 en Java: 6 pasos
Estación meteorológica personal con Raspberry Pi con BME280 en Java: El mal tiempo siempre se ve peor a través de una ventana. Siempre nos ha interesado monitorear nuestro clima local y lo que vemos por la ventana. También queríamos un mejor control de nuestro sistema de calefacción y aire acondicionado. La construcción de una estación meteorológica personal es una gran
Estación meteorológica NaTaLia: estación meteorológica con energía solar Arduino hecha de la manera correcta: 8 pasos (con imágenes)
Estación meteorológica NaTaLia: estación meteorológica con energía solar Arduino hecha de la manera correcta: después de 1 año de operación exitosa en 2 ubicaciones diferentes, estoy compartiendo los planes del proyecto de mi estación meteorológica con energía solar y explicando cómo evolucionó a un sistema que realmente puede sobrevivir durante mucho tiempo períodos de energía solar. Si tu sigues
Estación meteorológica de bricolaje y estación de sensor WiFi: 7 pasos (con imágenes)
Estación meteorológica de bricolaje y estación de sensor WiFi: en este proyecto, le mostraré cómo crear una estación meteorológica junto con una estación de sensor WiFi. La estación de sensores mide los datos de temperatura y humedad locales y los envía, a través de WiFi, a la estación meteorológica. La estación meteorológica muestra t
Estación meteorológica con Arduino, BME280 y pantalla para ver la tendencia en los últimos 1-2 días: 3 pasos (con imágenes)
Estación meteorológica con Arduino, BME280 y pantalla para ver la tendencia en los últimos 1-2 días: ¡Hola! Aquí en instructables, las estaciones meteorológicas ya se han introducido. Muestran la presión, la temperatura y la humedad actuales del aire. Lo que les faltaba hasta ahora era una presentación del curso en los últimos 1-2 días. Este proceso tendría el
Estación meteorológica WiFi ESP32 con sensor BME280: 7 pasos (con imágenes)
Estación meteorológica WiFi ESP32 con sensor BME280: Queridos amigos, ¡bienvenidos a otro tutorial! ¡En este tutorial vamos a construir un proyecto de estación meteorológica habilitada para WiFi! Vamos a utilizar el nuevo e impresionante chip ESP32 por primera vez junto con una pantalla Nextion. En este video, vamos