Σύνδεση

Επιστροφή στο Forum : Arduino Aquarium Controller


nt7561
14-09-15, 13:38
Μιας και οι απαραίτητες γνώσεις και διάθεση υπήρχαν και βλέποντας στο ιντερνετ διάφορες τέτοιες κατασκευές, αποφάσισα να φτιάξω κάτι αντίστοιχο για το ενυδρείο μου.
Προμηθεύτηκα λοιπόν τα εξαρτήματα και ξεκίνησα την κατασκευή-προγραμματισμό. Για αρχή δεν θα είναι πάρα πολύ περίπλοκο.
Μετά από αρκετές ώρες σχεδιασμού και πολύ περισσότερες ώρες προγραμματισμού το τελικό αποτέλεσμα έχει ως εξής:
Δυνατότητες κοντρόλερ:
α.Συνεχής μέτρηση θερμοκρασία (με αλλαγή χρώματος ανάλογα τη θερμοκρασία).
β.Δυνατότητα ελέγχου λειτουργίας ψύξης-θέρμανσης νερού, ανάλογα με τη θερμοκρασία - (ένδειξη στην οθόνη).
γ.Δυνατότητα ελέγχου ανάμματος-σβησίματος φωτισμού σε δύο διαφορετικά στάδια (βαθμιαίο άναμμα - σβήσιμο φωτισμού)-(ένδειξη κατάστασης στην οθόνη)
δ. Δυνατότητα ανοίγματος - κλεισίματος ηλεκτροβάνας CO2 (στα μελλοντικά σχέδια είναι να μπει και PH controller) -(ένδειξη κατάστασης στην οθόνη).
ε. Δυνατότητα αυτόματης χορήγησης 3 διαφορετικών λιπασμάτων -(ένδειξη κατάστασης στην οθόνη).
στ. Δυνατότητα αυτόματου ταίσματος σε καθορισμένους χρόνους -(ένδειξη κατάστασης στην οθόνη).
ζ. Δυνατότητα ελέγχου λειτουργίας των φίλτρων (σβήσιμο κατά τη διάρκεια του ταίσματος για 5 λεπτά και επαναλειτουργία τους -(ένδειξη κατάστασης στην οθόνη).

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

Η παραμετροποίηση των λειτουργιών (ώρες και ενέργειες) γίνεται μέσω σύνδεσης του κοντρόλερ με τον υπολογιστή και υπάρχει η προοπτική touch ui (καθώς η οθόνη το υποστηρίζει).
Στα σχέδια είναι και η σύνδεση του στο ιντερνετ για να μπορώ να βλέπω την τρέχουσα κατάσταση του ενυδρείου (παραμέτρους) αλλά και να ελέγχω απομακρυσμένα τον κοντρόλερ.

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

kgf12345
14-09-15, 14:29
πολυ καλο μπραβο σου!οταν τελειωσεις περιμενουμε κ τις οδηγιες κατασκευης ε;:)
ενδιαφερεται πολυς κοσμος για κατι τετοιο;)

no_name
14-09-15, 15:31
Πολύ καλό...!!!
Με την πρώτη ευκαιρία ανέβασε και τον κώδικα (εάν θες)

nt7561
14-09-15, 18:14
πολυ καλο μπραβο σου!οταν τελειωσεις περιμενουμε κ τις οδηγιες κατασκευης ε;:)
ενδιαφερεται πολυς κοσμος για κατι τετοιο;)

Πολύ καλό...!!!
Με την πρώτη ευκαιρία ανέβασε και τον κώδικα (εάν θες)

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

puntomad
14-09-15, 22:05
Μπραβο φιλε με το καλο,
το εχω ξεκινησει καμια 10αρια φορες και το εχω παρατησει ακομα περισσοτερες.

2 πραγματα ειχα στο μυαλο μου ph control και ντιμαρισμα.

Αν βρεις και κανα φτηνο αισθητηρα για το ph θα εισαι αρχοντας :smt041

Sakisdraminos
15-09-15, 10:19
Φίλος μια χαρά τα πας το θέμα είναι γιατί δεν πήρες έτοιμο το πρόγραμμα να μην πλέκεις με κώδικες?

Εγώ με την βοήθειά του Jimibits μάλλον μόνο αυτός κάνανε ένα arduino πλήρη ελενχο του ενυδρείου βάζοντας έτοιμο κώδικα jarduino v1.2 το οποίο έχει 20ευρω αλλά ή έκδοση 1.1 ήταν δώρο!

Για το ph controler έχει βγει απλά είναι πανάκριβο φυσικά μιλάω για έτοιμο και όχι diy!

nt7561
16-09-15, 23:40
Φίλος μια χαρά τα πας το θέμα είναι γιατί δεν πήρες έτοιμο το πρόγραμμα να μην πλέκεις με κώδικες?

Εγώ με την βοήθειά του Jimibits μάλλον μόνο αυτός κάνανε ένα arduino πλήρη ελενχο του ενυδρείου βάζοντας έτοιμο κώδικα jarduino v1.2 το οποίο έχει 20ευρω αλλά ή έκδοση 1.1 ήταν δώρο!

