Actividad
- Objetivo: leer datos de los sensores de humedad, temperatura y presión de Astro Pi
- Herramienta: simulador Trinket https://trinket.io/mission-zero
La placa de sensores Sense HAT de Astro Pi cuenta con: sensor de humedad en porcentaje, sensor de presión y sensor de temperatura. El lenguaje Python y la placa de sensores, nos permite leer los datos de estos sensores con líneas de código muy sencillas:
| Leer datos sensor de Temperatura y guardar el valor medio en la variable 'Temperatura' |
| Temperatura=sense.get_temperature() |
| Leer datos sensor de humedad y guardar el valor medio en la variable 'Humedad' |
| Humedad=sense.get_humidity() |
| Leer datos sensor de Presión y guardar el valor medio en la variable 'Presion'. Ten cuidado con las tildes!! no es recomendable incluirlas en el código |
| Presion=sense.get_pressure() |
Ahora mismo, sólo hemos leído los datos y guardado en variables. Para ver los valores que hemos obtenido tenemos que mostrar por la pantalla. Añadimos las siguientes instrucciones:
| Leer datos sensor de Temperatura y guardar el valor medio en la variable 'Temperatura' |
| sense.show_message(str(Temperatura)) |
| Leer datos sensor de humedad y guardar el valor medio en la variable 'Humedad' |
| sense.show_message(str(Humedad)) |
| Leer datos sensor de Presión y guardar el valor medio en la variable 'Presion' |
| sense.show_message(str(Presion)) |
La función str() convierte la humedad de un número, a texto para que Astro Pi pueda mostrarlo por la pantalla.

Haz clic en el botón de Play/Run y verás aparecer los valores uno detrás de otro.

¿Un poco lioso no? Ahora, aparecen los valores uno detrás de otro sin dejar ningún espacio. Para que se entienda mejor, podemos escribir el mensaje para que aparezca algo parecido a esto:
La Temperatura es + 'valor de temperatura' + ºC
Esto se hace uniendo todas estas palabras en un solo mensaje:
| sense.show_message('La Temperatura es ' + str(Temperatura) + ' ºC') |

La humedad, la presión y la temperatura se registran con mucha precisión, es decir, el valor que leemos tiene una gran cantidad de decimales. Este número se puede redondear. Por ejemplo, podemos redondear el valor de temperatura para que sólo tenga un decimal con esta línea de código.
| Temperatura_1=round(Temperatura,1) |
Cambiando el número que ponemos en segundo lugar en el paréntesis podemos ajustar los decimales que queramos.

También podemos leer directamente un valor redondeado de temperatura, humedad o presión:
| Temperatura=round(sense.get_temperature,1) |
Al igual que en nuestro anterior simulador, los valores que leemos también son simulados. Podemos cambiarlos para ver si nuestro programa lee bien los valores.

Crea un programa que muestre los valores de temperatura, humedad y presión atmosférica con estas condiciones:
|
from sense_hat import SenseHat sense = SenseHat() sense.set_rotation(270)
r=(255,0,0) n=(0,0,0) b=(255,255,255) Temperatura=round(sense.get_temperature(),3) Humedad=round(sense.get_humidity(),1) Presion=round(sense.get_pressure(),2) sense.show_message('La temperatura es '+str(Temperatura)+' C '+'La humedad es '+str(Humedad)+' % '+'La presion es '+str(Presion)+' hPa ',text_colour=r,back_colour=n)
imagen=[ b,b,b,b,b,b,b,b, b,b,b,b,b,b,b,b, b,b,b,b,b,b,b,b, b,b,b,b,b,b,b,b, b,b,b,b,b,b,b,b, b,b,b,b,b,b,b,b, b,b,b,b,b,b,b,b, b,b,b,b,b,b,b,b ]
sense.set_pixels(imagen) |
Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0