EVISTAL, Bluetooth Low Energy (BLE) teknolojisi kullanarak akıllı ev cihazlarınızı kontrol etmenizi sağlayan modern bir Flutter uygulamasıdır. Özellikle nemlendirici cihazlar için optimize edilmiş kullanıcı dostu bir arayüze sahiptir.
EVISTAL, "Smart Home Application" konseptiyle geliştirilmiş bir IoT kontrol uygulamasıdır. Uygulama, BLE üzerinden ESP32 tabanlı cihazlarla iletişim kurarak:
- Nemlendirici mod kontrolü (Mod 1, Mod 2, Kapalı)
- LED renk kontrolü (Rainbow, RGB, Beyaz, Kapalı)
- Gerçek zamanlı cihaz bağlantı yönetimi
- Çoklu cihaz desteği
gibi özellikleri sunar.
- ✅ Otomatik "EVISTAL" cihaz tarama ve bağlantı
- ✅ Gerçek zamanlı cihaz tarama modalı
- ✅ Filtrelenmiş cihaz listesi (sadece EVISTAL cihazları)
- ✅ RSSI (sinyal gücü) gösterimi
- ✅ Güvenli bağlantı ve bağlantı kesme işlemleri
- ✅ AT komutları ile cihaz kontrolü
AT+RMOD=<mode>: Renk modu kontrolü (0-3)AT+DMOD=<mode>: Difüzör modu kontrolü (0-2)
- ✅ Modern gradient tasarım (lacivert palet)
- ✅ Animasyonlu mod geçişleri
- ✅ ON/OFF toggle butonu ile hızlı bağlantı
- ✅ Responsive tasarım (tüm ekran boyutlarına uyumlu)
- ✅ Kullanıcı dostu dialog bildirimleri (AwesomeDialog)
- ✅ İlk açılış splash screen'i
- ✅ Provider pattern ile state management
- ✅ SharedPreferences ile yerel veri saklama
- ✅ Android 6+ ve Android 12+ izin sistemi desteği
- ✅ iOS ve Android cross-platform uyumluluğu
- ✅ Modüler ve genişletilebilir kod yapısı
- Flutter SDK: ^3.8.1
- Dart: ^3.0+
| Paket | Versiyon | Kullanım Amacı |
|---|---|---|
flutter_blue_plus |
^1.35.5 | BLE iletişimi ve cihaz yönetimi |
provider |
^6.0.5 | State management |
permission_handler |
^11.3.1 | Sistem izinleri yönetimi |
shared_preferences |
^2.2.2 | Yerel veri saklama |
awesome_dialog |
^3.1.3 | Kullanıcı bildirimleri |
flutter_launcher_icons |
^0.13.1 | Uygulama ikonu oluşturma |
flutter_native_splash |
^2.4.1 | Splash screen oluşturma |
- Android: 6.0+ (API Level 23+)
- iOS: 12.0+
- Bluetooth: BLE 4.0+
- Flutter SDK 3.8.1 veya üzeri
- Android Studio / Xcode
- Fiziksel cihaz (BLE için)
Android:
BLUETOOTH_SCAN(Android 12+)BLUETOOTH_CONNECT(Android 12+)ACCESS_FINE_LOCATION(Android 6-11)
iOS:
NSBluetoothAlwaysUsageDescriptionNSBluetoothPeripheralUsageDescription
git clone https://github.com/your-username/evistal_1.git
cd evistal_1flutter pub getflutter pub run flutter_launcher_iconsflutter pub run flutter_native_splash:createflutter runNot: BLE özellikleri emülatörde çalışmaz, mutlaka fiziksel cihaz kullanın!
- Uygulamayı açın - Splash screen görünecektir
- "LET GET STARTED" butonuna tıklayın
- Ana ekrana yönlendirileceksiniz
- Ana ekranda Humidifier kartındaki toggle butonuna tıklayın
- Uygulama otomatik olarak "EVISTAL" cihazını arayacaktır
- Bağlantı başarılı olduğunda yeşil "ON" durumuna geçecektir
- "Scan BLE" butonuna tıklayın
- Alt kısımda açılan modalda EVISTAL cihazlarını göreceksiniz
- İstediğiniz cihazın yanındaki "Bağlan" butonuna tıklayın
- Bağlantı başarılı olursa otomatik olarak kontrol ekranına yönlendirileceksiniz
- Ana ekranda Humidifier kartına tıklayın
- Kontrol ekranında:
- Difüzör butonu: Nemlendirici modlarını değiştirir (Kapalı → Mod 1 → Mod 2)
- Renk butonu: LED renk modlarını değiştirir (Kapalı → Rainbow → RGB → Beyaz)
- Değişiklikler gerçek zamanlı olarak cihaza gönderilir
- Ana ekrana dönün
- Humidifier kartındaki toggle butonu "ON" konumundaysa tıklayın
- Onay dialogunda "Evet" seçeneğine tıklayın
lib/
├── main.dart # Uygulama giriş noktası ve routing
├── device_model.dart # Cihaz veri modeli ve enum'lar
├── controllers/
│ └── humidifier_controller.dart # Nemlendirici state management
├── screens/
│ ├── splash_screen.dart # İlk açılış ekranı
│ ├── home_screen.dart # Ana kontrol paneli
│ └── humidifier_screen.dart # Nemlendirici kontrol ekranı
└── services/
└── ble/
├── ble_service.dart # BLE iletişim servisi
└── ble_permissions.dart # İzin yönetimi
assets/
└── images/
├── background.png # Splash screen arka planı
├── appimage_1.png # Uygulama ikonu
└── appimg_android12.png # Android 12+ ikonu
Service UUID: 6e400001-b5a3-f393-e0a9-e50e24dcca9e
Write Char: 6e400002-b5a3-f393-e0a9-e50e24dcca9e (RX)
Notify Char: 6e400003-b5a3-f393-e0a9-e50e24dcca9e (TX)
| Komut | Parametre | Açıklama |
|---|---|---|
AT+RMOD=<mode> |
0-3 | Renk modu (0: Kapalı, 1: Rainbow, 2: RGB, 3: Beyaz) |
AT+DMOD=<mode> |
0-2 | Difüzör modu (0: Kapalı, 1: Mod 1, 2: Mod 2) |
Örnek Kullanım:
// Renk modunu Rainbow'a ayarla
await BleService.sendCommand('AT+RMOD=1');
// Difüzör modunu Mod 1'e ayarla
await BleService.sendCommand('AT+DMOD=1');Uygulama modern lacivert tonlarında gradient bir tasarıma sahiptir:
Birincil Renk (Primary): #1D4ED8 // Ana lacivert
Koyu Ton (Dark): #1E3A8A // Koyu lacivert
Arka Plan (Background): #0F172A // İçerik paneli
Panel Arka Plan: #F2F8FF // Açık mavi-beyaz
Vurgu Rengi (Accent): #13007F // Koyu mor-maviÇözüm:
- Bluetooth'un açık olduğundan emin olun
- Konum izinlerinin verildiğinden emin olun (Android)
- Cihazınızın BLE 4.0+ desteklediğinden emin olun
- EVISTAL cihazının açık ve eşleşme modunda olduğundan emin olun
Çözüm:
- Cihazı ve telefonu yeniden başlatın
- Bluetooth cache'ini temizleyin (Android Ayarlar → Uygulamalar → Bluetooth)
- Cihaz ile telefon arasındaki mesafeyi azaltın
Çözüm:
- Uygulama izinlerini kontrol edin (Ayarlar → Uygulamalar → EVISTAL)
- Android 12+ için "Nearby devices" iznini verin
- Konum servislerinin açık olduğundan emin olun
Katkılarınızı memnuniyetle karşılıyoruz! Katkıda bulunmak için:
- Bu depoyu fork edin
- Yeni bir branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add some amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Pull Request oluşturun
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
Proje Sahibi - @your-github-username
Proje Linki: https://github.com/your-username/evistal_1
- Flutter Blue Plus - Harika BLE implementasyonu için
- Awesome Dialog - Güzel dialog tasarımları için
- Flutter Community - Sürekli destek için
Built with ❤️ using Flutter