Για το ph controler έχει βγει απλά είναι πανάκριβο φυσικά μιλάω για έτοιμο και όχι diy!

Αλλη χάρη έχει να το κάνεις από μόνος σου ;)
Εγω ψάχνωντας για ph controller kit έχω βρει γύρω στα 40 €.
Για την ώρα το αφήνω.
Ορίστε και ένα σύντομο βιντεο https://youtu.be/gGUNbitgPA4

no_name
17-09-15, 07:20
Καλοοοο... αντε να το δούμε στην τελική του φάση. Βάλε τον κώδικα να του ρίξω μια ματιά. Γιατί φτιάχνω με έναν φίλο μου αντίστοιχο κύκλωμα

nt7561
24-09-15, 11:28
Ενα update από το εγχείρημα.
Ο κώδικας ελέγχεται διεξοδικά και μέχρι τώρα τα αποτελέσματα είναι τα εξής:
α. Ελεγχος φωτισμού, οκ
β. Ελεγχος CO2, οκ
γ. Ελεγχος θερμοκρασίας-θερμαντήρα-ψύξης, οκ
δ. Ελεγχος λίπανσης, οκ
ε. Εμφάνιση πληροφοριών των παραπάνω στην οθόνη, οκ

Μένει να προσθέσω στον κώδικα, το κομμάτι για το ταισμα και έλεγχο του (10 λεπτά) και να τα ξαναελεγξω από την αρχή.

Επειδή όμως η οθόνη που προμηθεύτηκα αρχικά, μου φαίνεται αρκετά μικρή για αυτά που έχω σκεφτεί να εμφανίζει (2,4''), παράγγειλα μια 4,5'' και ένα Ph controller (ο οποίος θα ελέγχει τη λειτουργεία του CO2), που θα τα συνδέσω και αυτά.

Οταν τελειώσω με αυτά, θα δουλέψω και το ethernet (webserver).

Σας παραθέτω και μερικές φωτογραφίες από την τρέχουσα μορφή του κοντρόλερ.

Υ.Γ.
Μόλις τελειώσω τον έλεγχο σωστής λειτουργίας θα ανεβάσω των κώδικα καθώς και τα εξαρτήματα που χρησιμοποίησα καθώς και (χρόνου επιτρέποντος), αναλυτικές οδηγίες.

stanisalus18
24-09-15, 16:18
Ενα update από το εγχείρημα.

Σας παραθέτω και μερικές φωτογραφίες από την τρέχουσα μορφή του κοντρόλερ.

Ομορφα πραγματα μπραβο και απο μενα :D

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

εν αναμονη λοιπον ;)

Τάκης
24-09-15, 16:30
Ωραία πράγματα .
Πωπω φίλε μας πριζώνεις άσχημα :)
Και έλεγα φέτος να μη φτιάξω τίποτα :)

Κωστας Malawi
24-09-15, 16:40
Ωραία πράγματα .
Πωπω φίλε μας πριζώνεις άσχημα :)
Και έλεγα φέτος να μη φτιάξω τίποτα :)

ξεκινα!!αλλα εγω το θελω ετοιμο:p:cool::D

Τάκης
24-09-15, 16:47
ξεκινα!!αλλα εγω το θελω ετοιμο:p:cool::D
:D:D:D:D:D

Nick74
26-09-15, 15:05
βρε ανεβασε τον κωδικα και θα του αλλαξουμε τον αδοξαστο. :D

GNU-GPL ελπιζω ;)



και οτι σκεφτομουν να φτιαξω κατι τετοιο με κανα raspberry-pi (ναι ξερω, δηλωνω μια ελαφρα βαρεμαρα)


btw -ασχετο αλλα λιγο σχετικο με τη βαρεμαρα που λεγαμε- μπας κι εχει κανεις ορεξη και χρονο να αποχαλκωσει μερικες πλακετες? (με το αζημειωτο εννωειται)

