TrackCase è una soluzione hardware e software integrata progettata per scansionare, tracciare e monitorare un dispositivo Iqos utilizzando il Bluetooth Low Energy (BLE) e un'applicazione companion per smartphone.
Questo repository è organizzato come un monorepo che contiene sia il firmware per il dispositivo di tracciamento sia l'applicazione mobile per l'utente.
/firmware: Progetto C++ per PlatformIO destinato al dispositivo ESP32 (SuperMini ESP32-C3). Utilizza la libreriaNimBLEper la comunicazione Bluetooth a doppio ruolo: agisce come dispositivo centrale (central) per scansionare l'Iqos e come server periferico (peripheral) per connettersi all'app sullo smartphone./app: Applicazione mobile sviluppata in Flutter che si connette al dispositivo di tracciamento ESP32, fornendo un'interfaccia utente intuitiva per visualizzare lo stato del tracciamento, gestire il dispositivo e ricevere avvisi./docs: Documentazione, diagrammi dell'architettura e immagini.
- ESP32-C3 SuperMini (o scheda ESP32 compatibile)
- Un cavo micro-USB o USB-C per il flashing del firmware
- PlatformIO IDE (estensione per VSCode)
- Flutter SDK (v3.0+)
- Android Studio o Xcode (per lo sviluppo e l'emulazione mobile)
- Apri la cartella
firmware/in VSCode con l'estensione PlatformIO installata. - Collega il tuo ESP32-C3 tramite USB.
- Attendi che PlatformIO risolva le dipendenze (come
NimBLE-Arduino). - Compila e carica il progetto sulla tua scheda utilizzando la barra laterale di PlatformIO oppure eseguendo il comando
pio run -t upload.
- Apri la cartella
app/nel tuo IDE preferito (VSCode o Android Studio). - Scarica le dipendenze di Flutter eseguendo:
flutter pub get
- Collega un dispositivo fisico iOS/Android oppure avvia un emulatore.
- Avvia l'app:
flutter run
- BLE a Doppio Ruolo (Double Duty BLE): L'ESP32 funge contemporaneamente da scanner BLE (per trovare l'Iqos) e da server BLE (per comunicare con il telefono).
- App Multipiattaforma: Applicazione Flutter reattiva e dal design accattivante, compatibile sia con iOS che con Android.
- Basso Consumo Energetico: Gestione della memoria e intervalli di scansione ottimizzati sull'ESP32 per preservare la batteria.
Contributi, segnalazioni di problemi (issues) e richieste di nuove funzionalità sono i benvenuti! Sentiti libero di consultare la pagina delle issues.
Questo progetto è distribuito sotto la Licenza MIT - consulta il file LICENSE per i dettagli.




