Modifications

Sauter à la navigation Sauter à la recherche
2 154 octets ajoutés ,  13 mars 2017 à 14:35
Ligne 5 : Ligne 5 :     
== Led Heartbeat et configuration ==
 
== Led Heartbeat et configuration ==
La modification de configuration se fait dans le fichier {{fname|boot.py}}. Une fois configuré, vous pourrez redémarrer votre WiPy en faisant un [[Reset comme indiqué ici]].  
+
La modification de configuration se fait dans le fichier {{fname|boot.py}}. Une fois configuré, vous pourrez redémarrer votre WiPy en faisant un [[Hack-wipy-boot-mode#R.C3.A9initialisation_mat.C3.A9rielle|{{fname|machine.reset()}} comme indiqué ici]].  
   −
S'il y a une erreur dans celui-ci, le script:
+
S'il y a une erreur dans {{fname|boot.py}}, le script:
 
* Ne pourra par être chargé (erreur de syntaxe)
 
* Ne pourra par être chargé (erreur de syntaxe)
 
* Ne sera pas exécuté complètement (erreur sur une ligne)
 
* Ne sera pas exécuté complètement (erreur sur une ligne)
Ligne 97 : Ligne 97 :     
{{ambox|text=Avez-vous remarqué le test sur la cause du réset et le statut de la connexion? Ces tests sont cruciaux pour permettre de faire un soft-reset (avec CTRL-D) durant un session REPL '''sans interrompre''' la connexion en cours.}}
 
{{ambox|text=Avez-vous remarqué le test sur la cause du réset et le statut de la connexion? Ces tests sont cruciaux pour permettre de faire un soft-reset (avec CTRL-D) durant un session REPL '''sans interrompre''' la connexion en cours.}}
 +
 +
== Réseaux multiples avec IP Fixe ==
 +
Le script suivant (trouvé sur pycom.io) est très ingénieux sur le plan des fonctionnalités.
 +
 +
Le script essayer de connecter la plateforme sur un des réseaux WiFi renseignés dans la configuration. Si la connexion échoue '''il passe la plateforme en mode AP (''Access Point'' - ''point d'accès'')''' .
 +
Cette façon de faire permet de proposer une interface de configuration WiFi pour sélectionner et configurer la connexion sur le réseau WiFi du routeur... puis de basculer sur le réseau du routeur après le rédémarrage du WiPy.
 +
 +
<syntaxhighlight lang="python">
 +
import os
 +
import machine
 +
 +
uart = machine.UART(0, 115200)
 +
os.dupterm(uart)
 +
 +
known_nets = {
 +
    '<net>': {'pwd': '<password>'},
 +
    '<net>': {'pwd': '<password>', 'wlan_config':  ('10.0.0.114', '255.255.0.0', '10.0.0.1', '10.0.0.1')}, # (ip, subnet_mask, gateway, DNS_server)
 +
}
 +
 +
if machine.reset_cause() != machine.SOFT_RESET:
 +
    from network import WLAN
 +
    wl = WLAN()
 +
    wl.mode(WLAN.STA)
 +
    original_ssid = wl.ssid()
 +
    original_auth = wl.auth()
 +
 +
    print("Scanning for known wifi nets")
 +
    available_nets = wl.scan()
 +
    nets = frozenset([e.ssid for e in available_nets])
 +
 +
    known_nets_names = frozenset([key for key in known_nets])
 +
    net_to_use = list(nets & known_nets_names)
 +
    try:
 +
        net_to_use = net_to_use[0]
 +
        net_properties = known_nets[net_to_use]
 +
        pwd = net_properties['pwd']
 +
        sec = [e.sec for e in available_nets if e.ssid == net_to_use][0]
 +
        if 'wlan_config' in net_properties:
 +
            wl.ifconfig(config=net_properties['wlan_config'])
 +
        wl.connect(net_to_use, (sec, pwd), timeout=10000)
 +
        while not wl.isconnected():
 +
            machine.idle() # save power while waiting
 +
        print("Connected to "+net_to_use+" with IP address:" + wl.ifconfig()[0])
 +
 +
    except Exception as e:
 +
        print("Impossible de se connecter sur un reseau, passe en mode AP")
 +
        wl.init(mode=WLAN.AP, ssid=original_ssid, auth=original_auth, channel=6, antenna=WLAN.INT_ANT)
 +
</syntaxhighlight>
    
== Modifier le login ==
 
== Modifier le login ==
29 917

modifications

Menu de navigation