nt7561
26-09-15, 22:31
Σήμερα έκανα την πρωτη δοκιμή του κοντρολερ στο ενυδρειο. Σύνδεσα τα πάντα πάνω του (μετά από την καθιερωμένη εβδομαδιαία αλλαγή φυσικά) και το άφησα να τρέχει. Τα πάντα δούλεψαν σωστά :p:p:p:p:p:p
Θα το αφήσω και αύριο και μετά θα προχωρήσω στην τελική του μορφοποίηση. Αν και από βδομάδα έρχεται η μεγάλη οθόνη, οπότε πάλι γράψιμο κώδικα θα έχω (και φυσικά περιμένω και το Ph κοντρολερ για να το κουμπώσω και αυτό επάνω.
Ορίστε και ενα σύντομο βιντεάκι.
https://youtu.be/M37cEm3DdcM

no_name
26-09-15, 22:54
Σούπερ είναι... ωραία χρώματα έχεις βάλει στην οθόνη!!!!

Ανέβασε τον κώδικα μέχρι αυτο το σημείο (είμαι στα σκαριά και εγώ)

nt7561
26-09-15, 23:05
Σούπερ είναι... ωραία χρώματα έχεις βάλει στην οθόνη!!!!

Ανέβασε τον κώδικα μέχρι αυτο το σημείο (είμαι στα σκαριά και εγώ)

Ορίστε φίλε μου
https://github.com/nt7561/ARDUINO-AQUARIUM-CONTROLLER/blob/master/ARDUINO_AQUARIUM_CONTROLLER/ARDUINO_AQUARIUM_CONTROLLER.ino

stanisalus18
27-09-15, 02:49
απαιχτο ειναι μπραβο σου :D

Nick74
27-09-15, 15:16
Ορίστε φίλε μου
https://github.com/nt7561/ARDUINO-AQUARIUM-CONTROLLER/blob/master/ARDUINO_AQUARIUM_CONTROLLER/ARDUINO_AQUARIUM_CONTROLLER.ino
Ευχαριστούμε, όποιος κάνει αλλαγές το σωστό είναι να ανεβάσει τη δική του εκδοχή (εγώ θα το τηρησω)

jimbit22
27-09-15, 17:31
Ευχαριστούμε, όποιος κάνει αλλαγές το σωστό είναι να ανεβάσει τη δική του εκδοχή (εγώ θα το τηρησω)

Μπορείς να κάνεις branch στο github..

Ωραία δουλειά έχεις κάνει και ο κώδικας ειναι επεξηγηματικότατος..

Επέτρεψε μου όμως να προτείνω και εγώ το Jarduino..
Αυτή την στιγμή αν θελήσεις να αλλάξεις κάποια ρύθμιση πρέπει να το υνδέσεις σε pc και να το κανείς flash με καινούριο κώδικα, πράγμα χρονοβόρο και κακό για την μνήμη flash του ATmega.
Οι 5000 από τις 6000 γραμμές κώδικα του Jarduino ειναι το μενού και οι σελίδες της οθόνης οπότε το να φτιάξεις καινούριο μενού ειναι δύσκολο και χρονοβόρο (όχι ακατόρθωτο)..

Μερικές προσθήκες:

Θερμοκρασία

Όπως είσαι τώρα, δουλεύεις με την τιμή θερμοκρασίας αφιλτράριστη. Όταν αυτή θα ειναι κοντά στο όριο (+- 0.1) τα ρελέ σου θα ανοιγοκλείνουν σαν τρελά. το καλύτερο θα ήταν να βγάζεις τον μέσο όρο ανά πχ δέκα μετρήσεις
και να δουλεύεις με αυτό..

οι αισθητήρες ONE Wire ειναι πολύ αργοί (προγραμματιστικα) στο να απαντήσουν την τιμή της θερμοκρασίας αφού λάβουν την αίτηση, οπότε πρέπει να καλείς μόνο μια φορά τον κάθε αισθητήρα σε κάθε loop του προγράμματος σου για να μην καθυστερεί η οθόνη.

παράδειγμα:


const int numReadings PROGMEM = 10; // defines accuracy of the temp average
float readings[numReadings]; // the readings from the thermistor input
float total = 0; // the running total
float average = 0; // the average
float tempW = 0;
int i = 0;

void setup()
{
for (int y=0; y<numReadings-1; y++) // γεμηζεισ τον buffer του μεσου ορου
{
readings[y] = sensors.getTempCByIndex(0); //διαβαζεις τον αισθτήρα
}
}

Void loop()
{
read_temp();
}

int read_temp()
{
int rawtemp = sensors.getTempCByIndex(0); //διαβαζεις τον αισθτήρα
if (rawtemp >= (readings[i-1]-3) || (rawtemp<= (readings[i-1] +3) // το εχω γραψει λαθος.. αν i=0 τοτε δεν δουλευει παει στη θεση -1
{
// subtract the first reading:
if ((i+1) == 10) total= total - readings[0];
else total= total - readings[i+1];

readings[i] = rawtemp;
// add the reading to the total:
total= total + readings[i];
// advance to the next position in the array:
i++;
if (i>=numReadings) i= 0;
// calculate the average:
average = total / numReadings;
tempC = average;
}
else
//error ο αισθητήρας έστειλε λανθασμένη θερμοκρασία


}


δεν εχω κοιτάξει για τυχών λάθη σύνταξης και ούτε το έχω κάνει compile..

Maverick
27-09-15, 18:33
Πολύ ενδιαφέρον! Αφου είναι πλεον σε προχωρημένο στάδιο, δεν αρχίζεις να αναφέρεις και τα υλικά που χρειάζονται (τουλάχιστον τα βασικά) για να ξεκινάμε να τα βρίσκουμε ;)

nt7561
27-09-15, 22:10
Ευχαριστώ πολύ για τα καλά σας λόγια αλλά και για τις παρατηρήσεις!!
Αυτό με τη θερμοκρασία το είχα σκεφτεί και εγώ αλλά δεν προχώρησα στην υλοποίησή του. Θα το δω όμως στα σίγουρα μιας και αυτό που λες για τα ρελέ ισχύει.
Αύριο θα προσπαθήσω να γράψω και τα υλικά που χρησιμοποίησα (τώρα δεν προλαβαίνω).
Το jarduino είναι όντως κορυφαίο, αλλά έχω τη χαρα οτι αυτό που σκέφτομαι το κάνω να "παίζει" με τη δική μου προσπάθεια ;)

Nick74
28-09-15, 00:52
Εγώ σκέφτομαι εξ αρχής να μη βάλω ρελε και να παίξω τη θερμοκρασία αναλογικά (οκ steps ) με κάνα triac

jimbit22
28-09-15, 01:15
Εγώ σκέφτομαι εξ αρχής να μη βάλω ρελε και να παίξω τη θερμοκρασία αναλογικά (οκ steps ) με κάνα triac

Αυτό είναι το καλύτερο! Αλλά καλύτερα SSR, το triac τρώει ενα πιν ακόμη για το zero crossing detection. Αν θυμάμαι καλά το SSR δεν χρειάζεται zero crossing.

Για μενού μπορώ να προτείνω την library "Menu Backend", θα σου πάρει λίγο να την καταφέρεις να δουλέψει σε οθόνη αφής αλλά σου μαζεύει τον κωδικα σου αρκετά..

Όπως είσαι τώρα, δεν έχεις πρόβλημα με μεγάλες διάφορες θερμοκρασίας αλλά όταν η διαφορά μικραίνει και πλησιάζει στο set point θα συμπεριφέρεται σαν τρελό.

Εκτώς από τον μέσο όρο μπορείς να ορισεις ελάχιστο χρόνο που ο θερμοστάτης θα είναι ανοιχτός πχ 3 λεπτά..

Nick74
28-09-15, 01:20
Το ssr έχει μέσα triac + diac για triger και κάνα δυο αντιστάσεις και ένα πυκνωτή.
Εγώ δεν είπα να κάνω το triac διακόπτη αλλά να το δουλέψω σε steps (η και αναλογικά, γιατί οχι) ώστε να μη λειτουργεί πάντα 100%.
Τώρα αν το triac το οδηγήσω από ssr ...αυτό είναι αυτονόητο αφού πότε δε συμπαθούσα τις επαφές και τα ανοιξε-κλεισε.

Σκέφτομαι και κατι πιο αναλογικό σε pwm...

jimbit22
28-09-15, 01:47
Το ssr έχει μέσα triac + diac για triger και κάνα δυο αντιστάσεις και ένα πυκνωτή.
Εγώ δεν είπα να κάνω το triac διακόπτη αλλά να το δουλέψω σε steps (η και αναλογικά, γιατί οχι) ώστε να μη λειτουργεί πάντα 100%.
Τώρα αν το triac το οδηγήσω από ssr ...αυτό είναι αυτονόητο αφού πότε δε συμπαθούσα τις επαφές και τα ανοιξε-κλεισε.

Σκέφτομαι και κατι πιο αναλογικό σε pwm...
Βασικά έλεγα να οδηγηθεί το SSR σαν triac για dimming για να μειωθεί ο αριθμός των εξαρτημάτων.. Έτσι ήθελα να το κάνω αλλά δεν το έχω δοκιμάσει ακόμη..

Κάπου είχα διαβάσει ότι οδηγείς το SSR με pwm χωρίς zero crossing αλλά το εψαξα τώρα και δεν ισχύει.. Θέλει zero crossing detection και το δικό τού interrupt για να συγχρονιστεί...

nt7561
28-09-15, 06:58
Εκτώς από τον μέσο όρο μπορείς να ορισεις ελάχιστο χρόνο που ο θερμοστάτης θα είναι ανοιχτός πχ 3 λεπτά..

Αυτό πως γίνεται?

Nick74
28-09-15, 07:13
Βασικά έλεγα να οδηγηθεί το SSR σαν triac για dimming για να μειωθεί ο αριθμός των εξαρτημάτων.. Έτσι ήθελα να το κάνω αλλά δεν το έχω δοκιμάσει ακόμη..

Κάπου είχα διαβάσει ότι οδηγείς το SSR με pwm χωρίς zero crossing αλλά το εψαξα τώρα και δεν ισχύει.. Θέλει zero crossing detection και το δικό τού interrupt για να συγχρονιστεί...
Χμ. .. θες να λειτουργήσεις το ssr σαν optocoupler...
Δε γνωρίζω αν γίνεται, το ssr έχει έτσι κι αλλιώς optocoupler εσωτερικά στην είσοδο του. Ίσως και να είναι εφικτό (και πρεπει να ειναι οπως το σκεφτομαι, γιατι οχι? )αν και πρακτικά θα προτιμούσα χύμα κυκλωμα με triac που μπορείς να επέμβεις ενω στο κλειστό κουτί του ssr πχ αν δε σου κάνει κάτι αν θες να προσθεσεις κατι πώς θα επέμβεις? Σαν εξάρτημα φτιάχτηκε για να λειτουργεί ως διακόπτης κι όχι ως κάτι άλλο, χώρια που είναι και ακριβότερο.

jimbit22
28-09-15, 08:50
Αυτό πως γίνεται?



int WindowSize = 5000;// χρόνος σε millisecond 5000 = 5sec
float setpoint = 23.0; //στόχος θερμοκρασίας
float offset = 0.2; //κενό +-0.2 από το στόχο θερμοκρασίας για να μην ανάβει κάθε τρεις και λίγο

unsigned long windowStartTime;
void setup()
{
windowStartTime = millis();
}

void loop()
{
if (tempW <= stepoint+offset) Windowsize = 5000;
else windowsize = 0;
/************************************************
* turn the output pin on/off
************************************************/
unsigned long now = millis();
if(now - windowStartTime>WindowSize)
{ //time to shift the Relay Window
windowStartTime += WindowSize;
}
if(Output > now - windowStartTime) digitalWrite(RelayPin,HIGH);
else digitalWrite(RelayPin,LOW);

}

-------------------------
Αυτό το loop λέει στο ρελε να ανοίγει τουλάχιστον για 5 δευτερόλεπτα. αν η αλλαγή στη θερμοκρασία δεν έχει επιτευχθεί στα 5 δευτερόλεπτα μεγαλώνει το παράθυρο σε κομμάτια των 5 δευτερολεπτων χωρίς να κλείσει το ρελε.



μόνο του δεν λειτουργεί, θέλει και τον μέσο όρο που έγραψα ποιο πάνω..

Σε αυτό το ποστ http://www.aquatek.gr/vb/showpost.php?p=774601&postcount=58 έχω ανεβάσει πρόγραμμα που έχω φτιάξει μπορεί να σου φανεί χρήσιμο σε τπτ.. ειναι πειραγμένα κομμάτια του jarduino χωρίς το κομμάτι της οθόνης αφής

aquadominus
01-10-15, 20:42
Τέλειος είσαι σε πολύ καλό δρόμο εγώ κάθε χρόνο το φτάνω σε ένα επίπεδο και μόλις ξεκινήσω δουλεία την άνοιξει το παρατάω και μετά φτού και απο την αρχή αλλά φέτος λέω να το προσπαθήσω ποίο εντατικά....

nt7561
02-10-15, 09:13
Ψάχνωντας στο ίντερνετ σχετικά με τον αισθητήρα θερμοκρασίας, βρήκα ένα άρθρο στο οποίο ο συγγραφέας, ανέφερε ότι ο καλύτερος τρόπος για να διαβάζεις τη θερμοκρασία χωρίς να έχεις μεγάλη καθυστέρηση (ο αισθητήρας από κατασκευής έχει μια καθυστέρηση του μισού δευτερολέπτου κατά τη μετατροπή των δεδομένων σε θερμοκρασία) είναι να τον δουλεύεις σε asyncronus mode.
Το έκανα λοιπόν και διαπίστωσα μεγάλη διαφορά και στο χρόνο αλλά και στα ρελέ).

