Πίνακας περιεχομένων:
- Βήμα 1: Απαιτούνται εξαρτήματα
- Βήμα 2: Γλώσσα και πρωτόκολλο
- Βήμα 3: Eclipse Mosquitto MQTT Broker
- Βήμα 4: Ροή δεδομένων σε ολόκληρο το έργο
- Βήμα 5: Σύνδεση αισθητήρων με το NodeMCU
- Βήμα 6: Σύνδεση της υποβρύχιας αντλίας νερού με το ESP8266
- Βήμα 7: Εγκατάσταση Mosquitto Broker & Running Python Program στο Raspberry Pi
- Βήμα 8: Πώς λειτουργεί το MQTT;
- Βήμα 9: Προγραμματισμός NodeMCU και ESP8266
- Βήμα 10: Σχεδιασμός ιστοσελίδας και σύνδεση με τη βάση δεδομένων SQL
- Βήμα 11: Ολοκληρωμένη εργασία
Βίντεο: Green House Automation: 11 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Ο αυτοματισμός του θερμοκηπίου είναι ένα έργο όπου τρεις παράμετροι ενός θερμοκηπίου, δηλαδή η υγρασία του εδάφους, η θερμοκρασία και η υγρασία, παρακολουθούνται από τον χρήστη από απόσταση, απλά χρησιμοποιώντας ένα πρόγραμμα περιήγησης ιστού.
Βήμα 1: Απαιτούνται εξαρτήματα
Ορισμένα βασικά συστατικά που απαιτούνται παρατίθενται παρακάτω
1. Βατόμουρο PI Μοντέλο Β
2. Πίνακας Ανάπτυξης NodeMCU
3. Ενότητα ESP8266 Wifi
4. Αισθητήρας υγρασίας
5. Αισθητήρας θερμοκρασίας & υγρασίας DHT11
6. Ρελέ μονής καναλιού 5V
7. Υποβρύχια αντλία νερού 5V
8. Πίνακας ψωμιού
9. Μονάδα τροφοδοσίας πίνακα ψωμιού
Βήμα 2: Γλώσσα και πρωτόκολλο
- Η γλώσσα C χρησιμοποιείται για τους μικροελεγκτές.
- MQTT Messaging: Το MQTT σημαίνει MQ Telemetry Transport. Είναι ένα πρωτόκολλο δημοσίευσης/εγγραφής, εξαιρετικά απλό και ελαφρύ, το οποίο έχει σχεδιαστεί για περιορισμένες συσκευές και δίκτυα χαμηλού εύρους ζώνης, μεγάλης καθυστέρησης ή αναξιόπιστων δικτύων. Οι αρχές σχεδιασμού είναι να ελαχιστοποιήσουν το εύρος ζώνης δικτύου και τις απαιτήσεις πόρων συσκευής, ενώ παράλληλα προσπαθούν να διασφαλίσουν την αξιοπιστία και κάποιο βαθμό διασφάλισης της παράδοσης. Αυτές οι αρχές αποδεικνύουν επίσης ότι καθιστούν το πρωτόκολλο ιδανικό για τον αναδυόμενο κόσμο «συνδεδεμένων συσκευών από μηχανή σε μηχανή» (M2M) ή «Διαδίκτυο των πραγμάτων» και για εφαρμογές σε κινητές συσκευές όπου το εύρος ζώνης και η ισχύς της μπαταρίας είναι κορυφαία.
- Το πρόγραμμα Python χρησιμοποιείται για την αυτοματοποίηση της σύνδεσης ροής νερού και βάσης δεδομένων.
Βήμα 3: Eclipse Mosquitto MQTT Broker
Εδώ χρησιμοποίησα το Mosquitto MQTT Broker για την εύκολη επικοινωνία μηνυμάτων μεταξύ των κόμβων.
Το Eclipse Mosquitto είναι ένας μεσίτης ανοιχτού κώδικα (με άδεια EPL/EDL) που υλοποιεί τις εκδόσεις πρωτοκόλλου MQTT 5.0, 3.1.1 και 3.1. Το Mosquitto είναι ελαφρύ και είναι κατάλληλο για χρήση σε όλες τις συσκευές από υπολογιστές μικρής ισχύος σε μονό πίνακα έως πλήρεις διακομιστές.
Το πρωτόκολλο MQTT παρέχει μια ελαφριά μέθοδο εκτέλεσης μηνυμάτων χρησιμοποιώντας μοντέλο δημοσίευσης/εγγραφής. Αυτό το καθιστά κατάλληλο για μηνύματα στο Internet of Things, όπως με αισθητήρες χαμηλής ισχύος ή κινητές συσκευές όπως τηλέφωνα, ενσωματωμένους υπολογιστές ή μικροελεγκτές.
Το έργο Mosquitto παρέχει επίσης μια βιβλιοθήκη C για την εφαρμογή πελατών MQTT και τους πολύ δημοφιλείς πελάτες MQTT της γραμμής εντολών mosquitto_pub και mosquitto_sub.
Βήμα 4: Ροή δεδομένων σε ολόκληρο το έργο
Στην παραπάνω εικόνα οι κόμβοι είναι
- NodeMCU
- Βατόμουρο PI
- ESP8266
Το NodeMCU είναι το αισθητήριο μέρος του Green House και το ESP8266 είναι το ενεργοποιητικό μέρος που παρέχει νερό όταν το έδαφος χρειάζεται νερό σύμφωνα με τους αισθητήρες.
Το Raspberry PI περιέχει τον Mosquitto Broker και έναν πελάτη Python που εγγράφει τα μηνύματα που προέρχονται από τον MQTT Broker και αποθηκεύει τα δεδομένα σε έναν SQL server.
Βήμα 5: Σύνδεση αισθητήρων με το NodeMCU
Ο αισθητήρας θερμοκρασίας και υγρασίας DHT11 και ο αισθητήρας υγρασίας νερού μπορούν να λειτουργούν στα 3,3 βολτ.
Το NodeMCU δεν μπορεί να παρέχει περισσότερο από 3,3 volt. Έτσι, οι αισθητήρες μπορούν να συνδεθούν απευθείας με την πλακέτα μικροελεγκτή NodeMCU.
Βήμα 6: Σύνδεση της υποβρύχιας αντλίας νερού με το ESP8266
Μια υποβρύχια αντλία νερού χρησιμοποιείται για την παροχή νερού όποτε χρειάζεται.
Η αντλία νερού χρειάζεται τροφοδοσία 5 βολτ για τη λειτουργία της.
Για τη σύνδεση του κινητήρα απαιτείται ένας ρελέ ενός καναλιού. Όταν ενεργοποιηθεί ο πείρος GPIO2 του ESP8266, το ρελέ ενεργοποιείται και τροφοδοτεί αυτόματα το νερό χρησιμοποιώντας την υποβρύχια αντλία νερού.
Εδώ παρέχεται εξωτερική τροφοδοσία στην πλακέτα ESP8266, στο ρελέ και στην υποβρύχια αντλία νερού.
Η πλήρης σύνδεση υλικού μου βρίσκεται στην παραπάνω εικόνα.
Βήμα 7: Εγκατάσταση Mosquitto Broker & Running Python Program στο Raspberry Pi
Ακολουθούν τα βήματα για την εγκατάσταση του μεσίτη Mosquitto στο Raspberry PI
Ανοίξτε το τερματικό και πληκτρολογήστε τις ακόλουθες εντολές
sudo apt-add-repository ppa: mosquitto-dev/mosquitto-ppa
sudo apt-get ενημέρωση
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
Θα πρέπει αυτόματα να ξεκινήσει το κουνούπι.
Για διακοπή και εκκίνηση της υπηρεσίας που έπρεπε να χρησιμοποιήσω
υπηρεσία sudo stop κουνούπι
υπηρεσία sudo έναρξη κουνούπι
Οι περισσότεροι ιστότοποι που ανακάλυψα χρησιμοποιούσαν τη μορφή.
sudo /etc/init.d/mosquitto στάση
Βήμα 8: Πώς λειτουργεί το MQTT;
Το MQTT είναι ένα από τα πιο συχνά χρησιμοποιούμενα πρωτόκολλα σε έργα IoT. Σημαίνει το Message Queuing Telemetry Transport.
Επιπλέον, έχει σχεδιαστεί ως ένα ελαφρύ πρωτόκολλο ανταλλαγής μηνυμάτων που χρησιμοποιεί λειτουργίες δημοσίευσης/εγγραφής για την ανταλλαγή δεδομένων μεταξύ πελατών και διακομιστή. Επιπλέον, το μικρό του μέγεθος, η χαμηλή κατανάλωση ενέργειας, τα ελαχιστοποιημένα πακέτα δεδομένων και η ευκολία εφαρμογής καθιστούν το πρωτόκολλο ιδανικό για τον κόσμο «μηχανή σε μηχανή» ή «Διαδίκτυο των πραγμάτων».
Όπως κάθε άλλο πρωτόκολλο Διαδικτύου, το MQTT βασίζεται σε προγράμματα -πελάτες και διακομιστή. Ομοίως, ο διακομιστής είναι ο τύπος που είναι υπεύθυνος για τον χειρισμό των αιτημάτων του πελάτη για λήψη ή αποστολή δεδομένων μεταξύ τους. Ο διακομιστής MQTT ονομάζεται μεσίτης και οι πελάτες είναι απλώς οι συνδεδεμένες συσκευές. Έτσι:
* Όταν μια συσκευή (πελάτης) θέλει να στείλει δεδομένα στον μεσίτη, ονομάζουμε αυτήν τη λειτουργία "δημοσίευση".
* Όταν μια συσκευή (πελάτης) θέλει να λάβει δεδομένα από τον μεσίτη, ονομάζουμε αυτήν τη λειτουργία "εγγραφή".
Βήμα 9: Προγραμματισμός NodeMCU και ESP8266
Ακολουθεί ο πηγαίος κώδικας για τον πίνακα μικροελεγκτών NodeMCU και ESP8266
Βήμα 10: Σχεδιασμός ιστοσελίδας και σύνδεση με τη βάση δεδομένων SQL
Η ιστοσελίδα έχει σχεδιαστεί χρησιμοποιώντας HTML, CSS και γλώσσα PHP.
Η PHP χρησιμοποιείται για την εξαγωγή των μετρήσεων των αισθητήρων από τη βάση δεδομένων και την εμφάνισή τους στη σελίδα HTML.
Ένα πρόγραμμα python χρησιμοποιείται ως καρδιά αυτού του έργου.
Τα έργα που κάνει το πρόγραμμα python είναι τα εξής.
- Συντάσσεται σε ένα θέμα στο οποίο ο αισθητήρας στέλνει τις ενδείξεις του αισθητήρα.
- Δημοσιεύει την εντολή ενεργοποίησης/απενεργοποίησης αντλίας νερού στον μεσίτη MQTT.
- Αποθηκεύει την ανάγνωση του αισθητήρα σε μια βάση δεδομένων SQL.
Στην περίπτωσή μου, το πρόγραμμα python και η βάση δεδομένων SQL υπάρχουν σε φορητό υπολογιστή. Η ιστοσελίδα που τρέχει μέσω ενός Τοπικού κεντρικού υπολογιστή.
Ακολουθεί ο Πηγαίος κώδικας του προγράμματος python μου.
Βήμα 11: Ολοκληρωμένη εργασία
Ακολουθούν τα βήματα στα οποία συνεχίζεται η διαδικασία.
- Το NodeMCU λειτουργεί ως μέρος ανίχνευσης και διαβάζει τη θερμοκρασία, την υγρασία και το επίπεδο υγρασίας του εδάφους.
- Στέλνει τις αναγνώσεις στον μεσίτη MQTT με θέμα "Θέμα 1"
- Σε ένα φορητό υπολογιστή, το πρόγραμμα python λειτουργεί και εγγράφεται σε ένα θέμα "Θέμα 1" με τον μεσίτη MQTT.
- Όταν το NodeMCU στέλνει τις ενδείξεις τότε ο Mosquitto MQTT Broker στέλνει αμέσως τα δεδομένα στο πρόγραμμα python.
- Το πρόγραμμα Python υπολογίζει στη συνέχεια εάν υπάρχει ανάγκη για νερό στο Green House. Στη συνέχεια, αποθηκεύει τις ενδείξεις στη βάση δεδομένων SQL.
- Εάν απαιτείται νερό στο Green House, τότε το πρόγραμμα python δημοσιεύει το μήνυμα ενεργοποίησης/απενεργοποίησης της αντλίας νερού στον μεσίτη Mosquitto MQTT με θέμα "Θέμα 2"
- Το ESP8266 λειτουργεί ως ενεργοποιητής. Εγγραφεί στο θέμα "Θέμα 2" σε ποιο θέμα το πρόγραμμα python δημοσιεύει το μήνυμα. Όταν το πρόγραμμα python δημοσιεύσει οποιοδήποτε μήνυμα, τότε το μήνυμα μεταφέρεται αμέσως στο ESP8266. Σύμφωνα με το μήνυμα ενεργοποίησης/απενεργοποίησης, ενεργοποιήθηκε/απενεργοποιήθηκε η υποβρύχια αντλία νερού.
- Τελευταία φάση για να εμφανιστούν οι ζωντανές αναγνώσεις στην ιστοσελίδα. Η ιστοσελίδα λαμβάνει τα δεδομένα από τη βάση δεδομένων SQL στην οποία το πρόγραμμα python αποθηκεύει τα δεδομένα απευθείας και εμφανίζει τις αναγνώσεις στη σελίδα.
Συνιστάται:
Green Double Die: 11 Βήματα
Green Double Die: Αυτό το έργο είναι μια κατασκευή διπλής μήτρας με τεχνολογία CMOS από τους πάγκους της μέχρι τις πύλες της. Ξεκινώντας από τον διπλό μετρητή 4518, τις πύλες OR, ΚΑΙ και ΟΧΙ 4071, 4081 και 4049 αντίστοιχα, ενώ ένας χρονοδιακόπτης 555 παράγει μια μεταβλητή συχνότητα για την ολοκλήρωση
Παρακολούθηση του Green House με IOT: 5 βήματα
Παρακολούθηση Green House Με IOT: Όσον αφορά τη γεωργία, παρακολούθηση της θερμοκρασίας & Η υγρασία των φυτών είναι σημαντικός παράγοντας για την επιβίωσή τους. Επί του παρόντος, οι άνθρωποι χρησιμοποιούν θερμόμετρα προσαρτημένα σε ένα θερμοκήπιο, ώστε οι αγρότες να μπορούν να μετρήσουν τη θερμοκρασία. Ωστόσο, αυτή η χειροκίνητη εφαρμογή
Light Up Clock for Kids - Green Means Go! Κόκκινο, μείνετε στο κρεβάτι !!!: 5 βήματα (με εικόνες)
Light Up Clock for Kids - Green Means Go! Red, Stay in BED !!!: Τρελαθήκαμε χωρίς αρκετό ύπνο !!! Το 2χρονο παιδί μας δεν μπορούσε να καταλάβει πώς να " περιμένει το 7 " το ρολόι πριν βγει από το δωμάτιό του πρωί -πρωί. Ξυπνούσε νωρίς (εννοώ στις 5:27 το πρωί - " υπάρχει ένα 7 !!! "
Ultimate GREEN DIY Trackball Mouse From Junk: 10 Βήματα (με Εικόνες)
Ultimate GREEN DIY Trackball Mouse From Junk: Γεια σε όλους! Σήμερα θα χτίσουμε ένα Green DIY Trackball ποντίκι από παλιά σκουπίδια που έχουμε ξαπλωμένα. Αυτό το έργο είναι πράσινο για 3 λόγους: Είναι κατασκευασμένο από σκουπίδια, επομένως είναι φιλικό προς το περιβάλλον ενσωμάτωσα πράσινα LED στο σχέδιο (γιατί
LEGO Green Screen Light Box: 4 βήματα
LEGO Green Screen Light Box: Ένας φίλος είχε ενδιαφερθεί να κάνει ταινίες μικρού μήκους με μίνι φιγούρες LEGO, έτσι ήθελα να του κάνω κάτι που θα βοηθούσε για τα γενέθλιά του. Ανάλογα με το χρώμα των αντικειμένων που θα φωτογραφήσετε, μπορεί να θέλετε μπλε ή καυτό ροζ φόντο αντί για