EcoView: Οικολογικό Παράθυρο

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

    Αρχικά η ομάδα είχε σαν στόχο την κατασκευή ενός πολύπλοκου συστήματος μηχανικού ηλιακού πάνελ σχεδιασμένου για οροφές κτηρίων που αποσκοπούσε στην εκμετάλλευση της ηλιακής ακτινοβολίας στην επιφάνεια της οροφής και αποθήκευση της ενέργειας αυτής σε δεξαμενές νερού.

    Το κόστος και η πολυπλοκότητα κατασκευής ήταν πολύ μεγάλα και θα περιοριζόμασταν στην κατασκευή μιας μακέτας οπότε θεωρήσαμε πως είναι προτιμότερο να εκμεταλλευτούμε τις όψεις των κτηρίων δημιουργώντας ένα φυσικό παράθυρο σε κανονική κλίμακα που να θερμαίνει τον αέρα του σπιτιού. Η κανονική κλίμακα του παραθύρου βοηθά στην κατανόηση του συνολικού φαινομένου αλλά και στη χρήση πραγματικών υλικών. Φεύγοντας από την ιδέα της απλής μακέτας τα παιδιά της ομάδας μπόρεσαν να δουν το έργο να εξελίσσεται και να αναπτύσσεται στον φυσικό χώρο οπότε δεν παρέμεινε ως μια νοερή ιδέα αλλά ως μια κανονική κατασκευή που λειτουργεί.

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

    Συνήθως, υπολογίζουμε την ηλιακή ενέργεια που φθάνει στην επιφάνεια της Γης ως “ηλιακή σταθερά”, η οποία είναι περίπου 1361 watt ανά τετραγωνικό μέτρο. Ωστόσο, η ποσότητα της ηλιακής ενέργειας που απορροφά ένα μαύρο αλουμινένιο τετράγωνο εξαρτάται από το πόση από αυτήν την ενέργεια μετατρέπεται σε θερμότητα και πόση απορροφάται από την επιφάνεια.

    Επομένως η ενέργεια που θα απορροφά το ηλιακό παράθυρο εξαρτάται τόσο από την κλίση του αλλά κυρίως από το εμβαδόν του. Αν λάβουμε ποσοστιαία λόγω της κάθετης κλίσης του παραθύρου και λοιπών απωλειών το 75% της προαναφερθείσας ενέργειας έχουμε περίπου 1020W θερμικής απορρόφησης. Άρα 1KWh ανά τετραγωνικό μέτρο.

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

