.. note:: Bonjour, bienvenue dans la communauté des passionnés de SunFounder Raspberry Pi, Arduino & ESP32 sur Facebook ! Explorez en profondeur le Raspberry Pi, l'Arduino et l'ESP32 avec d'autres passionnés. **Pourquoi nous rejoindre ?** - **Support d'experts** : Résolvez les problèmes après-vente et les défis techniques avec l'aide de notre communauté et de notre équipe. - **Apprendre & Partager** : Échangez des astuces et des tutoriels pour améliorer vos compétences. - **Avant-premières exclusives** : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus exclusifs. - **Réductions spéciales** : Profitez de remises exclusives sur nos nouveaux produits. - **Promotions festives et cadeaux** : Participez à des concours et promotions spéciales. 👉 Prêt à explorer et créer avec nous ? Cliquez sur [|link_sf_facebook|] et rejoignez-nous dès aujourd'hui ! .. _iot_access: 1. Accès au Réseau =========================== Le Raspberry Pi Pico W est très similaire au Raspberry Pi Pico, avec les mêmes GPIO, port microUSB et dimensions. La seule différence est l'ajout de la puce Wi-Fi CYW43439 2,4 GHz d'Infineon. Voyons maintenant comment il se connecte à notre réseau Wi-Fi. **Composants requis** Pour ce projet, nous aurons besoin des composants suivants. Il est certainement pratique d'acheter un kit complet, voici le lien : .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nom - DANS CE KIT - LIEN * - Kepler Kit - 450+ - |link_kepler_kit| Vous pouvez également les acheter séparément via les liens ci-dessous. .. list-table:: :widths: 5 20 5 20 :header-rows: 1 * - SN - COMPOSANT - QUANTITÉ - LIEN * - 1 - :ref:`cpn_pico_w` - 1 - |link_picow_buy| * - 2 - Câble Micro USB - 1 - 1. Connexion à Internet ------------------------------------ Avec seulement cinq lignes de MicroPython, notre Raspberry Pi Pico W se connecte joyeusement à Internet. Ces 5 lignes de code peuvent être exécutées directement depuis le Shell, en appuyant sur ``Enter`` après les avoir tapées. Ou référez-vous à la méthode suivante et créez un nouveau fichier ``.py`` pour les exécuter. .. code-block:: python import network wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect("SSID","PASSWORD") print(wlan.isconnected()) #. Créez un nouveau script en cliquant sur le bouton **New** dans Thonny, copiez et collez le code ci-dessus, en changeant ``SSID`` et ``PASSWORD`` par les vôtres. .. image:: img/access1.png #. Pour exécuter le script, cliquez sur le bouton **Run current script** ou appuyez sur F5. Si la connexion est réussie, ``true`` s'affichera. .. note:: Assurez-vous que le Raspberry Pi Pico W est connecté à l'ordinateur via un câble USB, puis cliquez en bas à droite pour sélectionner MicroPython (Raspberry Pi Pico).COMXxx comme interpréteur. .. image:: img/access2.png 2. Gestion des délais et affichage de l'IP ----------------------------------------------- En tenant compte de certaines conditions réseau médiocres, ajoutons une gestion de délai au code. Si la connexion est réussie, l'IP du Pico W s'affichera après avoir copié et exécuté le script. .. code-block:: python import network import time wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect("SSID","PASSWORD") # Attendre la connexion ou l'échec wait = 10 while wait > 0: if wlan.status() < 0 or wlan.status() >= 3: break wait -= 1 print('waiting for connection...') time.sleep(1) # Gérer l'erreur de connexion if wlan.status() != 3: raise RuntimeError('wifi connection failed') else: print('connected') print('IP: ', wlan.ifconfig()[0]) .. image:: img/access3.png * Fonction ``wlan.status()`` : Renvoie le statut actuel de la connexion sans fil, la valeur retournée est indiquée dans le tableau ci-dessous. .. list-table:: :widths: 40 10 50 * - Statut - Valeur - Description * - STAT_IDLE - 0 - pas de connexion et aucune activité, * - STAT_CONNECTING - 1 - connexion en cours, * - STAT_WRONG_PASSWORD - -3 - échec en raison d'un mot de passe incorrect, * - STAT_NO_AP_FOUND - -2 - échec car aucun point d'accès n'a répondu, * - STAT_CONNECT_FAIL - -1 - échec pour d'autres raisons, * - STAT_GOT_IP - 3 - connexion réussie. * Fonction ``wlan.ifconfig()`` : Obtient les adresses IP, les masques de sous-réseau, les passerelles et les serveurs DNS. Cette méthode retourne un tuple contenant ces informations. Dans ce cas, nous n'affichons que l'adresse IP. * `class WLAN – MicroPython Docs `_ .. _create_secrets: 3. Enregistrer les informations privées dans ``secrets.py`` ---------------------------------------------------------------- Lorsque vous partagez votre projet Pico W, vous ne voulez probablement pas que d'autres voient votre mot de passe Wi-Fi ou votre clé API. Pour une meilleure sécurité, nous pouvons créer un fichier ``secrets.py`` pour stocker vos informations privées. #. Copiez le code suivant dans un nouveau fichier script sur Thonny. N'oubliez pas de changer ``SSID`` et ``PASSWORD`` par les vôtres. .. code-block:: python secrets = { 'ssid': 'SSID', 'password': 'PASSWORD', } #. Choisissez Raspberry Pi Pico dans la fenêtre qui apparaît lorsque vous cliquez sur le bouton Save ou appuyez sur ``Ctrl+S``. .. image:: img/access4.png #. Nommez le fichier ``secrets.py``. .. image:: img/access5.png #. Vous verrez maintenant ce script dans votre Raspberry Pi Pico W. .. image:: img/access6.png #. Dans d'autres scripts, vous pouvez l'appeler comme suit. Si vous l'exécutez, vous verrez une connexion Wi-Fi réussie. Le fichier ``secrets.py`` est importé en tant que bibliothèque, vous n'avez donc pas à vous soucier de la fuite d'informations. .. code-block:: python :emphasize-lines: 3,7 import network import time from secrets import secrets wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(secrets['ssid'], secrets['password']) # Attendre la connexion ou l'échec wait = 10 while wait > 0: if wlan.status() < 0 or wlan.status() >= 3: break wait -= 1 print('waiting for connection...') time.sleep(1) # Gérer l'erreur de connexion if wlan.status() != 3: raise RuntimeError('wifi connection failed') else: print('connected') print('IP: ', wlan.ifconfig()[0]) .. image:: img/access8.png .. _do_connect: 4. Connectez-vous à Internet via ``do_connect.py`` -------------------------------------------------------------- Étant donné que chacun de nos prochains projets nécessitera une connexion réseau, pourquoi ne pas créer un nouveau fichier ``do_connect.py`` et y écrire les fonctions pertinentes pour les réutiliser, ce qui simplifiera considérablement le code des projets complexes. #. Copiez le code suivant dans un nouveau fichier script et enregistrez-le dans le Raspberry Pi Pico sous le nom ``do_connect.py``. .. code-block:: python import network import time from secrets import * def do_connect(ssid=secrets['ssid'],psk=secrets['password']): wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(ssid, psk) # Attendre la connexion ou l'échec wait = 10 while wait > 0: if wlan.status() < 0 or wlan.status() >= 3: break wait -= 1 print('waiting for connection...') time.sleep(1) # Gérer l'erreur de connexion if wlan.status() != 3: raise RuntimeError('wifi connection failed') else: print('connected') ip=wlan.ifconfig()[0] print('network config: ', ip) return ip .. image:: img/access7.png #. En l'appelant dans d'autres scripts de la manière suivante, le Raspberry Pi Pico W se connectera au réseau. .. code-block:: python from do_connect import * do_connect() .. https://www.tomshardware.com/reviews/raspberry-pi-pico-w