Je possède une Raspberry Pi 3 configurée pour être nomade ; en effet, elle a pour vocation d'être un drone terrestre diffusant son propre réseau Wifi (permettant son contrôle ou simplement son accès en ssh), alimentée avec un powerbank et possédant une seconde interface wifi lui permettant de se connecter à un autre réseau Wifi (et d'accéder à internet).
Point positif : Tout fonctionne plutôt correctement
Point négatif : aucun retour visuel de l'activité de la Raspberry....
J'ai branché 3 LED sur 3 GPIO... Je peux les allumer manuellement ou par script python.... Mais je n'arrive pas à provoquer leur allumage en fonction du résultat d'un test.
Ne sachant pas du tout programmer (et encore moins "from scratch") je suis donc à la recherche d'un script pouvant effectuer ce type de scénario :
Teste si l'interface wlan0 diffuse bien son ssid (le hotspot wifi est il activé ?)
si oui => allume la led 1
si non => la led 1 reste éteinte
Vérifie cette condition toute les 5 secondes
Teste si l'interface wlan1 est bien connectée (la Raspberry est connectée en wifi à un Lan local)
si oui => allume la led 2
si non => la led 2 reste éteinte
Vérifie cette condition toute les 5 secondes
Teste si tel service est lancé (streaming vidéo, nginx, script divers...)
si oui => allume la led 3
si non => la led 3 reste éteinte
Vérifie cette condition toute les 5 secondes
Si quelqu'un possède une piste pour effectuer ce que j'appellerai l'allumage conditionnel d'une LED, je suis intéressé ! Car je n'ai hélas pas les compétences pour créer par moi même ce genre de script et que je n'en trouve pas d'exemple sur internet....autre que celui là, sur raspberrypi.org, mais le code proposé ne me parle pas du tout et je ne vois pas comment l'adapter à mes besoins :
Code : Tout sélectionner
def getwpaclientstatus():
import subprocess
try:
writedatedlogmsg(networklog, 'Attempting WPA client status read. ', 4, networkloglevel)
result = subprocess.Popen(['/sbin/wpa_cli', 'status'], stdout=subprocess.PIPE)
except:
writedatedlogmsg(networklog, 'Error reading wpa client status. ', 0, networkloglevel)
else:
writedatedlogmsg(networklog, 'Completed WPA client status read. ', 4, networkloglevel)
# prune interface ID
resultdict = {}
for result in result.stdout:
if result.find('=') > 0:
split = result.split('=')
resultdict[split[0]] = split[1].strip()
return resultdict