Κατασκευή

    Για την καθαυτή κατασκευή του ενεργειακού παραθύρου χρειάστηκαν δοκοί αλουμινίου οι οποίοι βιδώθηκαν με γωνίες αλουμινίου και βίδες αφού προηγουμένως είχαν σχεδιαστεί ως προσχέδιο στο Tinkercad. Προτιμήσαμε να περιοριστούμε στην κατασκευή του project με γωνίες τόσο για την ασφάλεια στο εργαστήριο όσο και την λογική του να ακολουθήσουμε το αρχικό μοντέλο που είχαμε σχεδιάσει στο Tinkerkad.
    Χρησιμοποιήσαμε δοκούς αλουμινίου καθώς η χώρα μας είναι πλούσια σε βωξίτη. Ως θερμομονωτή χρησιμοποιήσαμε τον αέρα ως την καλύτερη επιλογή που προσφέρει η ίδια η φύση.

    To project αποτελείται από ένα ατσάλινο ρολό που είναι προσαρμοσμένο με ρουλεμάν στην πίσω όψη του παραθύρου και που τυλίγει και ξετυλίγει αλουμίνιο βαμμένο σε μαύρο ματ χρώμα για να μπορεί να απορροφά όσο το δυνατόν περισσότερη ηλιακή ακτινοβολία. Το αλουμίνιο αυτό λόγω της ειδικής του ανθεκτικής βαφής το βρήκαμε έτοιμο στο εμπόριο με την ονομασία BlackWrap.

     Το ατσάλινο ρολό συνδέεται με το βηματικό μοτέρ μέσω αλυσίδας ποδηλάτου της οποίας παραμετροποιήσαμε το μήκος για την κατασκευή. Χρησιμοποιήσαμε αλυσίδα ποδηλάτου καθώς αρχικά είχαμε θεωρήσει πως θα γίνεται η μετάδοση της κίνησης μέσω δυο ιμάντων αλλά η υψηλή θερμοκρασία που θα επικρατούσε στο πάνω μέρος της κατασκευής θα ξέραινε και θα κατάστρεφε τους ιμάντες σε σύντομο χρονικό διάστημα οπότε και καταφύγαμε στην παραπάνω ορθότερη λύση.
    Το παράθυρο περιέχει δυο hall sensors που ανιχνεύουν την θέση του ρολού μέσω μαγνήτη που είναι προσαρμοσμένος στο κάτω μέρος του. Όταν ξεκινήσει το ρολό να κατεβαίνει παράλληλα ενεργοποιείται και ο ανεμιστήρας. Αρχικά είχαμε θέσει την ενεργοποίηση του ανεμιστήρα μόνο αν το ρολό βρίσκεται στην κατώτερη θέση δηλαδή αν έχει ενεργοποιήσει τον κάτω Hall sensor με τον μαγνήτη του αλλά σε δεύτερη εκδοχή παραμετροποιήσαμε τον κώδικα ώστε να ενεργοποιείται και σε όλες τις υπόλοιπες θέσεις καθώς κρίναμε πως κάποιος μπορεί να μην το έχει ολοκληρωτικά κατεβασμένο αλλά σε ενδιάμεση θέση ώστε να λαμβάνει στον χώρο του φως από το εξωτερικό περιβάλλον

    Για την ασφάλεια των παιδιών δεν χρησιμοποιήσαμε τζάμια αλλά πολυκαρβονικό υλικό τριών χιλιοστών το οποίο είναι ανακυκλώσιμο, άθραυστο και ιδιαιτέρως ανθεκτικό στις καιρικές συνθήκες και την υψηλή θερμοκρασία.
    Το παράθυρο έχει διπλό πολυκαρβονικό στην μπροστινή του όψη με κενό 5 χιλιοστών για να μπορεί να διατηρεί την θερμομόνωσή του ενώ παράλληλα να μπορεί ν’ απορροφά την ηλιακή ακτινοβολία. Στην πίσω όψη του έχει μονό πολυκαρβονικό 3 χιλιοστών. Τα συγκεκριμένα πολυκαρβονικά τζάμια αφαιρούν μεγάλο μέρος της υπεριώδους ακτινοβολίας που αποτελεί ζημιογόνο παράγοντα για την ανθρώπινη υγεία.

Ηλεκτρονικά

Ηλεκτρονικά Εξαρτήματα

Λίστα των ηλεκτρονικών που χρησιμοποιήσαμε στο Project:
1 Χ Arduino UNO
2 X Hall Sensors
1 X Φωτοαντίσταση
1 Χ Βηματικό μοτέρ
1 Χ Οδηγό για το βηματικό μοτέρ
2 Χ Γραμμικούς ρυθμιστές τάσης 7805
16 Χ Ωμικές αντιστάσεις
1 Χ Οθόνη LCD 1.44’’ σε συνδεσμολογία SPI
1 X Ανεμιστήρα 12VDC
1 Χ Δίοδο
1 Χ Αισθητήρα θερμοκρασίας
2 Χ Κουμπιά push
1 Χ Διακόπτης δυο θέσεων
4 X LED 5mm μπλε χρώματος

Συνδεσμολογία

    Για τον αυτοματισμό του παραθύρου χρησιμοποιήσαμε το Arduino UNO που είναι ιδιαιτέρως οικονομικός και μπορούσε να ικανοποιήσει όσες δυνατότητες θέλαμε να προσθέσουμε.

Για τον έλεγχο του παραθύρου κατασκευάσαμε ένα κουτί από plexiglass το οποίο περιέχει τον μικροελεγκτή με πρόσβαση στη θύρα usb για εύκολο επαναπρογραμματισμό στην περίπτωση που θέλουμε διαφορετική συμπεριφορά αυτοματισμού ή αλλαγή των παραμέτρων.

