Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Practica 7 MicroPython - Arduino - Pi pico Valentin Rodriguez Anota Duran Morales Alejandro ue Ramirez Cordoba Karim Ariel Practica 7 Descripción 1.-A partir de datos proporcionados por un sensor(temperatura, ultrasónico,...) empleando la tarjeta Arduino, almacenar los datos generados y almacenarlos en un archivo con extensión .txt o .dat , desde Python leer los datos y graficarlos que apoye en la detección de patrones, tendencias, relaciones... 2.-A partir de datos proporcionados por un sensor(temperatura, ultrasónico,...) empleando la tarjeta Raspberry PiPico... graficar directamente los datos generados por el sensor. NumPy es una librería de Python especializada en el cálculo numérico y el análisis de datos, especialmente para un gran volumen de datos. Incorpora una nueva clase de objetos llamados arrays que permite representar colecciones de datos de un mismo tipo en varias dimensiones, y funciones muy eficientes para su manipulación. La ventaja de Numpy frente a las listas predefinidas en Python es que el procesamiento de los arrays se realiza mucho más rápido (hasta 50 veces más) que las listas, lo cual la hace ideal para el procesamiento de vectores y matrices de grandes dimensiones. La clase de objetos array Un array es una estructura de datos de un mismo tipo organizada en forma de tabla o cuadrícula de distintas dimensiones. Las dimensiones de un array también se conocen como ejes. https://www.numpy.org/ Matplotlib es una librería de Python especializada en la creación de gráficos en dos dimensiones. Permite crear y personalizar los tipos de gráficos más comunes, entre ellos Diagramas de barra Histogram Diagramas de sectore Diagramas de caja y bigote Diagramas de violí Diagramas de dispersión o punto Diagramas de linea Diagramas de area Diagramas de contorn Mapas de color y combinaciones de todos ellos. En la siguiente galería de gráficos pueden apreciarse todos los tipos de gráficos que pueden crearse con esta librería. https://matplotlib.org/ https://matplotlib.org/gallery/index.html En el ejercicio 1 nosotros utilizamos la libreria numPy para analizar los datos del sensor y poder guardarlos en el archivo Datos_Sensor.txt, donde guardamos todos los datos del sensor de gas que nos prorpociono a traves del arduino Y tambien utilizamos la libreria matplotlib para poder graficar estos datos En la variable x guardamos los segundos para graficarlo a lo largo del plot Despues cargamos los atributos con la libreria Numpy, utilizando la funcion loadtxt donde le ordenamos de donde debe agarrar los datos, que columnas y filas cargar, guardarlos en la variable y al final imprimir los datos con un print Despues empezamos a utilizar la libreria matplotlib para empezar a ordenar los datos, agregamos el titulo, una etiqueta horizontal que mencione los segundos, otra etiqueta vertical donde estaran los datos del gas Por llamamos el plot insertando los datos de “x” y “y”; y mostrarlos con la funcion .show() Estos son los datos del archivo Codigo Arduino Conexion Para el segundo ejercicio utilizamos la libreria dht (del sensor de temperatura), la libreria time y la libreria machine (para utilizar los pines del pico pi. El sensor DHT11 El DHT11 (Digital Humidity and Temperature) combina un sensor que mide indirectamente la humedad del aire a partir de resistencia de un sustrato que es capaz de absorber la humedad y un NTC que mide la temperatura. Normalmente viene en un encapsulado de color azul con 4 pines, aunque a veces también está disponible montado sobre una placa con sólo 3 pines. La distribución de las señales en los pines es la a El pin de Datos necesita una resistencia de PULL UP de 10K para funcionar correctamente. En el encapsulado de 3 pines esta resistencia ya está soldada en la placa, mientras que en el encapsulado de 4 pines nosotros debemos agregarla. El rango cubierto al medir la humedad ambiente es entre 20% y 90% con una precisión de ±5%. En el caso de la temperatura, es capaz de medir entre 0 y 50 grados centígrados con una precisión de ±2 grados. Como se ve, la precisión no es muy alta, así que está reservado a aplicaciones de bajo costo donde no necesitamos mediciones muy precisas. El sensor tampoco es muy rápido, debiéndose esperar al menos 1 segundo antes de la primer lectura, así como entre lecturas. La tensión de alimentación puede estar entre 3 y 5.5V. Si se necesita un rango mayor de medición, o mayor precisión, puede optarse por un modelo mejorado, el DHT22 (que usualmente es de color blanco). Conexiones El siguiente es el conexionado para un Pico pi. Se alimenta al sensor con 3,3 voltios y el pin Datos se conecta al pin 4 (GPIO28) de la placa. El módulo DHT de Micropython Micropython incluye el módulo dht de manera estándar, incluido en el firmware, así que no es necesario grabarlo en la placa. Resuelve todos los detalles del protocolo de comunicaciones, que se realiza sobre un único pin (el pin Datos) y es capaz de acceder tanto al DHT11 como al DHT22 Lo primero entonces es importar la clase DHT11 desde el módulo dht: Luego debemos crear un objeto de la clase DHT11. El constructor acepta como parámetro el pin GPIO de la placa donde se conecta la señal Datos del sensor. En este ejemplo usaremos el pin 5 Los métodos para leer el sensor son los siguientes: measure (): Se conecta con el sensor y realiza la medición temperature (): Devuelve el valor de temperatura medido, en grados centígrados. humidity (): Devuelve el valor de humedad relativa medido, en porcentaje. El que sigue es un programa de aplicación completo, que realiza mediciones cada 1 segundo y muestra los resultados formateados en la consola de Thonny: Thonny, además de permitirnos ver los valores impresos en la consola incluye el Ploter, que muestra los mismos valores en forma gráfica. Para activarlo debemos ir a Visualización – Plóter
Compartir