Modifications

Sauter à la navigation Sauter à la recherche
4 220 octets ajoutés ,  13 mars 2017 à 14:35
Ligne 3 : Ligne 3 :  
== Configuration WiFi par défaut ==
 
== Configuration WiFi par défaut ==
 
La [[Hack-wipy-generalite#Config_r.C3.A9seau_.28WLAN.29_par_d.C3.A9faut|configuration par défaut du WiPy est décrite ici]]
 
La [[Hack-wipy-generalite#Config_r.C3.A9seau_.28WLAN.29_par_d.C3.A9faut|configuration par défaut du WiPy est décrite ici]]
+
 
 +
== 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 [[Hack-wipy-boot-mode#R.C3.A9initialisation_mat.C3.A9rielle|{{fname|machine.reset()}} comme indiqué ici]].
 +
 
 +
S'il y a une erreur dans {{fname|boot.py}}, le script:
 +
* Ne pourra par être chargé (erreur de syntaxe)
 +
* Ne sera pas exécuté complètement (erreur sur une ligne)
 +
 
 +
En cas d'erreur, la LED heartbeat clignotera alors rapidement, histoire de vous prévenir que quelque-chose n'a pas fonctionné comme attendu (voyez [[Hack-wipy-generalite#La_LED_heartbeat|LED heartbeat]] pour plus de détails).
 +
 
 +
Si vous avez corrompu votre fichier {{fname|boot.py}}, vous certainement besoin d'utiliser
 +
* [[Hack-wipy-boot-mode#Safe_Boot_:_le_mode_sans_.C3.A9chec|Safe Boot : pour démarrer en mode sans échec]]
 +
* [[Hack-wipy-boot-mode#R.C3.A9initialiser_le_syst.C3.A8me_de_fichier|Réinitialiser le système de fichier]]
 +
 
 
== Configuration WLAN étape par étape ==
 
== Configuration WLAN étape par étape ==
 
Le système WLAN (WiFi) est une fonctionnalité du WiPy, elle est par conséquent toujours activée, même durant un {{fname|machine.SLEEP}}.
 
Le système WLAN (WiFi) est une fonctionnalité du WiPy, elle est par conséquent toujours activée, même durant un {{fname|machine.SLEEP}}.
Ligne 84 : 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 ==
Ligne 104 : Ligne 165 :     
Il ne reste plus qu'à mettre cela en musique dans le fichier {{fname|boot.py}} de la même façon [[Hack-wipy-wlan#Assigner_une_adresse_IP_Fixe|que pour les adresses IP fixe]].
 
Il ne reste plus qu'à mettre cela en musique dans le fichier {{fname|boot.py}} de la même façon [[Hack-wipy-wlan#Assigner_une_adresse_IP_Fixe|que pour les adresses IP fixe]].
 +
 +
Voici le script utilisé sur mon WiPy:
 +
* IP Fixe et
 +
* modif de login (les comptes utilisateurs et mot-de-passe masqués).
 +
 +
<syntaxhighlight lang="python">import machine
 +
from network import WLAN
 +
from network import Server
 +
wlan = WLAN() # Obtenir l'objet actuel, sans changer le mode
 +
 +
# Configurer le WiFi uniquement sur on redemarre le WiPy.
 +
# Ne pas modifier la config WiFi si on fait une réinitialisation logicielle avec CTRL-D
 +
if machine.reset_cause() != machine.SOFT_RESET:
 +
    wlan.init(WLAN.STA)
 +
    # La configuration ci-dessous DOIT CORRESPONDRE A VOTRE ROUTEUR WIFI!!
 +
    wlan.ifconfig(config=('192.168.1.205', '255.255.255.0', '192.168.1.1', '8.8.8.8'))
 +
 +
if not wlan.isconnected():
 +
    # Modifiez la ligne suivante pour utiliser le ssid, sécurité et mot de passe de votre réseau WiFi
 +
    wlan.connect('mon_wifi', auth=(WLAN.WPA2, 'wifi_password'), timeout=5000)
 +
    while not wlan.isconnected():
 +
        machine.idle() # économiser de l'énergie pendant l'attente
 +
    # Modifier le login et mot de passe par défaut
 +
    server = Server()
 +
    server.deinit()
 +
    server.init( login=('user1', '456789'), timeout=600 )
 +
</syntaxhighlight>
    
== Adresse MAC ==
 
== Adresse MAC ==
29 917

modifications

Menu de navigation