Στο κουτί επίσης περιέχεται ο διακόπτης επιλογής λειτουργίας (αυτόματη ή χειροκίνητη), δύο κουμπιά για μάζεμα ή ξετύλιγμα του ρολού όταν βρίσκεται στη χειροκίνητη λειτουργία, ο αισθητήρας DHT για τη μέτρηση θερμοκρασίας και υγρασίας του εσωτερικού χώρου και οθόνη LCD για την ανάδειξη σχετικών πληροφοριών. Στο κουτί επίσης βρίσκεται και το τροφοδοτικό 24V που τροφοδοτεί την κατασκευή μας.

 

 

    Μέσα στο παράθυρο βρίσκεται ο οδηγός TB6560 του βηματικού μοτέρ ο οποίος ελέγχεται από το Arduino UNO, ορίζοντας του το βήμα μετακίνησης του ρολού όσο και την κατεύθυνσή του (Κίνηση προς τα πάνω – κίνηση προς τα κάτω).

    Μέσα στο παράθυρο βρίσκονται σε κατάλληλα σημεία τοποθετημένοι και οι αισθητήρες hall, οι οποίοι ενεργοποιούνται τη στγμή που ο μαγνήτης, που βρίσκεται τοποθετημένος στο άκρο του ρολού, φτάσει σε επαρκή απόσταση από αυτούς. Με αυτόν τον τρόπο γνωρίζουμε πότε το άκρο του ρολού βρίσκεται στα δύο άκρα που έχουμε ορίσει, δηλαδή όταν είναι ανοιχτό ή κλειστό.

    Στο μπροστινό μέρος του παραθύρου βρίσκεται και το φωτορεσίστορ του οποίου η τιμή αλλάζει με βάση την ένταση του φωτός του ηλίου, η οποία είναι χρήσιμη στην περίπτωση αυτόματης λειτουργίας. Παρακάτω παρουσιάζεται η συνδεσμολογία των επιμέρους στοιχείων όπως και το συνολικό διάγραμμα.

Διαγράμματα

Κώδικας

#include <AccelStepper.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include "DHT.h"

#define DHTPIN 7     // Ψηφιακό pin στο οποίο συνδέεται ο DHT αισθητήρας (θερμοκρασίας/υγρασίας)
#define DHTTYPE DHT11   // Τύπος του αισθητήρα DHT: 11

#define TFT_CS  10  // Ψηφιακά pin στα οποία συνδέεται η οθόνη,
#define TFT_RST 8   // συν τα pin 11:MOSI και 13:SCK
#define TFT_DC  9

#define dirPin 2    // Ψηφιακό pin στο οποίο συνδέεται ο motor driver και ελέγχει κατεύθυνση
#define stepPin 3   // Ψηφιακό pin στο οποίο συνδέεται ο motor dirver και ελέγχει τα βήματα
#define motorInterfaceType 1    // Τύπος motor driver (ελεγκτή κινητήρα)
#define upbtn  5    // Ψηφιακό pin στο οποίο συνδέεται το πάνω κουμπί
#define downbtn  4  // Ψηφιακό pin στο οποίο συνδέεται το κάτω κουμπί
#define uphall A2   // Ψηφιακό pin στο οποίο συνδέεται ο πάνω αισθητήρας φαινομένου Hall
#define dhall A0    // Ψηφιακό pin στο οποίο συνδέεται ο κάτω αισθητήρας φαινομένου Hall
#define rele A3     // Ψηφιακό pin στο οποίο συνδέεται το MOSFET που ελέγχει τον ανεμιστήρα
#define swtch 6     // Ψηφιακό pin στο οποίο συνδέεται ο επιλογέας λειτουργίας
#define phsns A1    // Ψηφιακό pin στο οποίο συνδέεται η φωτοαντίσταση

AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);   // Αρχικοποίηση του αντικειμένου κινητήρα
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);     // Αρχικοποίηση του αντικειμένου οθόνης
DHT dht(DHTPIN, DHT11);     // Αρχικοποίηση του αντικειμένου αισθητήρα DHT

// Αρχικοποίηση μεταβλητών
uint8_t up_snsr = 1;
uint8_t d_snsr = 1;
float h = 0;
float t = 0;
uint16_t photor = 0;
float hic = 0;

