Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

Si ejecutó su Raspberry Pi Pico W durante mucho tiempo, es probable que finalmente note que su programa ya no se ejecuta.

Una de las razones por las que los programas fallan durante un largo período de tiempo tiene que ver con la confiabilidad de Wi-Fi. Si su Wi-Fi se vuelve poco confiable, el primer instinto del Pico W es colapsar.

Veamos cómo podemos hacer que el Pico W sea más resistente en MicroPython.

¿Qué causa la confiabilidad de Wi-Fi en el Pico W?

Su Wi-Fi se desconecta muchas veces al día. Es difícil percibir esto en su teléfono o PC porque los sistemas operativos y el software han tenido en cuenta esta deficiencia garantizada de las redes Wi-Fi.

Con el Pico W, un simple script que se conecta y obtiene datos fallaría si tu Pico W perdiera la conexión. La única solución es reiniciarlo por completo desconectando la alimentación.

Si su proyecto requiere el registro de datos durante horas a la vez, no querrá tener que monitorear constantemente las interrupciones.

instagram viewer

El manejo de errores es la clave para garantizar que su programa pueda sobrevivir a través de conexiones deficientes.

¿Ayudará mejorar la intensidad de la señal Wi-Fi?

usted podría estar considerando si debe usar una red de malla para aumentar la intensidad de la señal. Sí, ayudará, pero no hasta el punto en que pueda evitar escenarios en los que haya una caída en la conexión.

En un experimento, colocamos un Pico W en una ubicación en el segundo piso de una casa y otro Pico W junto al enrutador Wi-Fi. La diferencia en el resultado es que el dispositivo en el segundo piso se desconectó antes que el Pico W ubicado más cerca del enrutador. Este último finalmente también tuvo una conexión interrumpida, como lo reflejan las brechas en la recopilación de datos.

Desafortunadamente, aunque mejorar la intensidad de la señal reduce el problema, no lo resuelve. Entonces, veamos algunos métodos para escribir código más resistente.

Método de conexión y desconexión del software

Si su proyecto solo requiere comunicación unidireccional, este método sería perfecto para ello. Algunos ejemplos serían los registradores de temperatura que deben ejecutarse durante un largo período de tiempo, pero solo registran datos de vez en cuando.

Esto resuelve el problema de los bloqueos que ocurren cuando su Pico W cree que está conectado, pero cuando intenta enviar datos a un punto final, se da cuenta de que está desconectado y luego se bloquea.

La clave de este método implica un procedimiento en el que su programa se ejecuta en un bucle infinito. Dentro de este ciclo hay una función que se ejecutará después de que haya transcurrido una cantidad específica de tiempo. Esta función conectará el Pico W a Wi-Fi, hará su trabajo (p. ej., enviará datos a un servidor) y luego lo desconectará.

Restablecimiento completo de software

El uso del código de restablecimiento completo de MicroPython puede ayudarlo a asegurarse de que su Pico W funcione incluso si no interviene. Vea nuestro Introducción a MicroPython si necesita ayuda, ejecute este comando:

importar máquina
máquina.reiniciar()

Supongamos que pierde la conexión a medianoche mientras duerme. Si no tenía un restablecimiento completo del software, tendría que restablecer manualmente el programa por la mañana. Esto podría causar ocho horas de pérdida de registro de datos.

Si tiene un restablecimiento completo de software, que ha puesto en su bloque de código de manejo de errores, el Pico W se restablecerá solo.

La desventaja de esto es que con el restablecimiento completo, el estado de su programa se perderá y si su programa falla, el restablecimiento completo del software no se activará.

Utilice el temporizador de vigilancia integrado del Pico W

Un temporizador de vigilancia de hardware es básicamente un dispositivo que reinicia su Pico W si no funciona correctamente. Los temporizadores de vigilancia son temporizadores de cuenta regresiva. Si reciben una señal antes de que la cuenta regresiva llegue a cero, entonces la cuenta regresiva se reinicia. Sin embargo, si la cuenta regresiva llega a cero, se reiniciará el Pico W.

En MicroPython, el código básico es así:

de máquina importar WDT
wdt = WDT(tiempo de espera=1000) #timeout está en ms
wdt.alimentar() #restablececuenta regresiva

Puedes visitar Documentación WDT de MicroPython para aprender más y también Documentos SDK oficiales de Pico para orientación sobre C++.

Haga que la conexión de su Pico W sea a prueba de bombas

Para darle a su Pico W la mejor oportunidad de funcionar indefinidamente con una conexión Wi-Fi, deberá hacer varias cosas.

En primer lugar, asegúrese de que la conexión Wi-Fi sea razonablemente fuerte. Si bien el código puede mitigar algunos desafíos con Wi-Fi, según el método utilizado, a veces puede provocar la pérdida del estado del programa o la pérdida de puntos de datos.

En segundo lugar, el programa debe tener algún método para recuperarse de las conexiones Wi-Fi caídas para que pueda obtener un servicio continuo.

Con estos pasos en su lugar, puede estar seguro de una conectividad más confiable de su Pico W.