/IoT-Live-streaming

Information Systems, Analysis and Design Class Projects (2022-23, Fall Semester)

Primary LanguageJava

SmartHome System

This project was part of the Analysis and Design of Information Systems course at NTUA. (2022-23, Fall Semester)

An IoT live streaming system for smart homes, leveraging artificial data inspired by real-world scenarios. The system stores data in the OpenTSDB - a time series database- while performing aggregations. Users can monitor the system using an open-source visualization platform, which presents data through various informative graphs.

IoT-Live-streaming ~ TEAM 10


Name Εmail AM
Papanikolaou Ioannis el18064@mail.ntua.gr 031 18 064
Andreas Chrysovalantis-Konstantinos el18102@mail.ntua.gr 031 18 102
Maniatis Andreas el18070@mail.ntua.gr 031 18 070



Οδηγίες εγκατάστασης εφαρμογής

  1. Εγκατέστησε το Docker Desktop
  2. Για να καταβάσεις όλα τα containers, τρέξε το αρχείο ./downloadAllDocker.sh σε ένα terminal. Βεβαιώσου από το Docker Destrop έχουν κατέβει όλα τα απαραίτητα containers. Σε περίπτωση προβλήματος ακολούθησε τους παρακάτω συνδέσμους για εγκατάσταση: RabbitMQ, Apache Flink, OpenTSDB, Grafana

Στο OpenTSDB container, Θα πρέπει να πειράξουμε μία παράμετρο (configuration) εσωτερικά, απαραίτητη για την αποθήκευση των δεδομένων μετέπειτα. Για αυτό το σκοπό, ανοίγουμε ένα terminal για το συγκεκριμένο container, και βρίσκουμε το αρχείο opentsdb.conf. To αρχείο βρίσκεται εσωτερικά του φακέλου /usr/local/share/opentsdb/etc/opentsdb. Ανοίγουμε το αρχείο (vi opentsdb.conf) και προσθέτουμε στο τέλος το εξής: tsd.storage.fix_duplicates = true. Τέλος κλείνουμε και αποθηκεύουμε το αρχείο (:wq) και επανεκκινούμε το container ώστε να ενημερωθεί το configuration. Με την ‘ενεργοποίηση’ αυτού του flag, επιλύονται πιθανά προβλήματα εγγραφής διπλότυπων τιμών, μιας και έτσι θα διατηρείται το πιο πρόσφατο σημείο δεδομένων.

  1. Εγκατέστησε την Java 11 - προσοχή με τα path.

  2. Εγκατέστησε την Python.

  3. Εγκατέστησε την Maven Apach - 3.8.6 - Αν χρειαστεί άλλαξε στις οδηγίες σε .3.8.6


  1. Κατέβασε τοπικά το repository: git clone https://github.com/john-papani/IoT-Live-streaming.git
  2. Έπειτα cd IoT-Live-streaming.
  3. Τρέξε το αρχείο ./installMvnFlink.sh




Οδηγίες λειτουργίας εφαρμογής

Σε δύο terminal τρέχουμε ταυτόχρονα το java αρχείο all_aggregation.java και το python αρχείο send.py.
Έπειτα, τα δεδομένουν έχουν επεξεργαστεί και αποθηκευτεί στην βάση δεδομένων. Άρα είμαστε σε θέση μέσω του Grafana να παρατηρήσουμε τα διαγραμμάτα και τους πίνακες.




Οδηγίες Εκκαθάρισης Βάσης Δεδομένων

Σε περίπτωση που επιθυμούμε να διαγράψουμε ολα τα δεδομένα από την βάση δεδομένων, ανοίγουμε το terminal εσωτερικά του docker, στο opentsdb container και τρέχουμε τις παρακάτω εντολές. Για περισσότερες οδηγίες πατήστε ΕΔΩ.

Προσοχή: Οι παρακάτω εντολές οδηγούν στην οριστική διαγραφή των δεδομένων.

tsdb scan 2022/01/01 --delete  none th1
tsdb scan 2022/01/01 --delete  none th2
tsdb scan 2022/01/01 --delete  none hvac1
tsdb scan 2022/01/01 --delete  none hvac2
tsdb scan 2022/01/01 --delete  none miac1
tsdb scan 2022/01/01 --delete  none miac2
tsdb scan 2022/01/01 --delete  none etot
tsdb scan 2022/01/01 --delete  none mov1
tsdb scan 2022/01/01 --delete  none wtot
tsdb scan 2022/01/01 --delete  none w1

tsdb scan 2022/01/01 --delete  none avgTh1
tsdb scan 2022/01/01 --delete  none avgTh2
tsdb scan 2022/01/01 --delete  none sumHvac1
tsdb scan 2022/01/01 --delete  none sumHvac2
tsdb scan 2022/01/01 --delete  none sumMiac1
tsdb scan 2022/01/01 --delete  none sumMiac2
tsdb scan 2022/01/01 --delete  none maxEtot
tsdb scan 2022/01/01 --delete  none sumMov1
tsdb scan 2022/01/01 --delete  none sumW1

tsdb scan 2022/01/01 --delete  none diffMaxEtot
tsdb scan 2022/01/01 --delete  none diffMaxWtot
tsdb scan 2022/01/01 --delete  none aggDiffWto_DayW1
tsdb scan 2022/01/01 --delete  none aggDayEtot_Hvac_Miac

tsdb scan 2022/01/01 --delete  none twoDaysLateStreamW1
tsdb scan 2022/01/01 --delete  none tenDaysLateStreamW1