Wifi
- Si la Raspberry est connectée en WiFi et non en filaire, lors d’une panne de courant, la Raspberry se mettra en route AVANT que la WiFi ne soit disponible
- La Raspberry sera alors incapable de se connecter au WiFi
- Le logiciel sera opérationnel, avec prises de photos, stockage dans la base de données… Mais le site ne sera pas accessible
- La Raspberry ne sera même pas accessible en
ssh
et il ne sera donc pas possible de la rebooter à distance - La seule solution est alors de débrancher la Raspberry et de la rebrancher pour qu’elle se connecte au WiFi au redémarrage
- Une solution est proposée par dweeber
- Dans cet esprit, on peut proposer un script python qui va tester la connexion WiFi régulièrement en lançant un ping
- En absence de réponse, une commande lance la connexion WiFi
- Voir la page LinuxHint et le forum ArchiLinux
- Ouvrir le fichier
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
- Si le contenu est du type
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=FR
network={
ssid="<monReseau>"
psk="<monMotDePasse>"
key_mgmt=WPA-PSK
}
- Vérifier juste que le nom du réseau et le mot de passe sont corrects
- Sinon effacer le fichier et écrire les lignes précédentes en ajustant le nom de votre réseau et le mot de passe
- Sauvegarder si besoin et fermer
- Ouvrir le fichier wifi.py en écriture
nano ~/script/wifi.py
- Copier/coller le contenu suivant
'''Script qui vérifie si la WiFi est connectée ; si elle ne l'est pas : la connecte
Au préalable il faut être sur qu'un réseau est joignable et s'assurer que les commandes ip link down et up sont fonctionnelles'''
import subprocess
site = 'www.google.fr'
ping = f'ping -c1 {site}'
pingReturn = subprocess.run(ping, shell=True, stdout=subprocess.PIPE).stdout
if pingReturn:
print("wifi fonctionne déjà")
pass
else:
print("wifi va se remettre")
wifiUp = "sudo rfkill unblock all && sudo ip link set wlan0 up"
subprocess.run(wifiUp, shell=True)
print("done")
- Sauvegarder et quitter :
Ctrl + O + X
- Ouvrir le crontab :
crontab -e
- Lancer le script wifi.py toutes les 5 minutes (par exemple) en ajoutant à la fin du
crontab
*/5 * * * * python3 /home/pi/script/wifi.py
- Sauvegarder et quitter le
crontab