Back to All ProjectsTüm Projelere Dön
2023
FlutterDartFirebase Realtime DBNodeMCUC++IoT

Arduino & NodeMCU IoT Firebase Telemetry PlatformArduino & NodeMCU IoT Firebase Telemetri Platformu

Edge IoT architecture enabling real-time sensor telemetry visualization and bidirectional physical actuator control powered by Flutter and Firebase.Fiziksel sensör ve eyleyicilerin mobil ortamdan sıfır gecikmeyle izlenip çift yönlü kontrol edilmesini sağlayan Flutter ve Firebase tabanlı uç IoT mimarisi.

Arduino & NodeMCU IoT Firebase Telemetri Platformu mimari diyagramı

1. Problem Tanımı ve Kapsam

Gömülü cihazların (Arduino / NodeMCU) sahadan topladığı telemetri verilerinin mobil cihazlarda anlık görselleştirilmesi ve aynı anda mobil arayüzden röle, motor gibi fiziksel eyleyicilerin tetiklenmesi için çift yönlü, güvenli ve hafif bir IoT köprüsüne ihtiyaç duyuldu.

2. Sistem Mimarisi & Veri Akışı

  • Uç Düğüm Katmanı: NodeMCU (ESP8266) modülü sensör verilerini periyodik olarak okur ve SSL/TLS üzerinden Firebase Realtime Database’e JSON veri paketleri aktarır.
  • Bulut & Senkronizasyon: Firebase Realtime Database üzerinden WebSocket tabanlı anlık veri akışı dinlenir.
  • Kullanıcı Arayüzü Katmanı: Flutter ile geliştirilen çapraz platform mobil uygulama, stream listener’lar aracılığıyla donanım durumunu anlık olarak ekrana yansıtır.
// Flutter StreamBuilder ile Donanım Durumu Dinleme
import 'package:flutter/material.dart';
import 'package:firebase_database/firebase_database.dart';

class DeviceTelemetryMonitor extends StatelessWidget {
  final DatabaseReference _dbRef = FirebaseDatabase.instance.ref('devices/node1');

  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: _dbRef.onValue,
      builder: (context, AsyncSnapshot<DatabaseEvent> snapshot) {
        if (!snapshot.hasData || snapshot.data?.snapshot.value == null) {
          return const CircularProgressIndicator();
        }
        final data = Map<String, dynamic>.from(snapshot.data!.snapshot.value as Map);
        return TelemetryCard(
          temperature: data['temp'] ?? 0.0,
          status: data['relayState'] ? 'AKTİF' : 'BEKLEMEDE',
        );
      },
    );
  }
}

3. Güvenlik & Çoklu Cihaz Desteği

  • Firebase Authentication entegrasyonu ile yetkisiz cihaz erişimi engellenmiştir.
  • Çoklu NodeMCU desteği sayesinde tek bir mobil panel üzerinden fabrikadaki veya evdeki farklı odalardaki cihazlar bağımsız olarak yönetilebilir.

4. Sonuç

Sensör verilerinin mobil ekrana düşme gecikmesi ortalama 120 ms’ye düşürülmüş; stabil ve kesintisiz bir IoT kontrol istasyonu elde edilmiştir.