Sensör Yığını & Telemetri Mimarisi
Pilot saha donanımı; Raspberry Pi 4 (gateway + Node-RED) ile Arduino Mega 2560 (gerçek-zamanlı sensör/röle) ikilisi üzerinde sürülür. Her sensör için bus, adres ve kalibrasyon pratiği aşağıda kilitlenir; toplam saha tüketimi ≤ 12 W ortalama hedefiyle INA226 üzerinden anlık doğrulanır.
MQTT Konu Mimarisi
Telemetri TLS üzerinden Mosquitto broker’a yayınlanır; her saha kendi alt-namespace’ine yazar. Grafana Cloud salt-okunur abone, Node-RED edge cache QoS 1 retry zinciri ile ofline kaybı engeller.
aquamof-mqtt-topics.txtMQTT · Topic Tree
# Telemetri (publish)
aquamof/<saha-id>/sensor/sht40/temperature # °C (1/dk)
aquamof/<saha-id>/sensor/sht40/humidity # %RH (1/dk)
aquamof/<saha-id>/sensor/bmp388/pressure # hPa (1/dk)
aquamof/<saha-id>/sensor/ds18b20/<probe> # °C (1/dk)
aquamof/<saha-id>/sensor/ina226/panel # V/A/W (1/sn → 1/dk agg)
aquamof/<saha-id>/sensor/ina226/battery # V/A/W
aquamof/<saha-id>/sensor/hx711/tank-mass # kg (1/dk)
aquamof/<saha-id>/sensor/tds # ppm (1/dk)
aquamof/<saha-id>/sensor/ph # pH (1/dk)
# Komut & durum (subscribe)
aquamof/<saha-id>/control/relay/<n>/cmd # ON|OFF|TOGGLE
aquamof/<saha-id>/control/relay/<n>/state # current state (retained)
aquamof/<saha-id>/control/regen/cycle # rejenerasyon zamanlaması
aquamof/<saha-id>/control/uvc # UV-C lambası
# Sistem
aquamof/<saha-id>/system/heartbeat # 60 s ping (retained)
aquamof/<saha-id>/system/firmware/version # semver, on boot
aquamof/<saha-id>/system/alert/<level> # info | warn | crit
Firmware Akışı (RPi 4 + Mega 2560)
Mega gerçek-zamanlı sensör okuma ve röle sürmesinden sorumludur; Pi yalnızca tampon, MQTT publish ve Node-RED orkestrasyonu yapar. Bu bölünme; Pi yeniden başlatılsa bile rejenerasyon ve UV-C zamanlamasının kesilmemesini garanti eder.
- Boot. Mega; I²C/1-Wire bus’ları tarar, INA226 şönt sıfırlar, watchdog 8 s. Pi; serial bridge’i kurar, MQTT TLS handshake, son retained state’leri okur.
- Sense. 60 sn pencerede tüm sensörler sırayla okunur (≈ 1.4 sn toplam aktif süre). HX711 ortalaması 5 örnek; INA226 saniyelik.
- Filter. ±3σ outlier reddi; SHT40 / BMP388 çapraz doğrulama; HX711 tara (sıfır) drift düzeltmesi günlük yenilenir.
- Persist. Pi tarafında SQLite halka tampon (30 gün, ≈ 50 MB), saatlik agregasyon Parquet’e dökülür; mikro-SD kart aşınmasını izler.
- Publish. MQTT QoS 1; SIM7600E LTE üzerinden Mosquitto’ya; bağlantı yoksa retry/backoff (60 s → 30 dk) ve yerel kuyruk korunur.
- Sleep. Düşük-trafikte Pi CPU governor
powersave; Mega aktif kalır; sistem tüketimi pik dışı 4 W'a iner.
Piyasa IoT & Su İzleme Platformlarıyla Karşılaştırma
AquaMOF telemetri yığını, açık-kaynak ve self-host yaklaşımıyla mevcut piyasa çözümlerinden ayrışır. Aşağıdaki dört platform (Libelium, Atlas, In-Situ, METER) referans alınmıştır; AquaMOF, donanım esnekliğini Atlas’tan, saha disiplinini ZL6’dan, akademik doğrulamayı TROLL 500’den miras alır.