Εν αναμονή της μεγάλης οθόνης (τελικά παράγγειλα μια 5 ιντσών) προχώρησα στο σχεδιασμό του γραφικού περιβάλλοντος και τη "μετατροπή" του κώδικα ώστε να παρουσιάζει τα δεδομένα στη νέα οθόνη. Σε οθόνη φίλου που έτρεξα τον κώδικα εμφανίζονται κανονικά, οπότε προχώρησα ένα βήμα παραπάνω και έφτιαξα στο photoshop τις εικόνες που θα εμφανίζονται στην οθόνη.
Ένα πρόχειρο σχέδιο αυτού είναι η παρακάτω φωτογραφία.
Έκανα και τις απαραίτητες αλλαγές στον κώδικα προκειμένου στο Loop να εμφανίζει τις αντίστοιχες εικόνες, το έκανα compile χωρίς κανένα (δόξα το θεό) error και τώρα το μόνο που μένει, είναι να έρθει η οθόνη, να την κουμπώσω στο arduino και να κάνω upload των κώδικα για να δω αν to γραφικό περιβάλλον, τρέχει όπως το έχω σχεδιάσει.

aquadominus
02-10-15, 12:12
Ψάχνωντας στο ίντερνετ σχετικά με τον αισθητήρα θερμοκρασίας, βρήκα ένα άρθρο στο οποίο ο συγγραφέας, ανέφερε ότι ο καλύτερος τρόπος για να διαβάζεις τη θερμοκρασία χωρίς να έχεις μεγάλη καθυστέρηση (ο αισθητήρας από κατασκευής έχει μια καθυστέρηση του μισού δευτερολέπτου κατά τη μετατροπή των δεδομένων σε θερμοκρασία) είναι να τον δουλεύεις σε asyncronus mode.
Το έκανα λοιπόν και διαπίστωσα μεγάλη διαφορά και στο χρόνο αλλά και στα ρελέ).

