💡 Utilisation de base
Initialisation
#include <SchreinWiFiParser.h>
SchreinWiFiParser wifiParser;
void setup() {
Serial.begin(115200);
// Connexion WiFi
if (wifiParser.begin("MonSSID", "MonMotDePasse")) {
// Mode client
wifiParser.initAsClient(IPAddress(192, 168, 1, 100), 8888);
// Ou mode serveur
// wifiParser.initAsServer(8888);
}
}
void loop() {
wifiParser.loop();
if (wifiParser.isFrameAvailable()) {
String value = wifiParser.getValue("monControl", "maKey");
Serial.println("Valeur reçue: " + value);
}
}
Envoi de données
// Envoyer une commande
String frame = SchreinWiFiParser::command("led", "state", "on");
wifiParser.sendFrame(frame);
// Envoyer vers une cible spécifique
wifiParser.sendFrameTo(frame, IPAddress(192, 168, 1, 50), 8888);
⚡ Gestion d’énergie
Mode économie
// Activer/désactiver le mode économie
wifiParser.setPowerSaving(true);
// Configurer le deep sleep
wifiParser.setDeepSleepDuration(300); // 5 minutes
// Forcer le deep sleep manuellement
wifiParser.enterDeepSleep();
Surveillance de la connexion
// Vérifier l'état de la connexion
if (wifiParser.isConnectionHealthy()) {
Serial.println("Connexion stable");
}
// Obtenir la qualité du signal
int quality = wifiParser.getConnectionQuality();
Serial.println("Qualité: " + String(quality) + "%");
🔗 Callbacks
Exemple d’utilisation des callbacks
void onFrameParsed(String control, String key, String value) {
Serial.println("Frame reçu - Control: " + control + ", Key: " + key + ", Value: " + value);
}
void onWiFiSignal(int rssi) {
Serial.println("Signal WiFi: " + String(rssi) + " dBm");
}
void setup() {
wifiParser.onFrameParsed(onFrameParsed);
wifiParser.onWiFiSignalUpdate(onWiFiSignal);
// ... autres callbacks
}
Callbacks disponibles
onError()
– Erreurs systèmeonDataReceived()
– Données brutes reçuesonFrameParsed()
– Trame parséeonNewClient()
– Nouveau client connectéonWiFiStatusChange()
– Changement statut WiFionWiFiSignalUpdate()
– Mise à jour signalonDeepSleep()
– Avant deep sleeponPowerModeChange()
– Changement mode économieonConnectionQualityUpdate()
– Mise à jour qualité
🛠️ Diagnostic
Output de debug
// Afficher les informations WiFi
wifiParser.debugOutput("wifiStatus");
// Afficher les clients connectés
wifiParser.debugOutput("clients");
// Afficher les statistiques de connexion
wifiParser.debugOutput("connectionStats");
// Réinitialiser les données
wifiParser.debugOutput("reset");
📖 Format des trames
Format de base
<[controlName|key|value]&checksum>
Exemple
<[led|state|on]&A7>
Construction de commande
String command = SchreinWiFiParser::command("motor", "speed", "255");
// Résultat: "motor=speed:255;"
⚙️ Configuration
Constantes modifiables
Dans SchreinWiFiParser.h
:
#define POWER_SAVING_MODE 1 // Mode économie par défaut
#define MAX_CONSECUTIVE_WIFI_FAILURES 3 // Échecs avant deep sleep
#define DEEP_SLEEP_DURATION 300 // Durée deep sleep (secondes)
#define WIFI_RECONNECT_INTERVAL 10000 // Intervalle reconnexion (ms)
#define MAX_FRAME_SIZE 256 // Taille max des trames
🐛 Dépannage
Problèmes courants
- Échec de connexion WiFi
- Vérifier SSID/mot de passe
- Vérifier la portée du signal
- Augmenter
WIFI_CONNECT_TIMEOUT
si nécessaire
- Trames non reçues
- Vérifier le format des trames
- Activer les logs de debug
- Vérifier le checksum
- Déconnexions fréquentes
- Désactiver le mode économie
- Vérifier la stabilité du réseau
- Ajuster les timeouts
Leave a Reply