Application mobile Flutter pour Android et iOS, connectée à un ESP32 TTGO T-Display. Le système simule une ventilation intelligente, affichage de la température, contrôle automatique ou manuel, et communication REST sécurisée via un token transmis par QR code.
- Connexion utilisateur via Firebase Authentication : email, mot de passe, Google
- Appairage de l’ESP32 via QR code : IP, token
- Mode automatique avec seuils configurables et mode manuel : Slow, Medium, Fast
- Affichage de la température et de l’état du système
- Flutter, Dart ^3.10
- Android Studio pour Android
- Xcode et CocoaPods pour iOS
- Configuration Firebase :
- Android :
android/app/google-services.json - iOS :
ios/GoogleService-Info.plist
- Android :
flutter pub getflutter pub run flutter_launcher_icons
flutter runSinon , ouvrir le projet dans Android Studio, choisir un appareil, puis appliquer ceci.
flutter pub run flutter_launcher_iconsAinsi choisir votre emulateur ou telephone
ÉTAPE OBLIGATOIRE : Installer les dépendances CocoaPods
cd ios
pod install
cd ..Cette étape crée le fichier Runner.xcworkspace nécessaire pour Xcode.
- Ouvrir le workspace Xcode :
cd ios
open Runner.xcworkspace-
IMPORTANT : Toujours ouvrir
Runner.xcworkspaceet NONRunner.xcodeproj -
Dans Xcode :
- Sélectionner votre appareil (iPhone) ou simulateur
- Product ---> Build (⌘B)
- Product ---> Run (⌘R)
- Activer le mode développeur : Réglages ---> Confidentialité et sécurité ---> Mode développeur
- Faire confiance au développeur : Réglages ---> Général ---> Gestion des appareils
- S'assurer que l'iPhone est déverrouillé pendant le déploiement
Si erreur "Development team not configured" :
- Dans Xcode, sélectionner le projet Runner
- Onglet Signing & Capabilities
- Sélectionner votre Team ou cocher "Automatically manage signing"
Si vous rencontrez cette erreur en rouvrant le projet :
/ios/Pods/AppAuth/Sources/AppAuth.h: No such file or directory
Solution rapide avec le script automatique :
cd ios
./fix_pods.shCe script va automatiquement :
- Nettoyer les pods existants
- Réinstaller proprement toutes les dépendances
- Corriger les chemins de build
Ensuite, dans Xcode :
- Product → Clean Build Folder (Shift+⌘+K)
- Product → Build (⌘B)
Solution manuelle :
cd ios
rm -rf Pods Podfile.lock
pod deintegrate
pod installPuis relancer depuis Xcode (Product → Clean Build Folder → Build)
Si vous rencontrez des erreurs de type "No such module 'AppAuth'",
Solution rapide :
flutter pub get
cd ios
rm -rf Pods Podfile.lock
pod installPuis relancer depuis Xcode (Product → Build → Run)
Si le problème persiste, solution complète (peut prendre 15-30 minutes) :
cd ios
rm -rf Pods Podfile.lock
rm -rf ~/Library/Developer/Xcode/DerivedData
pod deintegrate
pod cache clean --all
pod repo update
pod install
cd ..
flutter clean
flutter pub getPuis relancer depuis Xcode (Product → Build → Run)
Note : Le Podfile a été configuré pour éviter les problèmes de liens symboliques cassés. Si vous continuez à rencontrer des erreurs, utilisez le script
fix_pods.shqui résout la plupart des problèmes automatiquement.
En cas d'erreurs persistantes liées au dossier build :
sudo rm -rf build
sudo xattr -cr .
flutter clean
flutter pub get
cd ios
open Runner.xcworkspacePuis relancer depuis Xcode
Le QR code contient :
{
"ip": "192.168.1.100",
"token": "SmartHomeProject2024SecureToken",
"name": "ESP32 Smart Fan"
}Le token est ensuite envoyé sur l’API via : Authorization: Bearer <token>.
La documentation Swagger de l’API est disponible ici :
https://app.swaggerhub.com/apis/universityofmontpell/smart-home-api/1.0.0