Εν αναμονή της μεγάλης οθόνης (τελικά παράγγειλα μια 5 ιντσών) προχώρησα στο σχεδιασμό του γραφικού περιβάλλοντος και τη "μετατροπή" του κώδικα ώστε να παρουσιάζει τα δεδομένα στη νέα οθόνη. Σε οθόνη φίλου που έτρεξα τον κώδικα εμφανίζονται κανονικά, οπότε προχώρησα ένα βήμα παραπάνω και έφτιαξα στο photoshop τις εικόνες που θα εμφανίζονται στην οθόνη.
Ένα πρόχειρο σχέδιο αυτού είναι η παρακάτω φωτογραφία.
Έκανα και τις απαραίτητες αλλαγές στον κώδικα προκειμένου στο Loop να εμφανίζει τις αντίστοιχες εικόνες, το έκανα compile χωρίς κανένα (δόξα το θεό) error και τώρα το μόνο που μένει, είναι να έρθει η οθόνη, να την κουμπώσω στο arduino και να κάνω upload των κώδικα για να δω αν to γραφικό περιβάλλον, τρέχει όπως το έχω σχεδιάσει.

Ωραίος άντε να δούμε το τελικό αποτέλεσμα... Τι αισθητήρες θερμοκρασίας χρησιμοποιείς;

