# Un registrador a distancia de datos ambientales

En esta práctica utilizaremos una placa micro:bit como **sensor de temperatura exterior** y otra placa como **sensor de temperatura interior**. La placa exterior enviará por radio cada 15 minutos una medida de temperatura a la placa interior, que se ocupará también de medir y registrar la temperatura interior. **Ambas placas trabajaran en modo de ahorro de energía**.

##### Programación de la placa exterior

Como primer paso hemos de programar la **placa exterior**, que usará la extensión <span style="color: rgb(132, 63, 161);">**Power**</span>, que deberá instalarse desde el menú <span style="color: rgb(126, 140, 141);">**Extensiones**</span>. Además debemos configurar la <span style="color: rgb(185, 106, 217);">**radio**</span>, por lo que desde el menú de inicio ajustaremos la banda de transmisión, la potencia (máxima) y el grupo, para finalmente poner la placa en hibernación con <span style="color: rgb(132, 63, 161);">**request low power**</span>.

[![Capturador 01.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/capturador-01.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/capturador-01.jpg)

Haremos que el <span style="color: rgb(224, 62, 45);">**LED central**</span> dé un breve destello de luz de 75 ms cada 5 segundos, para lo cual habrá que despertar a la placa hibernada tras el inicio con **<span style="color: rgb(132, 63, 161);">full power every 5000 ms</span>** y volverla a dormir con **<span style="color: rgb(132, 63, 161);">request low power</span>**.

[![Capturador 04.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/capturador-04.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/capturador-04.jpg)

**Cada 15 minutos,** o cada 15 x 60 x 1000 = 900000 ms, despertaremos a la placa, tomaremos una medida de la temperatura y la enviaremos por radio. Para despertar a la placa volveremos a usar el bloque **<span style="color: rgb(132, 63, 161);">full power every 900000 ms</span>** del menú <span style="color: rgb(132, 63, 161);">**Power**</span>.

[![Capturador 05.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/capturador-05.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/capturador-05.jpg)

En este caso nos conviene que el evento anterior encargado de encender el <span style="color: rgb(224, 62, 45);">**LED central**</span> cada 5 segundos no nos pueda poner la placa a dormir, por lo que **bloquearemos la hibernación** con **<span style="color: rgb(132, 63, 161);">low power prevent</span>**.

Hasta que no recibamos una **confirmación de recepción** procedente de la placa interior (una cadena de texto cualquiera) no hibernaremos la placa exterior, tras de lo cual desabilitaremos el bloqueo de la hibernación y pondremos a dormir a la placa.[![Capturador 06.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/capturador-06.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/capturador-06.jpg)

<p class="callout warning">Si va a dejarse la placa exterior a la intemperie, resulta muy conveniente colocarla dentro de un **recipiente hermético**, como un táper.</p>

##### Programación de la placa interior

Al igual que en el caso de la placa exterior, habrá que configurar la radio con los mismos parámetros. También tendremos que inicializar el registro de datos, para lo cual habrá que cargar primero la extensión <span style="color: rgb(22, 145, 121);">**Data Logger**</span>.

[![Data23.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/data23.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/data23.png)

Guardaremos los datos en **dos columnas**, una para la temperatura exterior y otra para la interior. Con <span style="color: rgb(22, 145, 121);">**set timestamp**</span> añadiremos una tercera columna que guarde los tiempos, expresados en minutos, en los que realizan las lecturas .

De nuevo, el <span style="color: rgb(224, 62, 45);">**LED central**</span> tendrá que parpadear cada 5 segundos a modo de testigo de funcionamiento. El código es el mismo que en el caso de la placa exterior.

[![Capturador 04.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/capturador-04.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/capturador-04.jpg)

Cada 15 minutos despertaremos a la placa y evitaremos que otro evento la ponga en hibernación con <span style="color: rgb(132, 63, 161);">**low power prevent**</span>, a la espera de recibir por radio algún dato de la placa exterior.[![Data24.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/data24.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/data24.png)

Cuando la placa esté despierta y reciba por radio un dato de temperatura de la placa exterior, contenido en <span style="color: rgb(186, 55, 42);">**received number**</span>, podrá guardar éste junto con la temperatura interior, <span style="color: rgb(185, 106, 217);">**temperatura (ºC)**</span>, en el registro de datos.

[![Data25.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/data25.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/data25.png)

Por último, mandaremos una cadena de texto cualquiera, en este caso "Leído", a la placa exterior para que pase a hibernación, habilitaremos la hibernación de la plaza interior y la hibernaremos. **Dentro de otros 15 minutos despertarán las dos placas y volverá a comenzar el proceso para registrar un nuevo par de valores**.