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

Green House Automation: 11 Βήματα
Green House Automation: 11 Βήματα

Βίντεο: Green House Automation: 11 Βήματα

Βίντεο: Green House Automation: 11 Βήματα
Βίντεο: Home Assistant. Урок 9.4 ADD-ON - Xiaomi Gateway 3, интеграция в zigbee2mqtt 2024, Νοέμβριος
Anonim
Αυτοματισμός Green House
Αυτοματισμός Green House

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

Βήμα 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

Μεσίτης Eclipse Mosquitto MQTT
Μεσίτης Eclipse Mosquitto MQTT

Εδώ χρησιμοποίησα το 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: Ροή δεδομένων σε ολόκληρο το έργο

Στην παραπάνω εικόνα οι κόμβοι είναι

  1. NodeMCU
  2. Βατόμουρο PI
  3. ESP8266

Το NodeMCU είναι το αισθητήριο μέρος του Green House και το ESP8266 είναι το ενεργοποιητικό μέρος που παρέχει νερό όταν το έδαφος χρειάζεται νερό σύμφωνα με τους αισθητήρες.

Το Raspberry PI περιέχει τον Mosquitto Broker και έναν πελάτη Python που εγγράφει τα μηνύματα που προέρχονται από τον MQTT Broker και αποθηκεύει τα δεδομένα σε έναν SQL server.

Βήμα 5: Σύνδεση αισθητήρων με το NodeMCU

Σύνδεση αισθητήρων με το NodeMCU
Σύνδεση αισθητήρων με το NodeMCU

Ο αισθητήρας θερμοκρασίας και υγρασίας DHT11 και ο αισθητήρας υγρασίας νερού μπορούν να λειτουργούν στα 3,3 βολτ.

Το NodeMCU δεν μπορεί να παρέχει περισσότερο από 3,3 volt. Έτσι, οι αισθητήρες μπορούν να συνδεθούν απευθείας με την πλακέτα μικροελεγκτή NodeMCU.

Βήμα 6: Σύνδεση της υποβρύχιας αντλίας νερού με το ESP8266

Σύνδεση της υποβρύχιας αντλίας νερού με το ESP8266
Σύνδεση της υποβρύχιας αντλίας νερού με το ESP8266
Σύνδεση της υποβρύχιας αντλίας νερού με το ESP8266
Σύνδεση της υποβρύχιας αντλίας νερού με το 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
Πώς λειτουργεί το MQTT

Το MQTT είναι ένα από τα πιο συχνά χρησιμοποιούμενα πρωτόκολλα σε έργα IoT. Σημαίνει το Message Queuing Telemetry Transport.

Επιπλέον, έχει σχεδιαστεί ως ένα ελαφρύ πρωτόκολλο ανταλλαγής μηνυμάτων που χρησιμοποιεί λειτουργίες δημοσίευσης/εγγραφής για την ανταλλαγή δεδομένων μεταξύ πελατών και διακομιστή. Επιπλέον, το μικρό του μέγεθος, η χαμηλή κατανάλωση ενέργειας, τα ελαχιστοποιημένα πακέτα δεδομένων και η ευκολία εφαρμογής καθιστούν το πρωτόκολλο ιδανικό για τον κόσμο «μηχανή σε μηχανή» ή «Διαδίκτυο των πραγμάτων».

Όπως κάθε άλλο πρωτόκολλο Διαδικτύου, το MQTT βασίζεται σε προγράμματα -πελάτες και διακομιστή. Ομοίως, ο διακομιστής είναι ο τύπος που είναι υπεύθυνος για τον χειρισμό των αιτημάτων του πελάτη για λήψη ή αποστολή δεδομένων μεταξύ τους. Ο διακομιστής MQTT ονομάζεται μεσίτης και οι πελάτες είναι απλώς οι συνδεδεμένες συσκευές. Έτσι:

