Πίνακας περιεχομένων:

Αυτοματοποιημένο δοχείο φυτών - Μικρός κήπος: 13 βήματα (με εικόνες)
Αυτοματοποιημένο δοχείο φυτών - Μικρός κήπος: 13 βήματα (με εικόνες)

Βίντεο: Αυτοματοποιημένο δοχείο φυτών - Μικρός κήπος: 13 βήματα (με εικόνες)

Βίντεο: Αυτοματοποιημένο δοχείο φυτών - Μικρός κήπος: 13 βήματα (με εικόνες)
Βίντεο: Horizon: Forbidden West (The Movie) 2024, Ιούλιος
Anonim
Αυτοματοποιημένο δοχείο φυτών - Little Garden
Αυτοματοποιημένο δοχείο φυτών - Little Garden

Είμαι φοιτητής από την Τεχνολογία Πολυμέσων και Επικοινωνιών στο 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

Fritzing Schematic
Fritzing Schematic
Fritzing Schematic
Fritzing Schematic

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

Μια γενική εξήγηση για το πώς λειτουργούν τα συστατικά:

  • Το 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
Προετοιμάστε το Raspberry Pi

Εάν δεν έχετε ακόμη μία, θα πρέπει να βάλετε μία από τις εικόνες του Raspberry Pi OS στην κάρτα SD. Δεν συνιστώ τη χρήση του Lite, καθώς αυτό μου προκάλεσε προβλήματα στην αρχή. Στη συνέχεια, θα πρέπει να βεβαιωθείτε ότι το Pi σας είναι ενημερωμένο χρησιμοποιώντας τις ακόλουθες εντολές ενώ το Pi είναι συνδεδεμένο στο διαδίκτυο:

  1. sudo apt-get ενημέρωση
  2. sudo apt-get αναβάθμιση

Στη συνέχεια, μπορείτε να ενεργοποιήσετε ή να εγκαταστήσετε τα πακέτα για να λειτουργήσει το έργο, είτε μέσω raspi-config είτε μέσω εντολών.

  • SPI
  • I2C
  • MySQL: επόμενο βήμα
  • SocketIO: pip install flask-socketio

Μετά τη ρύθμιση, μπορείτε να προσθέσετε τα απαραίτητα αρχεία που είναι γραμμένα σε html, CSS, Javascript και Python. Όλος ο κωδικός μου μπορεί να βρεθεί στο αποθετήριο github μου.

Βήμα 4: Μοντέλο βάσης δεδομένων - MySQL

Μοντέλο βάσης δεδομένων - MySQL
Μοντέλο βάσης δεδομένων - 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: Ρύθμιση του διακομιστή ιστοσελίδων

Frontend: Ρύθμιση του διακομιστή ιστοσελίδων
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
Τοποθέτηση της λωρίδας LED

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

Βήμα 8: Τοποθέτηση των σωλήνων

Τοποθέτηση των σωλήνων
Τοποθέτηση των σωλήνων

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

Βήμα 9: Τοποθέτηση της οθόνης LCD

Τοποθέτηση της οθόνης LCD
Τοποθέτηση της οθόνης LCD

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

Η οθόνη LCD εμφανίζει τις διευθύνσεις IP του Raspberry Pi, επιτρέποντάς σας να γνωρίζετε ποια διεύθυνση μπορείτε να χρησιμοποιήσετε για να περιηγηθείτε στον ιστότοπο.

Βήμα 10: Τοποθέτηση των αισθητήρων και σύνδεση της λωρίδας LED

Τοποθέτηση των αισθητήρων και σύνδεση της λωρίδας LED
Τοποθέτηση των αισθητήρων και σύνδεση της λωρίδας LED
Τοποθέτηση των αισθητήρων και σύνδεση της λωρίδας LED
Τοποθέτηση των αισθητήρων και σύνδεση της λωρίδας LED

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

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

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

Βήμα 11: Καλωδίωση του Pi

Wiring Up the Pi
Wiring Up the Pi
Wiring Up the Pi
Wiring Up the Pi
Wiring Up the Pi
Wiring Up the Pi

Έκοψα τρύπες στο πλάι του κουτιού διακλάδωσης για να επιτρέψω στα καλώδια να περάσουν αργότερα.

Μετά από αυτό, τοποθέτησα το breadboard (με το T-cobbler, PCF8574a, MCP3008, ρυθμιζόμενη αντίσταση και TIP50), ρελέ και Raspberry Pi στο κάτω μέρος του κουτιού διακλάδωσης, το οποίο ήταν καλυμμένο με διπλή όψη πάπιας. Το τροφοδοτικό δεν χωρούσε στο breadboard, οπότε έπρεπε να το βάλω στο πλάι και χρησιμοποίησα καλώδια για να το συνδέσω με το breadboard.

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

Βήμα 12: Παρασκευή δοχείου για νερό

Παρασκευή δοχείου για νερό
Παρασκευή δοχείου για νερό

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

Βήμα 13: Τελικό αποτέλεσμα

Τελικό αποτέλεσμα
Τελικό αποτέλεσμα
Τελικό αποτέλεσμα
Τελικό αποτέλεσμα

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

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

Συνιστάται: