TROIDUINO

TROIDUINO

Mέτρηση ποιότητας υδάτων στην λιμνοθάλασσα Δρεπάνου, Ηγουμενίτσας, από μαθητές του 3ου Γυμνασίου Ηγουμενίτσας

Χρησιμοποιήθηκαν:

    1. Αισθητήρας θερμοκρασίας
    2. Αισθητήρας μέτρησης PH (αναλογικός)
    3. Αισθητήρας μέτρησης διαλυμένου οξυγόνου (dissolved oxygen)
    4. Αισθητήρας θολότητας (turbidity)
    5. Οθόνη LCD για εμφάνιση αποτελεσμάτων
    6. Ένας Arduino Uno R3 (κλώνος) με το σχετικό καλώδιο USB
    7. Πιεστικός διακόπτης (push button)
    8. Δύο αντιστάτες των 4,7kΩ και 10kΩ
    9. Διάφορα καλώδια σύνδεσης και ένα breadboard
    10. Πλαστική βάση στήριξης της διάταξης
    11. Power bank για την τροφοδοσία της διάταξης

 

Ο αισθητήρας Θερμοκρασίας

Χρησιμοποιήσαμε ένα αδιάβροχο αισθητήρα θερμοκρασίας τύπου Dallas DS18B20. Ο αισθητήρας συνδέθηκε στον Arduino, όπως φαίνεται στο επόμενο σχήμα:

Με τη βιβλιοθήκη OneWire υλοποιήσαμε στην ακίδα 7 του Arduino το δίαυλο επικοινωνίας OneWire στον οποίο συνδέθηκε ο αισθητήρας θερμοκρασίας. Για τη ρύθμιση του αισθητήρα και τη λήψη μετρήσεων χρειάστηκε ακόμη η βιβλιοθήκη DallasTemperature.

 

Ο αισθητήρας pH

Χρησιμοποιήσαμε τον αναλογικό αισθητήρα SEN0161 της DFRobot. Συνδέσαμε τον αισθητήρα στην αναλογική είσοδο Α0. Για τη ρύθμιση του αισθητήρα και τη λήψη των μετρήσεων χρησιμοποιήσαμε τη σχετική βιβλιοθήκη (DFRobot_PH) από την ιστοσελίδα του κατασκευαστή του αισθητήρα.

Gravity: Analog pH Sensor / Meter Kit For Arduino

 

Ο αισθητήρας Θολότητας (Turbidity)

Χρησιμοποιήσαμε τον αναλογικό αισθητήρα SEN0189 της DFRobot, τον οποίο συνδέσαμε στην αναλογική είσοδο Α1 του Arduino. Ο αισθητήρας δε χρειάζεται ρύθμιση, ενώ στην ιστοσελίδα του κατασκευαστή δίνεται η σχέση μετατροπής της μετρούμενης αναλογικής τάσης στις μονάδες θολότητας (NTU). Ο αισθητήρας αυτός αποδείχτηκε ο λιγότερο αξιόπιστος, αφενός γιατί η λειτουργία του επηρεάζεται έντονα από το διάχυτο φωτισμό, και αφετέρου λόγω του σφάλματος της τάξης του 6% στη μέτρηση της αναλογικής τάσης, που όμως οδηγεί σε πολύ μεγάλες αποκλίσεις σε μονάδες ΝΤU. Για το πρώτο πρόβλημα χρησιμοποιήσαμε ένα αδιαφανές ποτήρι για τη συλλογή και μέτρηση των δειγμάτων, το οποίο επιπλέον κλείναμε με αδιαφανές καπάκι. Για το δεύτερο πρόβλημα χρησιμοποιήσαμε την τεχνική λήψης πολλαπλών μετρήσεων και προσδιορισμού του μέσου όρου ως της τιμής που προσεγγίζει καλύτερα την πραγματική τιμή της θολότητας.

Gravity: Analog Turbidity Sensor For Arduino

 

Ο αισθητήρας διαλυμένου Οξυγόνου (dissolved Oxygen)

