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

Θερμοκήπιο UCL - IIOT: 11 Βήματα
Θερμοκήπιο UCL - IIOT: 11 Βήματα

Βίντεο: Θερμοκήπιο UCL - IIOT: 11 Βήματα

Βίντεο: Θερμοκήπιο UCL - IIOT: 11 Βήματα
Βίντεο: Tunnel a soffietto 2024, Νοέμβριος
Anonim
Θερμοκήπιο UCL - IIOT
Θερμοκήπιο UCL - IIOT

Αυτό το έργο είναι μια επέκταση του προηγούμενου έργου μας με το θερμοκήπιο (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

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

Το περιεχόμενο που συνδέουμε στη βάση δεδομένων μας είναι Υγρασία, Θερμοκρασία και υγρασία του εδάφους, το οποίο φαίνεται σε διαφορετικά διαγράμματα.

Εκτός από το dataloggin, μπορούμε επίσης να ελέγξουμε ποιο προφίλ είναι ενεργό στο Θερμοκήπιο και να το ελέγξουμε εξ αποστάσεως.

Στη συνέχεια, μπορούμε επίσης να ελέγξουμε την αντλία και τον ανεμιστήρα χειροκίνητα.

Βήμα 1: Οδηγός εγκατάστασης

Οδηγός εγκατάστασης
Οδηγός εγκατάστασης

Το πρώτο βήμα είναι να εγκαταστήσετε όλα τα διαφορετικά εξαρτήματα.

Μέσα στις αγκύλες (), έχουμε αναφέρει πού συνδέεται το στοιχείο. Έτσι, για παράδειγμα, το Arduino συνδέεται με το Raspberry Pi μέσω καλωδίου USB.

Υλικό που χρησιμοποιείται:

  • Arduino (Raspberry Pi)
  • Raspberry Pi 3 B+
  • Υγρόμετρο εδάφους (Arduino)
  • Αισθητήρας DHT11 (Arduino)
  • Υποβρύχια αντλία νερού HG-320 (ρελέ)
  • Ρελέ 5V (Arduino)
  • Ένας ανεμιστήρας υπολογιστή (ρελέ)
  • Τροφοδοσία 230V (αντλία)

Λογισμικό που χρησιμοποιείται:

  • Raspbian (OS για Raspberry Pi)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Πίνακας ελέγχου
  • Διακομιστής MySQL (freemysqlhosting.net)

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

Στη συνέχεια, θα πρέπει να εγκαταστήσετε το Raspbian OS στο Raspberry Pi σας. Μετά από αυτό θα πρέπει να εγκαταστήσετε την Python και στη συνέχεια να εγκαταστήσετε τις βιβλιοθήκες python.

Το επόμενο βήμα είναι να εγκαταστήσετε το Node-Red στο Raspberry Pi και, στη συνέχεια, μεταβείτε στον διαχειριστή παλετών και εγκαταστήστε τις ενότητες που αναφέρθηκαν νωρίτερα.

Στη συνέχεια, μεταβείτε σε αυτόν τον ιστότοπο Δωρεάν διακομιστής MySQL και δημιουργήστε έναν δωρεάν διακομιστή MySQL.

Όταν ολοκληρωθούν όλα αυτά, είστε έτοιμοι να μεταφέρετε το σενάριο python στο Raspberry Pi σας, να εισαγάγετε το σενάριο Node-Red και να ανεβάσετε τον κώδικα για το Arduino.

Βήμα 2: Έκθεση ελέγχου

Image
Image

Βήμα 3: Λίστα μερών/λογισμικού που χρησιμοποιούνται στο έργο

Χρησιμοποιήσαμε την ακόλουθη τεχνολογία για να φτιάξουμε το θερμοκήπιο

  • Arduino
  • Raspberry Pi
  • Κόμβος-Κόκκινο
  • Πύθων
  • PHPMyAdmin

Βήμα 4: Λίστα I/0

Διάγραμμα συνδεσμολογίας
Διάγραμμα συνδεσμολογίας

Βήμα 5: Διάγραμμα καλωδίωσης

Βήμα 6: Ο κώδικας Arduino

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

Το Arduino έχει επίσης ορισμένες ψηφιακές εισόδους συνδεδεμένες με το Raspberry Pi που διαβάζει το Arduino και εάν μία από τις τρεις γίνει Υ HIGHΗ, το προφίλ θα αλλάξει λόγω μιας δήλωσης IF.

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

Βήμα 7: Raspberry Pi 3 B+

Raspberry Pi 3 B+
Raspberry Pi 3 B+

Χρησιμοποιήσαμε ένα Raspberry Pi 3 B+ για τη σύνδεση του Arduino με το Διαδίκτυο και μια βάση δεδομένων MySQL. Αυτό μας επέτρεψε να αποθηκεύσουμε δεδομένα από τους αισθητήρες μας και να δημιουργήσουμε μια οπτική διεπαφή για τον τελικό χρήστη. Για τη διεπαφή χρήστη χρησιμοποιήσαμε το Node-Red με την παλέτα Dashboard.

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

Βήμα 8: Python

Πύθων
Πύθων

Το σενάριο Python χρησιμοποιείται για τη λήψη δεδομένων από τη σειριακή επικοινωνία που προέρχεται από το Arduino. Στη συνέχεια, το σενάριο στέλνει τα δεδομένα σε μια βάση δεδομένων MySQL.

Χρησιμοποιήσαμε δύο βιβλιοθήκες, pyserial και mysqlclient.

Έτσι, το πρώτο βήμα θα ήταν να κατεβάσετε αυτές τις δύο βιβλιοθήκες:

  1. PySerial
  2. MySQLclient

Το PySerial χρησιμοποιείται για τη συλλογή δεδομένων από το Arduino μέσω σειριακής επικοινωνίας.

συσκευή = '/dev/ttyUSB0'

arduino = σειριακό. Σειρά (συσκευή, 9600)

Η πρώτη γραμμή χρησιμοποιείται για τον καθορισμό της θύρας COM. Στο Raspberry Pi είναι /dev /ttyUSB0, που χρησιμοποιούμε για το Arduino. Η δεύτερη γραμμή είναι για το άνοιγμα της σειριακής θύρας στο Arduino. Απλώς ορίζουμε ποια θύρα COM και με ποια ταχύτητα λειτουργεί η σύνδεση.

Ο υπόλοιπος κώδικας εκτελείται σε ένα βρόχο while.

Στη συνέχεια, χρησιμοποιούμε πολλαπλά μπλοκ Try and Except. Πρώτα ο κώδικας προσπαθεί να εκτελεστεί μέσα στο μπλοκ Δοκιμάστε, εάν αυτό αποτύχει, τότε εκτελεί το Εξαίρεση μπλοκ. Αλλά αν το μπλοκ Δοκιμάστε λειτουργεί καλά, δεν εκτελεί το Εξαίρεση μπλοκ, εκτελεί απλώς τον υπόλοιπο κώδικα.

Έτσι, μέσα στα μπλοκ Try έχουμε κώδικα που θα διαβάσει τη σειριακή επικοινωνία και στη συνέχεια θα τον στείλει στη βάση δεδομένων MySQL.

hygrolist = arduino.readlines (1)

templist = arduino.readlines (2) humidlist = arduino.readlines (3)

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

Όταν λαμβάνονται δεδομένα από το Arduino, χρησιμοποιήσαμε τη μονάδα mysqlclient για την αποστολή των δεδομένων στον MySQL Server.

db = _mysql.connect (host = "sql7.freemysqlhosting.net", χρήστης = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")

Αυτή η γραμμή προορίζεται για σύνδεση με τη βάση δεδομένων MySQL. Καθορίζει τον διακομιστή, το όνομα χρήστη, τον κωδικό πρόσβασης και τη βάση δεδομένων με την οποία πρέπει να συνδεθεί στο εσωτερικό του διακομιστή. Εδώ θα πρέπει να καθορίσετε τη σύνδεση με το MySQL DB.

db.query ("INSERTINTO` TempHumid` (`temp`,` υγρό`, `hygro`) ΤΙΜΕΣ (%s, %s, %s)" %(temp, υγρό, υγρό))

Εδώ λοιπόν παίρνουμε τη σύνδεση DB και κάνουμε ένα ερώτημα SQL. Το ερώτημα λέει ότι οι τιμές πρέπει να εισαχθούν μέσα στον πίνακα "TempHumid" και στη συνέχεια στις στήλες "temp", "υγρό" και "hygro". Το τελευταίο μέρος "(%s, %s, %s)" είναι μορφοποίηση συμβολοσειράς και χρησιμοποιείται για να δώσει στη βάση δεδομένων τη μορφή που μπορεί να διαβάσει.

Και όλη αυτή η ενέργεια τοποθετείται σε ένα βρόχο while, έτσι ώστε να συνεχίζουμε να στέλνουμε δεδομένα στον διακομιστή MySQL.

Αν θέλετε να δείτε όλο τον κώδικα, κατεβάστε το σενάριο python (TempHumid.py).

Βήμα 9: MySQL

MySQL
MySQL
MySQL
MySQL

Για τον διακομιστή MySQL, χρησιμοποιήσαμε μια δωρεάν υπηρεσία στο www.freemysqlhosting.net. Θα μπορούσαμε να έχουμε δημιουργήσει έναν διακομιστή τοπικά στο Raspberry Pi, αλλά πήγαμε με τη δωρεάν υπηρεσία για να το κάνουμε πλήρως συνδεδεμένο στο cloud/internet.

Για να αποκτήσετε πρόσβαση στο MySQL, πρέπει να μεταβείτε στη διεύθυνση phpmyadmin.co και να συνδεθείτε με τα διαπιστευτήρια από τον λογαριασμό σας freemysqlhosting.

Όταν βρίσκεστε μέσα, πρέπει να δημιουργήσετε έναν πίνακα που ονομάζεται "TempHumid", μέσα σε αυτόν τον πίνακα πρέπει να δημιουργήσετε 4 στήλες που ονομάζονται "ID", "temp", "υγρό" και "hygro". Στην πρώτη στήλη (ID) πρέπει να επιλέξετε το πλαίσιο A_I (Αυτόματη αύξηση). Αυτό συμβαίνει έτσι ώστε η στήλη ID να δίνει σε κάθε σύνολο δεδομένων ένα αναγνωριστικό. Όλες οι ακόλουθες στήλες πρέπει να οριστούν ως INT (ακέραιος αριθμός) και να ορίσουν την τυπική τιμή σε NULL.

Βήμα 10: Κόμβος-Κόκκινο

Κόμβος-Κόκκινο
Κόμβος-Κόκκινο
Κόμβος-Κόκκινο
Κόμβος-Κόκκινο
Κόμβος-Κόκκινο
Κόμβος-Κόκκινο

Στο έργο μας χρησιμοποιήσαμε το Node-Red για τη δημιουργία μιας γραφικής διεπαφής. Το Node-Red εκτελείται στο Raspberry Pi και συλλέγει δεδομένα από τη βάση δεδομένων MySQL και εμφανίζει αυτά τα δεδομένα με μετρητές σε σχήμα ντόνατ και γραφικά γραφήματα, έτσι ώστε ο τελικός χρήστης να μπορεί να παρακολουθεί τα δεδομένα. Το έξυπνο για το Node-Red είναι ότι είναι ορατό σε οποιαδήποτε συσκευή, πράγμα που σημαίνει ότι το μέγεθος του ιστότοπου θα αλλάξει για τη συγκεκριμένη συσκευή που προβάλλει το περιεχόμενο.

Για να εγκαταστήσετε τον προγραμματισμό μας Node-Red, δείτε το Βήμα 1 και κατεβάστε το έγγραφο που ονομάζεται "Node-Red.docx". Στη συνέχεια, αντιγράψτε και επικολλήστε το κείμενο στο Κόμβο-Κόκκινο μέσω της λειτουργίας εισαγωγής στην επάνω δεξιά γωνία.

Στη συνέχεια, αλλάξτε τις ρυθμίσεις DB για το MySQL DB.

Συνιστάται: