mirror of
https://github.com/deunix-educ/voice-assistant.git
synced 2026-10-13 08:21:58 +02:00
Assistant vocal local ESP32 : étapes 1 à 15, et 15b écrite
État du projet au premier commit : - firmware ESP32 : micro I2S, lecture anti-gigue, MQTT (état retenu, testament), mains libres, domotique de démonstration, chien de garde, présence du serveur ; - serveur Python : sessions, VAD, faster-whisper, pyannote, identification, droits par profil, domotique, mot de réveil, Piper ; - broker Mosquitto : configuration, comptes et ACL (non activés en développement) ; - étape 15b écrite, en attente d'essai : agent MQTT pour machines Linux. Étapes 1 à 15 validées. 203 tests, pyright sans erreur. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
#pragma once
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <WiFi.h>
|
||||
|
||||
/**
|
||||
* @brief Connexion Wi-Fi en mode station, non bloquante, reconnexion automatique.
|
||||
*
|
||||
* begin() lance la connexion et rend la main aussitôt : l'audio ne doit jamais
|
||||
* attendre le réseau. update() signale les changements d'état et, si le réseau
|
||||
* reste absent plus de WIFI_RESTART_MS, relance la connexion de zéro (étape 15).
|
||||
*/
|
||||
class WifiLink {
|
||||
public:
|
||||
/**
|
||||
* @param ssid Nom du réseau (2,4 GHz).
|
||||
* @param password Mot de passe.
|
||||
* @param hostname Nom de la carte sur le réseau local.
|
||||
*/
|
||||
WifiLink(const char* ssid, const char* password, const char* hostname);
|
||||
|
||||
/// Lance la connexion, sans attendre.
|
||||
void begin();
|
||||
|
||||
/// À appeler à chaque tour de boucle : journalise connexion et perte, relance si besoin.
|
||||
void update();
|
||||
|
||||
/// true si l'ESP32 a une adresse IP.
|
||||
bool connected() const;
|
||||
|
||||
/// Puissance du signal reçu, en dBm (-50 excellent, -80 limite).
|
||||
int rssi() const;
|
||||
|
||||
/// Adresse IP courante, ou 0.0.0.0.
|
||||
IPAddress ip() const;
|
||||
|
||||
private:
|
||||
const char* _ssid;
|
||||
const char* _password;
|
||||
const char* _hostname;
|
||||
bool _wasConnected = false;
|
||||
uint32_t _lostSinceMs = 0; ///< début de la coupure en cours, pour la journaliser
|
||||
uint32_t _retrySinceMs = 0; ///< dernière relance de la connexion
|
||||
};
|
||||
Reference in New Issue
Block a user