Χρησιμοποιήσαμε τον αναλογικό αισθητήρα SEN0237-A της DFRobot, τον οποίο συνδέσαμε στην αναλογική θύρα A2 του Arduino. Χρησιμοποιήσαμε τη ρύθμιση ενός σημείο για τον αισθητήρα, όπως περιγράφεται στην ιστοσελίδα του κατασκευαστή. Ουσιαστικά μετράμε την τάση που επιστρέφει ο αισθητήρας όταν είναι βυθισμένος σε κορεσμένο σε οξυγόνο διάλυμα (ή απλά στον “αέρα”), καθώς και την αντίστοιχη θερμοκρασία. Οι τιμές αυτές πρέπει να εισαχθούν στη σχέση μετατροπής της αναλογικής τάσης του αισθητήρα στις μονάδες (mg/L)  μέτρησης του διαλυμένου οξυγόνου. Για τη σωστή λειτουργία του ο αισθητήρας πρέπει να είναι βυθισμένος δε διάλυμα NaOH 0,5Μ, το οποίο και κατασκευάσαμε με ιδιαίτερη προσοχή καθώς είναι καυστικό.

Gravity: Analog Dissolved Oxygen Sensor / Meter Kit For Arduino

 

Η οθόνη υγρών κρυστάλλων

Για την απεικόνιση των μετρήσεων χρησιμοποιήσαμε μια οθόνη υγρών κρυστάλλων 16 χαρακτήρων και 2 γραμμών. Η επικοινωνία της οθόνης με τον Arduino γίνεται μέσω του διαύλου Ι2C, δηλαδή εκτός των δύο γραμμών τροφοδοσίας, απαιτούνται μόνο άλλες δύο γραμμές (SDA και SCL) για την επικοινωνία με τον Arduino. Χρησιμοποιήθηκε και η σχετική βιβλιοθήκη (LiquidCrystal_I2C).

AdraXx LCD1602-1602-16x2-LCD-Display-with-IIC-I2C-Serial-Interface-Adapter-Module for Arduino: Amazon.in: Industrial & Scientific

Έλεγχος ροής προγράμματος στον Aruino

Για τον έλεγχο της ροής του προγράμματος στον Arduino χρησιμοποιήσαμε ένα διακόπτη push button, συνδεδεμένο με τη βοήθεια της αντίστασης των 10kΩ στην ψηφιακή ακίδα 8 του Arduino.

Με το διακόπτη ανοιχτό η ακίδα 8 γειώνεται μέσω της αντίστασης (λογική στάθμη LOW), ενώ με το διακόπτη κλειστό η ακίδα συνδέεται στην τάση τροφοδοσίας (λογική στάθμη HIGH).

 

Τροφοδοσία

Θέλοντας η διάταξη να είναι αυτόνομη χρησιμοποιήσαμε για την τροφοδοσία της ένα power bank των 5000mAh, ικανό για πολύωρη λειτουργία της διάταξης.

 

Συνδέσεις

 

Αρχικές Ρυθμίσεις

Ο αισθητήρας θερμοκρασίας είναι προρυθμισμένος από τον κατασκευαστή και δεν απαιτείται καμιά ενέργεια εκ μέρους μας για τη σωστή λειτουργία του.

Για τη ρύθμιση του αισθητήρα pH θα χρειαστούμε τα ρυθμιστικά διαλύματα με pH 7 και 4.1 που συνοδεύουν τον αισθητήρα. Αφού συναρμολογήσουμε τη διάταξη ανεβάζουμε στον Arduino το sketch Calibration.ino και:

  • Στη σειριακή κονσόλα εισάγουμε την εντολή ENTERPH για να μπούμε σε λειτουργία ρύθμισης του αισθητήρα.
  • Μετά εισάγουμε την εντολή CALPH για να αρχίσει η ρύθμιση και ακολουθούμε τις οδηγίες που μας δίνονται στη σειριακή κονσόλα.
  • Μόλις τελειώσει η διαδικασία δίνουμε την εντολή EXITPH για να αποθηκευτούν οι παράμετροι ρύθμισης στη μνήμη EPROM του Arduino.

Για τη ρύθμιση του αισθητήρα θολότητας ανεβάζουμε στον Arduino το sketch ProjQW-Turbidity-cal.ino, τοποθετούμε τον αισθητήρα σε απιονισμένο νερό και σημειώνουμε την τιμή που επιστρέφει το sketch. Είναι καλύτερο να πάρουμε πολλαπλές (π.χ. 10) τιμές και να βρούμε το μέσο όρο τους. Την τιμή αυτή δίνουμε στην παράμετρο TRBOFFS στο κύριο sketch ProjQWater.ino.

Για τη ρύθμιση του αισθητήρα διαλυμένου Οξυγόνου εργαζόμαστε ως εξής:

Στο πλαστικό καπάκι του αισθητήρα εισάγουμε ποσότητα διαλύματος NaOH 0,5 M (μέχρι τα 2/3 του ύψους του) και κλείνουμε τον αισθητήρα σκουπίζοντας και την πιθανή υπερχείλιση.

