MyGram3 is a cross-platform mobile application (built with Flutter) that acts as the user interface for an ipotetic mesh network.
This application connects to an Arduino Nano ESP32 via Bluetooth Low Energy (BLE) to send and receive messages across a wider IoT network.
🔗 Companion Firmware: https://github.com/andrexlenx/Esercitazione-messaggistica-zigbee
The app serves as the "Client" in the following communication chain:
[Smartphone App] <--(BLE)--> [Nano ESP32 Node] <--(Zigbee)--> [Other Nodes]
- Android
- iOS
- macOS
- Linux
- web
- BLE Scanning: integrated BLE scanner.
- Connection Management: pairing and connection status monitoring.
- Real-time Messaging: Send text payloads to the connected node for Zigbee routing.
- Live Feed: Display incoming messages received from the mesh network.
- Flutter SDK: https://docs.flutter.dev/get-started/install
- Physical Device: An Android or iOS device.
- Note: Android Emulators / iOS Simulators generally do not support Bluetooth. You must deploy to a real phone.
- Hardware: An Arduino Nano ESP32 flashed with the companion firmware.
git clone https://github.com/YOUR_USERNAME/ble-messaging-client.git
cd ble-messaging-clienton the root of the project (ble-messaging-client) run:
flutter pub getTo generate installable files, run the following commands:
- Android (APK)
flutter build apkOutput: ./build/app/outputs/flutter-apk/app-release.apk
- iOS (IPA)
Note: Requires Xcode for building an IOS/Mac app.
flutter build ipaOutput: ./build/ios/ipa
- macOS
flutter build macosOutput: ./build/macos/Build/Products/Release/mygram3.app
- Linux
flutter build linuxOutput: ./build/linux/x64/release/bundle/
- Web
Note: Browser support for Bluetooth is limited.
flutter build webOutput: ./build/web/
To scan for BLE devices, this app requires specific location and bluetooth permissions.
- Android: Grant "Location" (Fine Location) and "Nearby Devices" permissions when prompted.
- iOS: Grant "Bluetooth" access when prompted.
Note: In its current state, this application does not implement any form of authentication or data encryption. All messages are transmitted in cleartext.
This project is intended solely for educational environments and should not be used for sensitive communications.
MIT License / Academic Use