Modifications

Sauter à la navigation Sauter à la recherche
5 968 octets ajoutés ,  13 mars 2017 à 14:35
Ligne 1 : Ligne 1 :  
{{WIPY-NAV}}
 
{{WIPY-NAV}}
   −
{{traduction}}
+
== 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]]
 +
 
 +
== 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 ==
Ligne 72 : Ligne 86 :  
     # La configuration ci-dessous DOIT CORRESPONDRE A VOTRE ROUTEUR WIFI!!
 
     # La configuration ci-dessous DOIT CORRESPONDRE A VOTRE ROUTEUR WIFI!!
 
     wlan.ifconfig(config=('192.168.178.107', '255.255.255.0', '192.168.178.1', '8.8.8.8'))
 
     wlan.ifconfig(config=('192.168.178.107', '255.255.255.0', '192.168.178.1', '8.8.8.8'))
 +
    # Exemple sur mon routeur, j'ai configuré l'adresse IP Fixe 192.168.1.220
 +
    # wlan.ifconfig(config=('192.168.1.220', '255.255.255.0', '192.168.1.1', '8.8.8.8'))
    
if not wlan.isconnected():
 
if not wlan.isconnected():
Ligne 81 : 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 ==
 +
Pour vous connecter sur votre WiPy en FTP ou Telnet, vous utiliser le login et mot de passe par défaut du WiPy (login: {{fname|micro}}, mot de passe: {{fname|python}}).
 +
 +
Il est vivement conseillé de modifier cette configuration par défaut, sinon votre WiPy est trop facilement accessible.
 +
 +
La modification du mot de passe se fait en utilisant la classe {{fname|Server}} du module {{fname|network}} (comme décrit [https://micropython.org/resources/docs/en/latest/wipy/library/network.html#network-server ici]).
 +
 +
Voici un exemple:
 +
<syntaxhighlight lang="python">
 +
import network
 +
# référence vers l'instance serveur
 +
server = network.Server()
 +
# désactive le serveur
 +
server.deinit()
 +
# Réactive le serveur avec la nouvelle configuration
 +
server.init(login=(‘utilisateur’, ‘mot_de_passe’), timeout=600)
 +
</syntaxhighlight>
 +
 +
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 ==
 +
Si vous avez besoin de connaître l'adresse MAC de votre WiPy, ce qui arrive lorsque l'on a besoin de filtrer les accès sur un routeur, vous pouvez l'obtenir à l'aide des instructions suivantes:
 +
 +
<syntaxhighlight lang="python">
 +
import machine
 +
# Retourne l'identifiant unique de la carte codé sur 6 octets/bytes (l'adresse MAC du WiPy)
 +
machine.unique_id()
 +
</syntaxhighlight>
    
{{WIPY-TRAILER}}
 
{{WIPY-TRAILER}}
29 917

modifications

Menu de navigation