nt7561
05-10-15, 14:46
Ωραίος άντε να δούμε το τελικό αποτέλεσμα... Τι αισθητήρες θερμοκρασίας χρησιμοποιείς;

Τον db18s20 (one wire)

aquadominus
05-10-15, 14:52
Τον db18s20 (one wire)
Εγώ έχω τον DS18B20 καιείχα κάποιες μικροδιαφορές σε σχέση με τον Elliwell οπότε του έκανα μια μικροδιόρθωση για να συμβαδίζουν...

Πώς τον στεγανοποίησες;;;

antricos
05-10-15, 15:54
Φτιάχνω και εγώ ένα Temperature Controller με arduino (τύπου eliwell) με όλα τα μενού και τις δυνατότητες του συν κάποια ακόμα και έχω χρησιμοποιησει το αισθητήριο του eliwell για περισσότερη συμβατότητα. Γιατί δεν βάζετε το ίδιο να έχετε το κεφάλι σας ήσυχο μια χαρά δουλεύει.

https://dl.dropboxusercontent.com/u/68712656/Online/IMG_20151005_164516.jpg

nt7561
06-10-15, 05:23
Εγώ έχω τον DS18B20 καιείχα κάποιες μικροδιαφορές σε σχέση με τον Elliwell οπότε του έκανα μια μικροδιόρθωση για να συμβαδίζουν...

Πώς τον στεγανοποίησες;;;

Τον πήρα στεγανο εξ αρχής. Εγώ είχα το STC-1000 και με μια σύγκριση που έκανα, δεν είχαν διαφορά . Στον STC είχα βάλει τον αισθητήρα της Elliwell

Maverick
06-10-15, 11:50
Πολύ ωραία, αναμένουμε τη συνέχεια (και τα υλικά)! Έχεις ένα μικρολαθάκι, στη φώτο φαίνεται να είνα γραμμένα λάθος τα ανεμιστήρια (fans on) εκτός αν εννοείς ότι άναψε το κέφι στο ενυδρείο :D

aquadominus
06-10-15, 11:53
Φτιάχνω και εγώ ένα Temperature Controller με arduino (τύπου eliwell) με όλα τα μενού και τις δυνατότητες του συν κάποια ακόμα και έχω χρησιμοποιησει το αισθητήριο του eliwell για περισσότερη συμβατότητα. Γιατί δεν βάζετε το ίδιο να έχετε το κεφάλι σας ήσυχο μια χαρά δουλεύει.

https://dl.dropboxusercontent.com/u/68712656/Online/IMG_20151005_164516.jpg

Για πές πώς το σύνδεσες ακριβώς έχω έναν spare να τον δοκιμάσω...

jimbit22
06-10-15, 12:01
Ψάξε για "10k ntc thermistor arduino" στο γουγλε και θα βρεις πολλά άρθρα με τις συνδέσεις και έτοιμο κώδικα

aquadominus
06-10-15, 12:07
Ψάξε για "10k ntc thermistor arduino" στο γουγλε και θα βρεις πολλά άρθρα με τις συνδέσεις και έτοιμο κώδικα

Ευχαριστώ Δημήτρη!!!! Όπως βλέπεις ακόμα το παλέυω.... που θα πάει κάτι θα καταφέρω...

nt7561
08-10-15, 21:16
Πολύ ωραία, αναμένουμε τη συνέχεια (και τα υλικά)! Έχεις ένα μικρολαθάκι, στη φώτο φαίνεται να είνα γραμμένα λάθος τα ανεμιστήρια (fans on) εκτός αν εννοείς ότι άναψε το κέφι στο ενυδρείο :D