* Όταν μια συσκευή (πελάτης) θέλει να στείλει δεδομένα στον μεσίτη, ονομάζουμε αυτήν τη λειτουργία "δημοσίευση".

* Όταν μια συσκευή (πελάτης) θέλει να λάβει δεδομένα από τον μεσίτη, ονομάζουμε αυτήν τη λειτουργία "εγγραφή".

Βήμα 9: Προγραμματισμός NodeMCU και ESP8266

Ακολουθεί ο πηγαίος κώδικας για τον πίνακα μικροελεγκτών NodeMCU και ESP8266

Βήμα 10: Σχεδιασμός ιστοσελίδας και σύνδεση με τη βάση δεδομένων SQL

Η ιστοσελίδα έχει σχεδιαστεί χρησιμοποιώντας HTML, CSS και γλώσσα PHP.

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

Ένα πρόγραμμα python χρησιμοποιείται ως καρδιά αυτού του έργου.

Τα έργα που κάνει το πρόγραμμα python είναι τα εξής.

  1. Συντάσσεται σε ένα θέμα στο οποίο ο αισθητήρας στέλνει τις ενδείξεις του αισθητήρα.
  2. Δημοσιεύει την εντολή ενεργοποίησης/απενεργοποίησης αντλίας νερού στον μεσίτη MQTT.
  3. Αποθηκεύει την ανάγνωση του αισθητήρα σε μια βάση δεδομένων SQL.

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

Ακολουθεί ο Πηγαίος κώδικας του προγράμματος python μου.

Βήμα 11: Ολοκληρωμένη εργασία

Πλήρης Εργασία
Πλήρης Εργασία

Ακολουθούν τα βήματα στα οποία συνεχίζεται η διαδικασία.

  1. Το NodeMCU λειτουργεί ως μέρος ανίχνευσης και διαβάζει τη θερμοκρασία, την υγρασία και το επίπεδο υγρασίας του εδάφους.
  2. Στέλνει τις αναγνώσεις στον μεσίτη MQTT με θέμα "Θέμα 1"
  3. Σε ένα φορητό υπολογιστή, το πρόγραμμα python λειτουργεί και εγγράφεται σε ένα θέμα "Θέμα 1" με τον μεσίτη MQTT.
  4. Όταν το NodeMCU στέλνει τις ενδείξεις τότε ο Mosquitto MQTT Broker στέλνει αμέσως τα δεδομένα στο πρόγραμμα python.
  5. Το πρόγραμμα Python υπολογίζει στη συνέχεια εάν υπάρχει ανάγκη για νερό στο Green House. Στη συνέχεια, αποθηκεύει τις ενδείξεις στη βάση δεδομένων SQL.
  6. Εάν απαιτείται νερό στο Green House, τότε το πρόγραμμα python δημοσιεύει το μήνυμα ενεργοποίησης/απενεργοποίησης της αντλίας νερού στον μεσίτη Mosquitto MQTT με θέμα "Θέμα 2"
  7. Το ESP8266 λειτουργεί ως ενεργοποιητής. Εγγραφεί στο θέμα "Θέμα 2" σε ποιο θέμα το πρόγραμμα python δημοσιεύει το μήνυμα. Όταν το πρόγραμμα python δημοσιεύσει οποιοδήποτε μήνυμα, τότε το μήνυμα μεταφέρεται αμέσως στο ESP8266. Σύμφωνα με το μήνυμα ενεργοποίησης/απενεργοποίησης, ενεργοποιήθηκε/απενεργοποιήθηκε η υποβρύχια αντλία νερού.
  8. Τελευταία φάση για να εμφανιστούν οι ζωντανές αναγνώσεις στην ιστοσελίδα. Η ιστοσελίδα λαμβάνει τα δεδομένα από τη βάση δεδομένων SQL στην οποία το πρόγραμμα python αποθηκεύει τα δεδομένα απευθείας και εμφανίζει τις αναγνώσεις στη σελίδα.

Συνιστάται: