EN - A Flutter + ESP32 project that lets you send Morse-coded messages wirelessly using BLE. The ESP32 detects Morse button presses, converts them into letters/words, and sends the decoded text to the Flutter app using Bluetooth Low Energy (BLE) notifications. You can watch the demo video here: Example.mp4
TR - BLE üzerinden kablosuz olarak Mors kodu mesajları göndermenizi sağlayan bir Flutter + ESP32 projesi. ESP32, Mors kodu için yapılan buton basışlarını algılar, bunları harf ve kelimelere dönüştürür ve çözümlenen metni Bluetooth Low Energy (BLE) bildirimleri aracılığıyla Flutter uygulamasına gönderir. Demo videoyu buradan izleyebilirsiniz: Example.mp4
You can select your preferred languages below:
- Real-time BLE scanning (Flutter Blue Plus)
- Secure BLE pairing (bonding) on ESP32
- Morse input via physical buttons
- Automatic dot/dash detection
- Automatic letter & word parsing
- Message sending through BLE Notify
- Live message stream on Flutter app
- Clean UI with device list, connection screen & live console output
- ESP32
- 2x buttons
- Morse button → GPIO 35
- Send button → GPIO 12
- USB cable
- (Optional) Resistors for stable input
- Flutter-supported device (Android recommended)
The ESP32 measures the press duration:
< 300 ms→.dot>= 300 ms→-dash
Letter / word detection:
- Letter gap: 1 second
- Word gap: 5 seconds
Sends the entire message when the Send button is pressed.
ESP32 Side
- Wire cables like
Cable Notations.jpg - Open Arduino IDE
- Install ESP32 board support
- Install libraries:
BLEDeviceBLEUtilsBLEServer
- Upload the provided
Esp32_mors.inofile to the ESP32 - Open Serial Monitor to view Morse decoding
Flutter Side
- Clone the repo
- Run:
flutter pub get
flutter run
NOTE: Make sure Bluetooth + Location permissions are enabled
This project is licensed under the MIT License - see the LICENSE file for details.
If you need any help contact me on LinkedIn.
- Gerçek zamanlı BLE tarama (Flutter Blue Plus)
- ESP32 üzerinde güvenli BLE eşleştirme (bonding)
- Fiziksel butonlar üzerinden Mors girişi
- Otomatik nokta/çizgi (dot/dash) algılama
- Otomatik harf ve kelime ayrıştırma
- BLE Notify üzerinden mesaj gönderme
- Flutter uygulamasında canlı mesaj akışı
- Cihaz listesi, bağlantı ekranı ve canlı konsol çıktısı ile temiz bir arayüz
- ESP32
- 2x buton
- Morse butonu → GPIO 35
- Gönderme butonu → GPIO 12
- USB kablo
- (Opsiyonel) Stabil girdi için direnç
- Flutter destekleyen cihaz (Android önerilir)
ESP32 basma süresini ölçer:
< 300 ms→.nokta>= 300 ms→-tire
Harf / Kelime tespiti:
- Harf aralığı: 1 saniye
- Kelime aralığı: 5 saniye
Gönderme butonuna basıldığında tüm mesaj gönderilir.
ESP32 Tarafı
- Kabloları
Cable Notations.jpg'da olduğu gibi bağla - Arduino IDE'yi aç
- ESP32 pano desteğini indir
- Kütüphaneleri yükle:
BLEDeviceBLEUtilsBLEServer
Esp32_mors.inodosyasındaki kodu ESP32'ye yükle- Morse decoding'i görüntülemek için Seri Monitörü aç.
Flutter Tarafı
- Repoyu klonla
- Çalıştır:
flutter pub get
flutter run
NOTE: Bluetooth + Konum izni'nin verildiğinden ve açık olduğundan emin ol
Bu proje MIT Lisans altında lisanslanmıştır - detaylar için LICENSE dosyasını incele.
Eğer bir yardıma ihtiyacın varsa bana LinkedIn üzerinden ulaş.


