Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

Se você executou seu Raspberry Pi Pico W por muito tempo, é provável que acabe percebendo que seu programa não está mais em execução.

Uma das razões pelas quais os programas falham por um longo período de tempo envolve a confiabilidade do Wi-Fi. Se o seu Wi-Fi não for confiável, o primeiro instinto do Pico W é travar.

Vamos ver como podemos tornar o Pico W mais resiliente no MicroPython.

O que causa a confiabilidade do Wi-Fi no Pico W?

Seu Wi-Fi está desconectando várias vezes ao dia. É difícil perceber isso em seu telefone ou PC porque os sistemas operacionais e softwares são responsáveis ​​por essa deficiência garantida de redes Wi-Fi.

Com o Pico W, um script simples que conecta e busca dados travaria se o Pico W perdesse a conexão. A única solução é redefini-lo puxando a energia.

Se o seu projeto requer registro de dados por horas seguidas, você não deseja monitorar constantemente as interrupções.

instagram viewer

O tratamento de erros é a chave para garantir que seu programa sobreviva a conexões ruins.

Melhorar a intensidade do sinal Wi-Fi ajudará?

Você pode estar considerando se você deve usar uma rede mesh para aumentar a intensidade do sinal. Sim, ajudará, mas não a ponto de evitar cenários em que haja uma queda na conexão.

Em um experimento, colocamos um Pico W em um local no segundo andar de uma casa e outro Pico W próximo ao roteador Wi-Fi. A diferença no resultado é que o dispositivo no segundo andar foi desconectado antes do Pico W situado mais perto do roteador. O último também teve uma queda de conexão, conforme refletido pelas lacunas na coleta de dados.

Infelizmente, melhorar a intensidade do sinal reduz o problema, mas não o resolve. Então, vamos ver alguns métodos para escrever um código mais resiliente.

Método de Software Conectar e Desconectar

Se o seu projeto requer apenas comunicação unidirecional, esse método seria perfeito para ele. Alguns exemplos seriam registradores de temperatura que precisam ser executados por um longo período de tempo, mas apenas registram dados de vez em quando.

Isso resolve o problema de falhas que acontecem quando seu Pico W pensa que está conectado, mas quando tenta enviar dados para um endpoint, ele percebe que está offline e começa a travar.

A chave para esse método envolve um procedimento em que seu programa é executado em um loop infinito. Dentro desse loop está uma função que será executada após um período de tempo específico. Esta função conectará o Pico W ao Wi-Fi, fará seu trabalho (por exemplo, enviar dados para um servidor) e, em seguida, desconectará.

Reinicialização forçada do software

O uso do código de hard reset do MicroPython pode ajudá-lo a garantir que seu Pico W esteja funcionando mesmo se você não intervir. veja nosso introdução ao MicroPython se precisar de ajuda, execute este comando:

importar máquina
máquina.reiniciar()

Digamos que você perca a conexão à meia-noite enquanto está dormindo. Se você não tivesse uma reinicialização completa do software, teria que redefinir manualmente o programa pela manhã. Isso pode causar oito horas de perda de registro de dados.

Se você tiver um hard reset de software, que você colocou em seu bloco de código de tratamento de erros, o Pico W irá reiniciar sozinho.

A desvantagem disso é que, após a reinicialização completa, o estado do seu programa será perdido e, se o programa travar, a reinicialização total do software não será acionada.

Use o Watchdog Timer integrado do Pico W

Um temporizador watchdog de hardware é basicamente um dispositivo que redefiniria seu Pico W se ele não funcionasse bem. Cronômetros de vigilância são cronômetros de contagem regressiva. Se eles receberem um sinal antes que a contagem regressiva chegue a zero, a contagem regressiva será redefinida. No entanto, se a contagem regressiva chegar a zero, ela redefinirá o Pico W.

No MicroPython, o código básico é o seguinte:

de máquina importar WDT
wdt = WDT(tempo limite=1000) #timeout está em ms
wdt.alimentar() #reiniciacontagem regressiva

Você pode visitar Documentação WDT do MicroPython aprender mais e também Documentos SDK oficiais do Pico para orientação C++.

Torne a conexão do seu Pico W à prova de bombas

Para dar ao seu Pico W a melhor chance de funcionar indefinidamente em uma conexão Wi-Fi, você precisará fazer várias coisas.

Em primeiro lugar, verifique se a conexão Wi-Fi é razoavelmente forte. Embora o código possa atenuar alguns desafios com o Wi-Fi, dependendo do método usado, às vezes pode resultar na perda do estado do programa ou na perda de pontos de dados.

Em segundo lugar, o programa precisa ter algum método para se recuperar de conexões Wi-Fi perdidas para que você possa obter um serviço contínuo.

Com essas etapas em vigor, você pode ter certeza de uma conectividade mais confiável do seu Pico W.