💡 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_TIMEOUTsi 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