void setup() {
  // Ορισμός των ψηφιακών pin ως είσοδοι ή έξοδοι
  pinMode(uphall,INPUT);
  pinMode(dhall,INPUT);
  pinMode(upbtn,INPUT);
  pinMode(downbtn,INPUT);
  pinMode(phsns,INPUT);
  pinMode(swtch,INPUT);
  pinMode(rele,OUTPUT);
  stepper.setMaxSpeed(850);     // Ορισμός μέγιστης ταχύτητας κινητήρα
  stepper.setAcceleration(300); // Ορισμός επιτάχυνσης κινητήρα

  tft.initR(INITR_144GREENTAB); // Αρχικοποίηση οθόνης
  tft.fillScreen(ST77XX_BLACK); // Καθάρισμα οθόνης
  tft.setRotation(45);          // Περιστροφή οθόνης
  tft.setTextColor(ST77XX_WHITE,ST77XX_BLACK);   // Ορισμός χρώματος γραμματοσειράς
  tft.setTextSize(3);           // Ορισμός μεγέθους γραμματοσειράς
  tft.setCursor(0,20);
  
  dht.begin();                  // Αρχικοποίηση αισθητήρα DHT
}

void loop() {
  photor = analogRead(phsns);   // Λήψη τιμής φωτοαντίστασης
  // Εάν ο επιλογέας λειτουργίας είναι στο MANUAL:1
  if (digitalRead(swtch)){     
    tft.setCursor(0,75);
    tft.println("MANUAL");
    
    // όσο το πάνω κουμπί είναι πατημένο και ο πάνω αισθητήρας Hall
    // δεν είναι ενεργοποιημένος ο κινητήρας κινείται δεξιόστροφα
    while ((digitalRead(upbtn)==HIGH)&&(digitalRead(uphall)==HIGH)){
      stepper.setSpeed(850);
      stepper.run();
    }
    // όσο το κάτω κουμπί είναι πατημένο και ο κάτω αισθητήρας Hall
    // δεν είναι ενεργοποιημένος ο κινητήρας κινείται αριστερόστροφα
    while ((digitalRead(downbtn)==HIGH)&&(digitalRead(dhall)==HIGH)){
      stepper.setSpeed(-850);
      stepper.run();
    }
    stepper.stop();
  }
  // Εάν ο επιλογέας λειτουργίας είναι στο AUTO:0
  else{
    tft.setCursor(0,75);
    tft.println("AUTO    ");
    // Εάν η ένταση του εξωτερικού φωτός είναι τέτοια ώστε η τιμή που παίρνουμε από
    // τη φωτοαντίσταση είναι μικρότερη από 100, ο κινητήρας κινείται αριστερόστροφα μέχρι
    // να ενεργοποιηθεί ο κάτω αισθητήρας Hall
    if ((photor<100)&&(digitalRead(dhall)==HIGH)){
      while ((digitalRead(dhall)==HIGH)&&(!digitalRead(swtch))){
        stepper.setSpeed(-850);
        stepper.run();
      }
    }
    // Εάν η τιμή από το φωτορεσίστορ έίναι μεγαλύτερη από 600, ο κινητήρας κινείται
    // δεξιόστροφα μέχρι να ενεργοποιηθεί ο πάνω αισθητήρας Hall
    else if ((photor>600)&&(digitalRead(uphall)==HIGH)){
      while ((digitalRead(uphall)==HIGH)&&(!digitalRead(swtch))){
        stepper.setSpeed(850);
        stepper.run();
      }
    }
  }
  h = dht.readHumidity();     // Λήψη τιμής υγρασίας από τον DHT αισθητήρα
  t = dht.readTemperature();  // Λήψη τιμής θερμοκρασίας από τον DHT αισθητήρα
  
  photor = analogRead(phsns); 

  // Τυπώνουμε τις τιμές θερμοκρασίας και φωτοαντίστασης στην οθόνη
  tft.setCursor(0,20);
  tft.print(round(t));tft.print((char)247);tft.println('C');
  tft.println(photor);

  // Εάν ο πάνω αισθητήρας hall δεν είναι ενεργοποιημένος, ανοίγουμε τον ανεμιστήρα
  if (digitalRead(uphall)==HIGH) digitalWrite(rele,HIGH);
  else digitalWrite(rele,LOW);
}

Αρχεία