Ανεβάζουμε στον Arduino  το sketch ProjQW-DissO2-cal.ino, βυθίζουμε τον αισθητήρα σε καθαρό νερό, τον αποσύρουμε και απομακρύνουμε την όποια περίσσεια νερού από πάνω του και καταγράφουμε την τιμή της θερμοκρασίας και της τάσης σε mV που επιστρέφει το sketch στη σειριακή κονσόλα. Τις τιμές αυτές εισάγουμε στις παραμέτρους CAL1_T και CAL1_V στο κύριο sketch ProjQWater.ino.

Μετά από αυτές τις ρυθμίσεις ανεβάζουμε στον Arduino το κύριο sketch ProjQWater.ino και είναστε έτοιμοι για τις πρώτες μετρήσεις.

Το λογισμικό του Arduino είναι διαθέσιμο στη σελίδα του project στο Github.

 

Οι μετρήσεις

Κάναμε τις πρώτες μετρήσεις στο πεδίο το Σάββατο 10/10/2020.

Για να έχουμε μέτρο σύγκρισης μετρήσαμε πρώτα νερό βρύσης, μετά νερό από τη θάλασσα (σημείο 1) και μετά σε άλλα 6 σημεία της λιμνοθάλασσας. Ιδιαίτερο ενδιαφέρον έχουν τα σημεία 5 και 6, καθώς το πρώτο είναι ακριβώς δίπλα στο ιχθυοτροφείο της λιμνοθάλασσας, ενώ το δεύτερο είναι στο σημείο εισόδου του θαλασσινού νερού στη λιμνοθάλασσα. Οι πρώτες μετρήσεις ανέδειξαν το σημαντικό πρόβλημα με τον αισθητήρα θολότητας και το διάχυτο φωτισμό, αφού πρακτικά δε μπορέσαμε να πάρουμε μετρήσεις θολότητας. Έτσι επιστρέψαμε την επόμενη ημέρα έχοντας τροποποιήσει το ποτήρι συλλογής δείγματος, ώστε να είναι πλήρως αδιαφανές. Βέβαια λόγω και άλλων προβλημάτων του συγκεκριμένου αισθητήρα οι τιμές θολότητας μόνο συγκριτικά με μετρήσεις σε καθαρό νερό έχουν αξία.

Ενδεικτικές μετρήσεις

Σημείο  1 Σημείο 2 Σημείο 3 Σημείο 4 Σημείο  5 Σημείο  6 Νερό Βρύσης
Θερμοκρασία (°C) 24,9 24,3 23,7 25 24,5 23,7 22,9
pH 7,8 7,7 7,8 7,8 7,6 7,8 7,7
Θολότητα (ΝΤU) 379,2 510,3 503,9 469,8 443,5 332,5 378,5
Δ/νο Οξυγόνο (mg/L) 17,1 17,7 17,5 17 17,7 17,5 18,6

Πρόκειται να ακολουθήσουν και άλλες μετρήσεις, για να είμαστε σε θέση να διατυπώσουμε κάποια ασφαλή συμπεράσματα. Επιπλέον σκοπός είναι και η καλύτερη ρύθμιση του αισθητήρα διαλυμένου Οξυγόνου, πιθανώς με μια διαδικασία ρύθμισης δύο σημείων, ενώ η αντικατάσταση του αισθητήρα θολότητας με άλλον πιο αξιόπιστο κρίνεται αναγκαία.

 

Φωτογραφίες δραστηριοτήτων:

TROIDUINO1

Video δραστηριότητας 1

Video δραστηριότητας 2

Video δραστηριότητας 3

Συμμετείχαν οι μαθητές/τριες (αλφαβητική σειρά):

  1. Μητσιώνης Θεόδωρος
  2. Μητσιώνης Κάρολος
  3. Νικολάου Αλκίνοος
  4. Νικολάου Μαριαλένα
  5. Νταφλάκη Σταματία

θα πρέπει να σημειωθεί ότι το πρόγραμμα ξεκίνησε τον Οκτώβριο του 2019 αλλά λόγω πανδημίας διακόπηκε για μεγάλο χρονικό διάστημα. Η αρχική ομάδα των μαθητών περιλάμβανε και τους παρακάτω, οι οποίοι σήμερα βρίσκονται στο γενικό Λύκειο (αλφαβητική σειρά):

  1. Αλεξίου Άλκιστις
  2. Ζουριδάκη Ξανθή
  3. Κολιούσης Παναγιώτης
  4. Σακαρέλη Μαρία