Πίνακας περιεχομένων:
- Βήμα 1: Προμήθειες
- Βήμα 2: Σχήμα Fritzing
- Βήμα 3: Προετοιμάστε το Raspberry Pi
- Βήμα 4: Μοντέλο βάσης δεδομένων - MySQL
- Βήμα 5: Frontend: Ρύθμιση του διακομιστή ιστοσελίδων
- Βήμα 6: Backend
- Βήμα 7: Τοποθέτηση της λωρίδας LED
- Βήμα 8: Τοποθέτηση των σωλήνων
- Βήμα 9: Τοποθέτηση της οθόνης LCD
- Βήμα 10: Τοποθέτηση των αισθητήρων και σύνδεση της λωρίδας LED
- Βήμα 11: Καλωδίωση του Pi
- Βήμα 12: Παρασκευή δοχείου για νερό
- Βήμα 13: Τελικό αποτέλεσμα
Βίντεο: Αυτοματοποιημένο δοχείο φυτών - Μικρός κήπος: 13 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Είμαι φοιτητής από την Τεχνολογία Πολυμέσων και Επικοινωνιών στο Howest Kortrijk. Για την τελική μας εργασία, έπρεπε να αναπτύξουμε ένα έργο IoT της δικής μας επιλογής.
Lookάχνοντας γύρω για ιδέες, αποφάσισα να φτιάξω κάτι χρήσιμο για τη μητέρα μου που λατρεύει την καλλιέργεια φυτών και άρχισα να δουλεύω σε ένα αυτοματοποιημένο δοχείο φυτών.
Οι κύριες εργασίες για αυτό το αυτοματοποιημένο δοχείο φυτών, Little Garden, είναι:
-
Μετρήστε το
- Θερμοκρασία
- Ελαφριά ένταση
- Υγρασία
- Υγρασία εδάφους
Αποθηκεύστε τις μετρήσεις σε μια βάση δεδομένων
Βελτιώστε τις συνθήκες για την ανάπτυξη του φυτού εάν μια ορισμένη τιμή είναι πολύ χαμηλή
Αφήστε τη συσκευή να παρακολουθείται και να διαχειρίζεται μέσω ενός ιστότοπου
Δεν χρειάζεται να ακολουθείται κάθε βήμα μέχρι το σημείο. Πολλά από αυτά που συμβαίνουν μπορεί να είναι προσωπικές σας προτιμήσεις ή να βελτιωθούν. Αυτή η κατασκευή έγινε με τρόπο ώστε τα μέρη να μπορούν να ανακτηθούν στη συνέχεια, οπότε ίσως θελήσετε να προσεγγίσετε την επανάληψή σας διαφορετικά για να γίνει πιο μόνιμη
Βήμα 1: Προμήθειες
Τα περισσότερα εφόδια για αυτό το έργο δεν είναι πολύ δύσκολο να αποκτηθούν, αν και στην περίπτωσή μου δούλεψα με πολλά ανακυκλωμένα υλικά. Έπρεπε επίσης να διασφαλίσω ότι θα μπορούσα να ανακτήσω κάποια υλικά μετά.
Βασικά συστατικά:
- Raspberry Pi 4 μοντέλο Β
- Τροφοδοτικό Raspberry Pi
- Raspberry Pi T-τσαγκάρης
- Κάρτα micro SD 16 GB
- Τροφοδοσία Breadboard με 3,3V και 5V
- Breadboard
- Τροφοδοσία 12V
Αισθητήρες:
- DHT11: Αισθητήρας υγρασίας και θερμοκρασίας
- BH1750: Αισθητήρας έντασης φωτός
- Αισθητήρας υγρασίας εδάφους
- MCP3008
Στοιχεία ενεργοποιητή:
- Αντλία νερού 220V
- Λωρίδα LED 12V
- Ενότητα ρελέ Velleman
- ΣΥΜΒΟΥΛΗ 50: NPN τρανζίστορ
- Οθόνη 16x2 LCD-moduke
- PCF8574a
Αντιστάσεις:
- 3 χ 330 Ohm αντιστάσεις
- Αντίσταση 1 x 5k Ohm
- 2 αντιστάσεις 10k Ohm
- Αντίσταση 1 x 1k Ohm
- 1 x 10k αντίσταση Potentio
Υλικά:
- Προκατασκευασμένο δοχείο θερμοκηπίου/φυτών
- Κουτί σύνδεσης
- Πλαστικό μπουκάλι νερό
- Περιστρεφόμενα
- Καλώδια βραχυκυκλωτήρων + κανονικό σύρμα
- Skrews
- Κολλητή συγκόλλησης + σωλήνες συρρίκνωσης θερμότητας
- Κολλητή πάπιας διπλής όψης
- Χρώμα
Εργαλεία:
- Όπλο κόλλας
- Τρυπάνι
- Πριονολεπίδα
- Συγκολλητικό σίδερο
- Κόπτης κουτιού
- Πινελο ΖΩΓΡΑΦΙΚΗΣ
Το τακτοποιημένο σε αυτό το έργο είναι ότι μπορεί να επεκταθεί ή να απλοποιηθεί, προσθέτοντας/αφαιρώντας στοιχεία και ελαφρά τροποποιώντας τον κώδικα. Για παράδειγμα, αντικαθιστώντας την αντλία 220V με αντλία 12V, μπορείτε να αφαιρέσετε έναν προσαρμογέα ρεύματος από τη συσκευή.
Βήμα 2: Σχήμα Fritzing
Ο πίνακας ψωμιού και τα ηλεκτρικά σχήματα για τη συσκευή φαίνονται παραπάνω. Εδώ μπορείτε να δείτε πώς συνδέονται όλα τα στοιχεία μεταξύ τους.
Μια γενική εξήγηση για το πώς λειτουργούν τα συστατικά:
- Το DHT11 μετρά την υγρασία του αέρα σε % και τη θερμοκρασία σε ° C. Η επικοινωνία μαζί του γίνεται με I2C bu.
- Το BH1750 μετρά την ένταση του φωτός σε lux. Η επικοινωνία γίνεται από ένα δίαυλο I2C
- Ο αισθητήρας υγρασίας του εδάφους δημιουργεί ένα ψηφιακό σήμα που μετατρέπεται από το MCP3008 σε αναγνώσιμο ψηφιακό σήμα για το Raspberry Pi
- Η μονάδα LCD 16x2 εμφανίζει τις διευθύνσεις IP από το Pi, η μία μετά την άλλη. Είναι συνδεδεμένο με ένα PCF8574a που λαμβάνει ένα σήμα από το Raspberry Pi που θα το μετατρέψει σε έναν αριθμό σημάτων για τις ακίδες bit της οθόνης. Οι ακίδες E και RS από την οθόνη LCD συνδέονται απευθείας με το Pi. Η αντίσταση potentio καθορίζει τη φωτεινότητα της οθόνης.
- Η αντλία νερού είναι συνδεδεμένη σε ένα ρελέ που βρίσκεται μεταξύ της και είναι στην τροφοδοσία/πρίζα 220V. Το Raspberry Pi μπορεί να στείλει ένα σήμα στο ρελέ για να κλείσει το ηλεκτρικό κύκλωμα και να ενεργοποιήσει την αντλία.
- Η λωρίδα LED είναι συνδεδεμένη στο τροφοδοτικό 12V και στο TIP 50 (τρανζίστορ NPN) που αλλάζει το ηλεκτρικό ρεύμα. Η αντίσταση 1k Ohm χρησιμοποιείται για τον περιορισμό της αντλούμενης ισχύος από το Raspberry Pi, διαφορετικά θα τηγανιζόταν πολύ τραγανό.
Βήμα 3: Προετοιμάστε το Raspberry Pi
Εάν δεν έχετε ακόμη μία, θα πρέπει να βάλετε μία από τις εικόνες του Raspberry Pi OS στην κάρτα SD. Δεν συνιστώ τη χρήση του Lite, καθώς αυτό μου προκάλεσε προβλήματα στην αρχή. Στη συνέχεια, θα πρέπει να βεβαιωθείτε ότι το Pi σας είναι ενημερωμένο χρησιμοποιώντας τις ακόλουθες εντολές ενώ το Pi είναι συνδεδεμένο στο διαδίκτυο:
- sudo apt-get ενημέρωση
- sudo apt-get αναβάθμιση
Στη συνέχεια, μπορείτε να ενεργοποιήσετε ή να εγκαταστήσετε τα πακέτα για να λειτουργήσει το έργο, είτε μέσω raspi-config είτε μέσω εντολών.
- SPI
- I2C
- MySQL: επόμενο βήμα
- SocketIO: pip install flask-socketio
Μετά τη ρύθμιση, μπορείτε να προσθέσετε τα απαραίτητα αρχεία που είναι γραμμένα σε html, CSS, Javascript και Python. Όλος ο κωδικός μου μπορεί να βρεθεί στο αποθετήριο github μου.
Βήμα 4: Μοντέλο βάσης δεδομένων - MySQL
Παρακάτω μπορείτε να δείτε το διάγραμμα ERD το οποίο φιλοξενείται μέσω της MariaDB. Σας συνιστώ να ακολουθήσετε αυτόν τον οδηγό εγκατάστασης της MariaDB, όχι μόνο για να εγκαταστήσετε το MariaDB, αλλά και για να βεβαιωθείτε ότι το Pi σας προστατεύεται.
Για άτομα που θέλουν να καταλάβουν, η βάση δεδομένων λειτουργεί ως εξής:
Οι μετρήσεις και οι εναλλαγές ενεργοποιητή αποθηκεύονται ως γραμμές στον πίνακα Metingen.
- metingId = Αναγνωριστικό της γραμμής μέτρησης/εναλλαγής
- deviceId = Αναγνωριστικό της συσκευής που είναι υπεύθυνη για αυτήν τη σειρά στον πίνακα
-
waarde = τιμή της μέτρησης του αισθητήρα ή της εναλλαγής ενεργοποιητή
- αισθητήρας: τιμή της μέτρησης στις αντίστοιχες μονάδες
- ενεργοποιητές: 0 = OFF και 1 = ON
- commentaar = σχόλια που χρησιμοποιούνται για την προσθήκη επιπλέον πληροφοριών, όπως σφάλματα
- datum = η ημερομηνία και η ώρα κατά την οποία πραγματοποιήθηκε η μέτρηση/εναλλαγή
Οι ρυθμίσεις για τη συσκευή αποθηκεύονται στις Ρυθμίσεις.
- settingId = Αναγνωριστικό αυτής της σειράς και η τιμή ρύθμισης
- deviceID = ID της αντίστοιχης συσκευής/αισθητήρα
- waarde = τιμή της ρύθμισης
- type = type of the settin, είναι μέγιστο ή ελάχιστο;
Τελευταίο αλλά όχι λιγότερο σημαντικό, ο πίνακας Συσκευές περιέχει πληροφορίες για τους αισθητήρες και τους ενεργοποιητές.
- deviceId = Αναγνωριστικό της συσκευής σε αυτόν τον πίνακα
- naam = όνομα της συσκευής/εξαρτήματος
- merk = μάρκα
- prijs = τιμή του συστατικού
- beschrijving = περίληψη του συστατικού
- eenheid = μονάδα για τις μετρημένες τιμές
- typeDevice = καθορίζει αν το στοιχείο είναι αισθητήρας ή ενεργοποιητής
Βήμα 5: Frontend: Ρύθμιση του διακομιστή ιστοσελίδων
Το Pi θα απαιτήσει από εσάς να εγκαταστήσετε τον διακομιστή ιστού Apache για να εκτελέσετε τον διακομιστή ιστού για αυτήν τη συσκευή. Αυτό μπορεί να γίνει με την ακόλουθη εντολή:
sudo apt-get install apache2.
Μόλις γίνει αυτό, μπορείτε να μεταβείτε στο φάκελο:/var/www/html. Εδώ θα χρειαστεί να τοποθετήσετε όλο τον κωδικό του προσώπου. Στη συνέχεια, μπορείτε να αποκτήσετε πρόσβαση στον ιστότοπο κάνοντας περιήγηση στη διεύθυνση IP.
Βήμα 6: Backend
Για να εκτελέσετε το backend, θα χρειαστεί να εκτελέσετε το αρχείο app.py, είτε χειροκίνητα είτε δημιουργώντας μια υπηρεσία για αυτό στο Pi, ώστε να ξεκινά αυτόματα.
Όπως μπορείτε να παρατηρήσετε, υπάρχουν αρκετά αρχεία. Ξεχώρισα τον κώδικα όσο μπορούσα για να έχω μια σαφή εικόνα και οργάνωση του κώδικα.
Μια σύντομη εξήγηση:
app.py: Το κύριο αρχείο όπου συνδέεται η βάση δεδομένων, ο κωδικός υλικού και ο κώδικας backend
config.py: Το αρχείο διαμόρφωσης για τα databaseRepositories
Αποθήκες: Για πρόσβαση στο αποθετήριο δεδομένων
-
Βοηθός
- devices_id: κλάσεις που βοηθούν στον εντοπισμό των πληροφοριών της συσκευής στη βάση δεδομένων
- LCD: για εκτέλεση PCF και LCD
- Ενεργοποιητές: μαθήματα για τη λειτουργία των ενεργοποιητών
- Αισθητήρες: μαθήματα για τη λειτουργία των αισθητήρων
Βήμα 7: Τοποθέτηση της λωρίδας LED
Έκοψα ένα κομμάτι της λωρίδας LED και το κόλλησα στην κορυφή του κουτιού του θερμοκηπίου. Η λωρίδα που χρησιμοποίησα θα μπορούσε να κοπεί σε πολλές θέσεις και να επανασυνδεθεί, ώστε να μπορείτε να τοποθετήσετε πολλαπλές λωρίδες και να τις συνδέσετε ξανά στη συνέχεια μέσω καλωδίων, επιτρέποντας να φωτιστεί περισσότερος χώρος.
Βήμα 8: Τοποθέτηση των σωλήνων
Οι σωλήνες θα μπορούσαν να τοποθετηθούν με διάφορους τρόπους, αλλά στην περίπτωσή μου τους έβαλα στο πλάι του πυθμένα, κρατώντας τους όσο το δυνατόν πιο μακριά από τα άλλα ηλεκτρονικά και αφήνοντας το νερό να ρέει απλώς στη βρωμιά.
Βήμα 9: Τοποθέτηση της οθόνης LCD
Έκοψα ολόκληρο το καπάκι του κουτιού διακλάδωσης με μια πριονόλαμα, δημιουργώντας ένα άνοιγμα αρκετά μεγάλο για να περάσει η οθόνη, αλλά αρκετά μικρό ώστε το PCB να παραμείνει πίσω του. Στη συνέχεια, στερεώθηκε στο καπάκι χρησιμοποιώντας στραβές.
Η οθόνη LCD εμφανίζει τις διευθύνσεις IP του Raspberry Pi, επιτρέποντάς σας να γνωρίζετε ποια διεύθυνση μπορείτε να χρησιμοποιήσετε για να περιηγηθείτε στον ιστότοπο.
Βήμα 10: Τοποθέτηση των αισθητήρων και σύνδεση της λωρίδας LED
Χρησιμοποιώντας τα σχήματα ψύξης, κόλλησα συνδέσεις μεταξύ των καλωδίων και τοποθέτησα τις αντιστάσεις μέσα στα σύρματα, χρησιμοποιώντας σωλήνες συρρίκνωσης θερμότητας για να τα απομονώσω.
Κόπηκαν τρύπες στις πλευρές του καπακιού και του πυθμένα του θερμοκηπίου για να στερεωθούν οι περιστρεφόμενοι, μέσω των οποίων τράβηξα τα καλώδια για τους αισθητήρες και τη λωρίδα LED.
Ομαδοποίησα τα σύρματα κατά λειτουργία. Η τάση από τα καλώδια και τους σωλήνες συρρίκνωσης συγκράτησε τους αισθητήρες. Έπρεπε μόνο να χρησιμοποιήσω κόλλα στα καλώδια για το DHT11, επειδή αυτό επεκτάθηκε περαιτέρω.
Βήμα 11: Καλωδίωση του Pi
Έκοψα τρύπες στο πλάι του κουτιού διακλάδωσης για να επιτρέψω στα καλώδια να περάσουν αργότερα.
Μετά από αυτό, τοποθέτησα το breadboard (με το T-cobbler, PCF8574a, MCP3008, ρυθμιζόμενη αντίσταση και TIP50), ρελέ και Raspberry Pi στο κάτω μέρος του κουτιού διακλάδωσης, το οποίο ήταν καλυμμένο με διπλή όψη πάπιας. Το τροφοδοτικό δεν χωρούσε στο breadboard, οπότε έπρεπε να το βάλω στο πλάι και χρησιμοποίησα καλώδια για να το συνδέσω με το breadboard.
Τελικά τράβηξα τον προσαρμογέα, τον αισθητήρα και τα καλώδια ενεργοποιητή μέσα από τις τρύπες που συνέδεαν τα καλώδια με το breadboard, το Raspberry Pi και άλλα εξαρτήματα. Το σύρμα της αντλίας άνοιξε για να μπορέσω να τοποθετήσω τα άκρα μέσα στο ρελέ, ώστε να μπορεί να χρησιμοποιηθεί ως διακόπτης.
Βήμα 12: Παρασκευή δοχείου για νερό
Έφτιαξα ένα δοχείο νερού από ένα πλαστικό μπουκάλι νερού 1 λίτρου κόβοντας το πάνω μέρος του με έναν κόπτη κουτιού και βάφοντάς το για καλύτερη εμφάνιση. Η αντλία νερού τοποθετήθηκε στη συνέχεια μέσα. Λόγω του κανόνα των αγγείων που επικοινωνούν, το νερό θα μπορούσε δυνητικά να ρέει μέσα από τους σωλήνες, αλλά το να κρατάτε τον σωλήνα ψηλά διορθώνει το πρόβλημα.
Βήμα 13: Τελικό αποτέλεσμα
Η στιγμή που περίμενες. Τώρα μπορείτε να τοποθετήσετε τη βρωμιά και τους σπόρους μέσα στο κουτί του θερμοκηπίου και να αφήσετε τη συσκευή να αναλάβει. Μπορείτε να παρακολουθείτε την κατάσταση της συσκευής από τον ιστότοπο και να ορίσετε τις βέλτιστες τιμές για τις συνθήκες φωτισμού και εδάφους.
Σας συνιστώ να ποτίζετε το χώμα πρώτα χειροκίνητα, καθώς κάποια βρωμιά μπορεί να στεγνώσει αρκετά στην αρχή. Μερικές αντλίες φαίνονται επίσης να ποτίζουν πολύ αργά, αλλά πρέπει να είστε πολύ προσεκτικοί καθώς θα γεμίσει πιο γρήγορα από ό, τι θα περιμένατε. Ένας κορεσμός άνω του 80% μπορεί να κάνει το έδαφος πολύ μουσκεμένο. Και βεβαιωθείτε ότι ο αισθητήρας υγρασίας του εδάφους είναι αρκετά βαθύς.
Συνιστάται:
Αυτοματοποιημένο Mandalorian the Child: 10 βήματα (με εικόνες)
Αυτοματοποιημένο Mandalorian the Child: Αγοράσατε αυτό το νέο παιχνίδι (για κάποιον εκτός από εσάς) και θα θέλατε να το βάλετε στο " ενεργό " οθόνη χωρίς βλάβη στη μονάδα. Δυστυχώς, λειτουργεί μόνο όταν χτυπάτε το κεφάλι του. Εάν κολλήσετε ένα κομμάτι μεταλλικό φύλλο στην κορυφή του
Σχεδιασμός ενυδρείου με αυτοματοποιημένο έλεγχο βασικών παραμέτρων: 4 βήματα (με εικόνες)
Σχεδιασμός ενυδρείου με αυτοματοποιημένο έλεγχο βασικών παραμέτρων: Εισαγωγή Σήμερα, η φροντίδα θαλάσσιου ενυδρείου είναι διαθέσιμη σε κάθε ενυδρείο. Το πρόβλημα της απόκτησης ενυδρείου δεν είναι δύσκολο. Αλλά για την πλήρη υποστήριξη της ζωής των κατοίκων, προστασία από τεχνικές βλάβες, εύκολη και γρήγορη συντήρηση και φροντίδα
Αυτοματοποιημένο μοντέλο διάταξης σιδηροδρόμων που εκτελεί δύο τρένα (V2.0) - Βασισμένο στο Arduino: 15 βήματα (με εικόνες)
Αυτοματοποιημένο μοντέλο διάταξης σιδηροδρόμων που εκτελεί δύο τρένα (V2.0) | Βασισμένο στο Arduino: Η αυτοματοποίηση μοντέλων διατάξεων σιδηροδρόμων χρησιμοποιώντας μικροελεγκτές Arduino είναι ένας πολύ καλός τρόπος συγχώνευσης μικροελεγκτών, προγραμματισμού και μοντέλου σιδηροδρόμου σε ένα χόμπι. Υπάρχουν πολλά έργα διαθέσιμα για την αυτόνομη λειτουργία ενός τρένου σε ένα μοντέλο σιδηρόδρομου
Garduino - ο έξυπνος κήπος με Arduino: 4 βήματα (με εικόνες)
Garduino - ο έξυπνος κήπος με το Arduino: Αυτές τις μέρες, κανείς δεν είναι αθώος. Υπάρχει κάποιος που δεν σκότωσε κατά λάθος ένα φυτό ;; Είναι δύσκολο να κρατήσεις τα φυτά σου ζωντανά. Αγοράζετε ένα νέο φυτό και στη χειρότερη περίπτωση, απλά ξεχνάτε να το ποτίζετε. Στην καλύτερη περίπτωση, θυμάστε ότι υπάρχει, αλλά το κάνετε
Αυτόματος κήπος ποτιστικός - Τρισδιάστατη εκτύπωση - Arduino: 10 βήματα (με εικόνες)
Αυτόματος κήπος ποτιστικός | Τρισδιάστατη εκτύπωση | Arduino: Είμαι έντονος κηπουρός, αλλά το πότισμα των φυτών σας με το χέρι κατά τη διάρκεια της ξηρασίας απαιτεί λίγο χρόνο. Αυτό το έργο με απαλλάσσει από το πότισμα, ώστε να μπορώ να δουλέψω σε άλλα μου έργα. Είναι επίσης εξαιρετικό στη φροντίδα του κήπου ενώ λείπετε από το σπίτι και το φυτό