Χα χα σωστός, δεν το ειχα προσέξει.
Εν αναμονή της 5αρας οθόνης και του Ph controller, εχω τοπποθετήσει τον κοντρόλερ στην τελική του θέση στο ενυδρείο και εδώ και μια εβδομάδα δουλεύει χωρίς κανένα πρόβλημα. Ένα μικρό θεματάκι είχα με το τάισμα (η αυτόματη ταίστρα που είχα και τροποποίησα ήθελε 3v οπότε δεν μου δούλευε σωστά με το ρελε που την είχα συνδέσει), αλλά εβαλα ενα voltage regulator στην ταίστρα, παράγγειλα και εν 5v relay που θα τη συνδέσω και τωρα ειναι στο στάδιο των δοκιμων.
Εχω αλλάξει και τον κώδικα, ώστε να μπορέσω να χρησιμοποιήσω τη νεα οθόνη, και πρόσθεσα και τον κώδικα που αφορά τον ph controller. Το compile δεν έβγαλε κανένα error, οπότε περιμένω να έρθουν τα εξαρτήματα για να το δοκιμάσω.
Μερικά από τα εξαρτήματα που χρησιμοποίησα είναι:
arduino mega 2560 r3
tiny rtc
DS18B20 waterproof probe
8ch 12V Relay (φώτα, co2, ψυξη, θερμανση και δοσομετρικες αντλιες)
1ch 5V Relay (αυτόματο ταισμα)
12v dosing pumps (x3)
Οθόνη 5'' (800X480), αναμένεται
Ph controller kit+Probe, αναμένονται
Αν βρω χρονο θα κανω Upload και ένα σύντομο βίντεο απο την εγκατάσταση του στο ενυδρειο (τοποθετημένο - δοσομετρικές κλπ)

antricos
08-10-15, 23:26
Για πές πώς το σύνδεσες ακριβώς έχω έναν spare να τον δοκιμάσω...

https://dl.dropboxusercontent.com/u/68712656/Online/simple10ktherm_schem_new.png


sensor = analogRead(A0);
vout = ((5 * sensor) / 1023);
thermistor = (((10 * 5) / vout) - 10);
temperature = (1.0 / ((log((thermistor) / 10) / 3435) + (1.0 / (25 + 273.15)))) - 273.15;


Δήλωσε τις μεταβλητές ολες float, βάλε τον παραπάνω κώδικα στη void loop κανε και ένα print σε serial terminal την temperature και είσαι έτοιμος.

aquadominus
09-10-15, 09:23
Χα χα σωστός, δεν το ειχα προσέξει.
Εν αναμονή της 5αρας οθόνης και του Ph controller, εχω τοπποθετήσει τον κοντρόλερ στην τελική του θέση στο ενυδρείο και εδώ και μια εβδομάδα δουλεύει χωρίς κανένα πρόβλημα. Ένα μικρό θεματάκι είχα με το τάισμα (η αυτόματη ταίστρα που είχα και τροποποίησα ήθελε 3v οπότε δεν μου δούλευε σωστά με το ρελε που την είχα συνδέσει), αλλά εβαλα ενα voltage regulator στην ταίστρα, παράγγειλα και εν 5v relay που θα τη συνδέσω και τωρα ειναι στο στάδιο των δοκιμων.
Εχω αλλάξει και τον κώδικα, ώστε να μπορέσω να χρησιμοποιήσω τη νεα οθόνη, και πρόσθεσα και τον κώδικα που αφορά τον ph controller. Το compile δεν έβγαλε κανένα error, οπότε περιμένω να έρθουν τα εξαρτήματα για να το δοκιμάσω.
Μερικά από τα εξαρτήματα που χρησιμοποίησα είναι:
arduino mega 2560 r3
tiny rtc
DS18B20 waterproof probe
8ch 12V Relay (φώτα, co2, ψυξη, θερμανση και δοσομετρικες αντλιες)
1ch 5V Relay (αυτόματο ταισμα)
12v dosing pumps (x3)
Οθόνη 5'' (800X480), αναμένεται
Ph controller kit+Probe, αναμένονται
Αν βρω χρονο θα κανω Upload και ένα σύντομο βίντεο απο την εγκατάσταση του στο ενυδρειο (τοποθετημένο - δοσομετρικές κλπ)

Ωραίος περιμένουμε με αγωνία την συνέχεια...

stanisalus18
09-10-15, 21:22
Ωραίος περιμένουμε με αγωνία την συνέχεια...

+1 .

nt7561
26-10-15, 12:17
Οι live δοκιμές συνεχίζονται. Μπήκε και ο Ph Controller, και εν αναμονή της 5αρας οθόνης για να δοκιμάσω το καινούργιο interface, πειράζω λίγο το υπάρχον.
Προσπαθώ να ρυθμίσω το Ph controller (έχω μια διαφορά της τάξης του 1,4 σε σχέση με μετρήσεις με υγρά τεστ), πριν βάλω το co2 να δουλεύει με το ph.

Αν προλάβω θα ανεβάσω το βίντεο στο οποίο φαίνεται να αλλάζουν μόνο αυτά που χρειάζονται στην οθόνη (refresh rate 10'') χωρίς να ξαναγράφει τα πάντα από την αρχή.
https://youtu.be/0wgfsy0kKXU

nt7561
27-10-15, 13:09
Αυτό είναι και το βίντεο με το τελευταιο ui που τρέχω τώρα στον κοντρολερ
https://youtu.be/M4dlcSEb6AE

