Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
esp-net-easy
Abstraction asynchrone no_std pour simplifier la configuration WiFi et la
mise en route de la pile réseau Embassy sur les puces ESP32.
Cette crate encapsule la « tuyauterie » habituellement nécessaire pour démarrer
un client WiFi (mode Station) avec une adresse IP statique : configuration de
la pile embassy-net, allocation statique des ressources requises par Embassy,
et lancement des tâches de fond (gestion de la connexion WiFi et exécution de
la pile réseau).
Versions ciblées
Cette version cible l'écosystème suivant :
| Crate | Version |
|---|---|
esp-hal |
1.1 |
esp-radio |
0.18 |
esp-rtos |
0.3 |
embassy-executor |
0.10 |
embassy-net |
0.9 |
embassy-time |
0.5 |
heapless |
0.9 |
esp-rtos remplace esp-hal-embassy, et esp-radio remplace esp-wifi.
⚠️ Depuis
esp-radio0.18,esp_radio::init()etesp_radio::Controllern'existent plus. L'initialisation du contrôleur radio est intégrée directement dansesp_radio::wifi::new, qui ne prend en entrée que le périphériqueWIFIde la HAL. Cette crate a été mise à jour en conséquence : [init_esp_net_easy] ne prend donc plus de paramètreradio_controller.
Prérequis applicatifs
Contrairement au pilote radio, l'initialisation du runtime Embassy
(esp_rtos::start) reste à la charge de l'application, car elle nécessite
la possession d'un timer matériel qui ne peut pas être abstrait sans imposer
un câblage figé.
Installation
[]
= "0.1"
Activez la feature correspondant à votre puce (esp32, esp32c3, esp32c6
ou esp32s3) :
= { = "0.1", = ["esp32c3"] }
Exemple d'utilisation
use Spawner;
use CpuClock;
use Rng;
use TimerGroup;
use ;
async !
Fonctionnement interne
- Le pilote radio
esp-radioinitialise le contrôleur et l'interface Station à partir du périphériqueWIFIfourni par l'application (esp_radio::wifi::new). - L'adresse IP statique, le masque
/24et la passerelle sont assemblés en une configuration réseauembassy-net(avec un serveur DNS optionnel). - Une graine aléatoire 64 bits est générée via le RNG matériel de l'ESP32 pour initialiser la pile réseau.
- Les ressources statiques de la pile (
StackResources) sont allouées viastatic_cell, évitant toute gestion manuelle de mémoire statique côté application. - Deux tâches Embassy sont lancées en arrière-plan :
net_taskfait tourner leRunnerde la pile réseau.wifi_connection_taskconfigure le mode Station (SSID/mot de passe) — ce qui démarre implicitement le contrôleur WiFi viaset_config(esp_wifi_startest appelé en interne, aucunstart_asyncséparé n'est nécessaire) — puis se connecte au point d'accès et tente une reconnexion automatique en cas de déconnexion (wait_for_disconnect_async).
- La fonction attend que la configuration réseau soit active
(
stack.wait_config_up()) avant de retourner laStackprête à l'emploi.
Limitations connues
- Seul le mode Station (client) avec adressage IPv4 statique est supporté ; ni le DHCP, ni le mode Access Point, ni l'IPv6 ne sont gérés pour l'instant.
- Le masque de sous-réseau est figé à
/24. - Les paramètres
ssid,password,static_ipetgateway_ipdoivent être des chaînes statiques (&'static str). - En cas de SSID/IP invalides, la fonction
panic!(.unwrap()/.expect()), ce qui est jugé acceptable pour une configuration figée au démarrage sur systèmes embarqués.
Licence
GPL-2.0-or-later
Copyright (C) 2026 Jorge Andre Castro