Τάκης
27-10-15, 14:13
Αυτό είναι και το βίντεο με το τελευταιο ui που τρέχω τώρα στον κοντρολερ
https://youtu.be/M4dlcSEb6AE

Ωραίο,
έφτιαξες και το refresh της οθόνης, πολύ καλύτερο τώρα :smt041:smt041

nt7561
28-10-15, 01:00
Ωραίο,
έφτιαξες και το refresh της οθόνης, πολύ καλύτερο τώρα :smt041:smt041

Ευχαριστώ Τάκη.
Το μόνο πρόβλημα που αντιμετωπίζω είναι ότι όταν ανάψει κάποιο από τα ρελέ η ένδειξη απο το Ph αρχίζει και τρελαίνεται (ανεβαίνει προς τα πάνω). Πιστεύω πως έχει να κάνει με την αύξηση της τασης στα πινάκια του κοντρόλερ του Ph (αναλογικό και γείωση - τροφοδοσία ρεύματος έχει ξεχωριστή)

nt7561
04-11-15, 17:24
Χτες παρέλαβα την 5αρα οθόνη. Έφτιαξα την καλωδιωση, έκανα και μερικές τροποποιησεις στον κώδικα, upload στο εφεδρικό arduino και ορίστε το αποτέλεσμα. Κάθε σχόλιο ή παρατήρηση είναι ευπρόσδεκτη
https://youtu.be/OKESdDwpL2w

aquadominus
22-01-16, 12:47
Καμιά εξέλιξη έχουμέ;;;;; Καμια φώτο με ολοκληρή την κατασκευή;;;

nt7561
23-01-16, 00:11
Καμιά εξέλιξη έχουμέ;;;;; Καμια φώτο με ολοκληρή την κατασκευή;;;

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

stanisalus18
04-02-16, 12:34
οπότε θα βγάλω καλύτερες φωτογραφίες

:smt023:smt023:smt023

nt7561
13-02-16, 16:06
:smt023:smt023:smt023

Λοιπόν αποφάσισα να κάνω κάποιες αλλαγές στον κοντρόλερ (κυρίως λόγω των καλλωδίων), οπότε αυτή είναι η τελική μορφή του.
Το μαύρο κουτί περιέχει το arduino, rtc, οθόνη, την πλακέτα για τον αισθητήρα θερμοκρασίας κλπ. Η κατασκευή με τα 2 κουτιά περιλαμβάνει τα 2 solid state relays (ένα 4 καναλιών για τα φώτα και το co2 και ενα 8 καναλιών για τα φίλτρα, αντλία, θερμοστάτη, ανεμιστήρες, ταίστρα και παροχή ρεύματος στο δοσομετρητή λιπασμάτων).
Ο δοσομετρητής λιπασμάτων (με 3 αντλίες από τις οποίες χρησιμοποιώ για την ώρα μόνο τις 2) είναι σε ξεχωριστό κουτί.
Όλα συνδέονται με τον κοντρόλερ με καλλώδιο utp.
O κοντόλερ είναι συνδεδεμένος με ups, έτσι ώστε σε περίπτωση διακοπής να συνεχίζει να λειτουργεί (όσο κρατάει το UPS).

Αντιμετωπίζω ένα μικρό πρόβλημα με το PH, το οποίο λόγω του ground loop όπως ονομάζεται (επαγωγικό ρεύμα στο νερό του ενυδρείου) , δε μου δίνει σταθερές ενδείξεις, οπότε μέχρι να το λύσω, το co2 το δουλεύω ανεξάρτητα από το PH, το οποίο το μετράω με μετρητή χειρός.

pagokoftis
14-02-16, 18:55
:smt120 :smt120 :smt120 :smt120 :smt120 :smt120
Ουάου, έχεις κάνει σοβαρή ζημιά!! Πότε αρχίζεις να πουλάς controllers είπαμε?? :D Ωραίος!!!

nt7561
14-02-16, 22:27
:smt120 :smt120 :smt120 :smt120 :smt120 :smt120
Ουάου, έχεις κάνει σοβαρή ζημιά!! Πότε αρχίζεις να πουλάς controllers είπαμε?? :D Ωραίος!!!
😁 χαρά μου να μοιραστώ τις γνώσεις και την όποια εμπειρία διαθέτω - απέκτησα! Θα μπορούσα να το βρω έτοιμο, όμως όταν το φτιάχνεις μόνος σου έχει άλλη χάρη!

Aquatix
23-03-16, 18:23
Πολύ όμορφο θέμα και πραγματικά πολύ όμορφη δουλειά! Μόνο ειδικός δεν είμαι στα ηλεκτρονικά ή/και στον προγραμματισμό , αυτοματισμούς κτλ. Έπεσε στην αντίληψή μου ίσως σας ενδιαφέρει μιας και φαίνεται αρκετά απλό http://www.blynk.cc/

------------------

Επίσης αυτός εδώ ο τύπος (http://arduino-aquarium.blogspot.gr/) έχει κάνει αρκετή δουλειά και ίσως σας δώσει κάποιες ιδέες :D

AgMa
26-12-16, 04:03
Που βρισκόμαστε εδώ; Κανένα νέο;