Πίνακας περιεχομένων:
- Βήμα 1: Προετοιμασία του Raspberry Pi
- Βήμα 2: Ρύθμιση του NoCAN
- Βήμα 3: Εγκατάσταση του υλικού UFire μαζί
- Βήμα 4: Το υλικό NoCAN
- Βήμα 5: Προγραμματίστε τον κόμβο CANZERO
- Βήμα 6: Πώς συνδέονται όλα αυτά μαζί;
- Βήμα 7: Ρύθμιση χρονογράφου ή Grafana
- Βήμα 8: Μερικές βελτιώσεις
Βίντεο: Αποθήκευση και γραφική παράσταση δεδομένων EC/pH/ORP Με τη στοίβα TICK και την πλατφόρμα NoCAN: 8 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Αυτό θα εξετάσει τον τρόπο χρήσης της πλατφόρμας NoCAN από τους αισθητήρες Omzlo και uFire για τη μέτρηση EC, pH και ORP. Όπως λέει ο ιστότοπός τους, μερικές φορές είναι ευκολότερο να τρέξετε κάποιο καλώδιο στους κόμβους αισθητήρων σας. Η CAN έχει το πλεονέκτημα της επικοινωνίας και της ισχύος σε ένα καλώδιο, οπότε το σήμα και η μπαταρία δεν είναι προβλήματα. Το υλικολογισμικό των κόμβων μπορεί να είναι απλούστερο. δεν ενοχλείτε με τις λειτουργίες ύπνου ή τη ρύθμιση WiFi, για παράδειγμα. Η πλατφόρμα NoCAN έχει επίσης μερικά εξαιρετικά χαρακτηριστικά όπως τον προγραμματισμό των κόμβων μέσω του διαύλου CAN.
Η πλατφόρμα NoCAN χρησιμοποιεί ένα Raspberry Pi, οπότε ό, τι μπορεί να κάνει θα είναι διαθέσιμο. Θα το εκμεταλλευτούμε εγκαθιστώντας τη στοίβα TICK. Αυτό θα μας επιτρέψει να χρησιμοποιήσουμε το InfluxDB για να αποθηκεύσουμε μετρήσεις. Είναι μια βάση δεδομένων που βασίζεται σε χρονομετρητές και προορίζεται για τέτοιου είδους πράγματα. Έρχεται επίσης με το Chronograf για να δημιουργήσει πίνακες ελέγχου και να εμφανίσει όλα αυτά τα δεδομένα που πρόκειται να λάβουμε. Τα Τ και Κ σημαίνουν Telegraf και Kapacitor. Το Telegraf βρίσκεται μεταξύ των δεδομένων που στέλνετε και της βάσης δεδομένων Influx. Ο πυκνωτής είναι ο κινητήρας εκδηλώσεων. Όταν συμβαίνει κάτι, μπορεί να σας στείλει μια ειδοποίηση με διάφορες μεθόδους. Και, ακριβώς επειδή μου αρέσει περισσότερο από το Chronograf, θα εγκαταστήσω το Grafana για πίνακες εργαλείων.
Βήμα 1: Προετοιμασία του Raspberry Pi
Μεταβείτε στη σελίδα λήψης Rasbian και κατεβάστε την εικόνα με την επιφάνεια εργασίας και το προτεινόμενο λογισμικό και, στη συνέχεια, μετακινήστε την σε μια κάρτα SD.
Αφού η εικόνα βρίσκεται στην κάρτα SD, θα πρέπει να έχετε δύο τόμους, root και εκκίνηση. Ανοίξτε ένα τερματικό στην εκκίνηση και πληκτρολογήστε:
αγγίξτε ssh
Αυτό θα ενεργοποιήσει το SSH.
Στη συνέχεια πληκτρολογήστε:
nano wpa_supplicant.conf
Και αντιγράψτε/επικολλήστε τα παρακάτω αφού τα τροποποιήσετε για τις δικές σας ρυθμίσεις νομού και WiFi:
χώρα = ΗΠΑ
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1 network = {ssid = "NETWORK-NAME" psk = "NETWORK-PASSWORD"}
Οι κωδικοί χωρών προέρχονται από εδώ.
Ενεργοποίηση SPI:
ηχώ "dtparam = spi = on" >> config.txt
Τοποθετήστε την κάρτα SD στο Raspberry Pi σας, περιμένετε λίγο και πληκτρολογήστε:
Θα πρέπει να βρίσκεστε στη γραμμή σύνδεσης. Ο κωδικός πρόσβασης είναι βατόμουρο.
Βήμα 2: Ρύθμιση του NoCAN
Το Omzlo παρέχει έναν λεπτομερή οδηγό εγκατάστασης. Αλλά αποφάσισα να το κάνω πιο εύκολο και να μάθω λίγο για το σενάριο Bash. Ξεκινήστε λοιπόν το Raspberry Pi και χρησιμοποιήστε SSH ή σειριακό τερματικό.
Έμαθα ότι εξίσου πολύς χρόνος ανάπτυξης μπορεί να χρειαστεί για τη δημιουργία ενός καλού σεναρίου Bash, ό, τι κι αν προσπαθείτε να εγκαταστήσετε. Υπάρχουν 1000 τρόποι για να κάνετε κάτι, μερικοί πιο απλοί για να κατανοήσετε ή να εκτελέσετε από άλλους. Τελικά, δεν έκανα πολλά. Εάν εκτελέσετε:
wget https://ufire.co/nocan.sh && chmod +x nocan.sh && sudo./nocan.sh
Στο τερματικό του Raspberry Pi, θα κατεβάσει και θα εκτελέσει το σενάριο.
Τότε αυτό:
- Κατεβάζει τον δαίμονα Omzlo NoCAN και τον εγκαθιστά στο/usr/bin για εύκολη πρόσβαση, δημιουργεί ένα φάκελο ~/.nocand και γράφει ένα πολύ βασικό αρχείο διαμόρφωσης με τον κωδικό πρόσβασης να έχει οριστεί ως «κωδικός πρόσβασης». Μάλλον θα πρέπει να το αλλάξετε σε κάτι άλλο, είναι στο ~/.nocand/config.
- Κατεβάζει το πρόγραμμα -πελάτη Omzlo NoCAN και το αντιγράφει στο /usr /bin και δημιουργεί ένα βασικό αρχείο διαμόρφωσης με το ίδιο σύνολο κωδικού πρόσβασης. Είναι στο ~/.nocanc.conf.
- Ορίζει μια υπηρεσία Systemd που διατηρεί τον δαίμονα NoCAN σε λειτουργία.
- Γράφει ένα αρχείο python στο ~/.nocand, nocan_ufire.py. Θα μιλήσει με το υλικολογισμικό του κόμβου NoCAN και θα λάβει μετρήσεις EC, pH και ORP, θα αναλύσει τα αποτελέσματα και θα τα προσθέσει στη βάση δεδομένων InfluxDB.
- Προσθέτει το repo του InfluxData στο apt και εγκαθιστά τη στοίβα TICK. Και αφού το προτιμώ από το Chronograf, εγκαθιστά και το Grafana.
- Δημιουργεί μια κενή βάση δεδομένων Influx
Μερικές αγορές που μπορεί να συναντήσετε:
- Η τοπική σας ρύθμιση ενδέχεται να μην έχει ρυθμιστεί, οπότε εκτελέστε dpkg-επαναδιαμόρφωση τοπικών ρυθμίσεων
- Η εγκατάσταση της Grafana ενδέχεται να σταματήσει, οπότε προσπαθήστε ξανά.
-
Ο δαίμονας εισροής μπορεί να μην ξεκινήσει εγκαίρως για να προσθέσει το σενάριο τη βάση δεδομένων, πληκτρολογήστε
curl -i -XPOST https:// localhost: 8086/query --data -urlencode "q = CREATE DATABASE nocan"
- Αυτό το σενάριο λειτουργεί μόνο ως προεπιλεγμένος χρήστης pi. Θα πρέπει να αλλάξετε το pi στο όνομα χρήστη σας, όπου απαιτείται, εάν βρίσκεστε σε διαφορετικό χρήστη.
Το τελευταίο πράγμα είναι να προσθέσετε μια εργασία cron. Δεν μπορούσα να βρω έναν πολύ καλό τρόπο για να γράψω αυτό, οπότε πληκτρολογήστε "crontab -e" για χειροκίνητη επεξεργασία και προσθέστε " * * * * * python /home/pi/.nocand/nocan_ufire.py".
Μόλις τελειώσουν όλα αυτά, μπορείτε να επαληθεύσετε ότι όλα είναι ρυθμισμένα και λειτουργούν όπως πρέπει. Η Grafana ζει στη διεύθυνση https:// [Διεύθυνση Raspberry Pi]: 3000/. Θα πρέπει να δείτε μια σελίδα σύνδεσης, ο διαχειριστής/διαχειριστής είναι η προεπιλογή.
Χρονογράφος μπορείτε να βρείτε στη διεύθυνση https:// [Διεύθυνση Raspberry Pi]: 8888/
Βήμα 3: Εγκατάσταση του υλικού UFire μαζί
Πριν μπορέσουμε να συναρμολογήσουμε το υλικό, πρέπει να αντιμετωπίσουμε ένα πράγμα. Ο πίνακας uFire ISE μπορεί να χρησιμοποιηθεί για τη μέτρηση τόσο του pH όσο και του ORP. Το υλικό είναι το ίδιο, αλλά το λογισμικό είναι διαφορετικό. Επειδή το υλικό είναι το ίδιο, αυτό σημαίνει ότι η διεύθυνση I2C είναι, από προεπιλογή, η ίδια επίσης. Και οι αισθητήρες επικοινωνούν μέσω I2C οπότε κάποιος θα πρέπει να αλλάξει. Για αυτό το έργο, θα επιλέξουμε έναν από τους πίνακες ISE και θα τον χρησιμοποιήσουμε για να μετρήσουμε το ORP. Ακολουθώντας τα βήματα εδώ, αλλάξτε τη διεύθυνση σε 0x3e.
Τώρα που η διεύθυνση έχει αλλάξει, η συναρμολόγηση του υλικού είναι εύκολη. Αυτή η ρύθμιση βασίζεται σε προηγούμενες εργασίες που κάνουν βασικά το ίδιο πράγμα αλλά χρησιμοποιούν BLE και όχι CAN για τη μετάδοση δεδομένων. Μπορείτε να διαβάσετε σχετικά με το Arduino Project Hub. Όλες οι συσκευές αισθητήρων χρησιμοποιούν το σύστημα σύνδεσης Qwiic, οπότε απλώς συνδέστε τα πάντα μαζί σε μια αλυσίδα, υπάρχει μόνο ένας τρόπος για να εισαγάγετε τα καλώδια Qwiic στα Qwiic. Θα χρειαστείτε ένα καλώδιο Qwiic to Male για να συνδέσετε έναν από τους αισθητήρες στον κόμβο CANZERO. Τα σύρματα είναι σταθερά και χρωματικά κωδικοποιημένα. Συνδέστε το μαύρο στο GND του κόμβου, κόκκινο είτε στον ακροδέκτη +3.3V ή +5V, μπλε στον πείρο SDA που είναι D11 και κίτρινο στον πείρο SCL στο D12.
Για αυτό το έργο, αναμένεται ότι οι πληροφορίες θερμοκρασίας θα προέρχονται από τον αισθητήρα EC, οπότε φροντίστε να συνδέσετε έναν αισθητήρα θερμοκρασίας στην πλακέτα EC. Ωστόσο, όλες οι σανίδες έχουν τη δυνατότητα να μετρήσουν τη θερμοκρασία. Μην ξεχάσετε να συνδέσετε τους αισθητήρες EC, pH και ORP στους κατάλληλους αισθητήρες. Συνδέονται εύκολα με συνδετήρες BNC. Εάν έχετε περίβλημα, θα ήταν καλή ιδέα να τα βάλετε όλα αυτά μέσα, ειδικά αν λάβετε υπόψη ότι πρόκειται να εμπλακεί νερό.
Βήμα 4: Το υλικό NoCAN
Η συναρμολόγηση του υλικού NoCAN είναι επίσης εύκολη. Συνδέστε το PiMaster στο Raspberry Pi και βρείτε ένα κατάλληλο τροφοδοτικό για αυτό.
Ακολουθήστε τις οδηγίες του Omzlo σχετικά με την κατασκευή καλωδίων για το έργο σας.
Αναπτύξτε τον κόμβό σας και βρείτε μια θέση για το PiMaster.
Βήμα 5: Προγραμματίστε τον κόμβο CANZERO
Ένα από τα σπουδαία πράγματα για αυτήν τη ρύθμιση είναι ότι μπορείτε να έχετε πρόσβαση στους κόμβους ακόμη και μετά την ανάπτυξη τους. Είναι προγραμματισμένα μέσω του καλωδίου CAN, ώστε να μπορείτε να τα επαναπρογραμματίσετε όποτε θέλετε.
Για αυτό, θα χρειαστείτε το Arduino IDE εγκατεστημένο, το PiMaster στο δίκτυό σας και τον κόμβό σας συνδεδεμένο με το δίαυλο CAN. Θα χρειαστείτε επίσης ένα πρόγραμμα που ονομάζεται nocanc εγκατεστημένο στον υπολογιστή ανάπτυξης. Όλα αυτά περιγράφονται στη σελίδα εγκατάστασης του Omzlo.
Επισκεφτείτε το GitHub και αντιγράψτε τον κώδικα σε ένα νέο σκίτσο Arduino IDE. Αλλάξτε τον πίνακα σε Omzlo CANZERO και επιλέξτε τον κόμβο στο μενού «Θύρα». Στη συνέχεια, απλά κάντε κλικ στο κουμπί μεταφόρτωσης όπως συνήθως. Εάν όλα πήγαν σύμφωνα με το σχέδιο, θα πρέπει να έχετε έναν προγραμματισμένο κόμβο έτοιμο να λάβει κάποιες μετρήσεις.
Βήμα 6: Πώς συνδέονται όλα αυτά μαζί;
Τώρα που έχει διαμορφωθεί όλο το λογισμικό και το υλικό, ας αφιερώσουμε λίγο χρόνο για να μιλήσουμε για το πώς θα λειτουργήσει όλο αυτό. Και δείξτε τις ικανότητές μου στο GIMP…
Συνοψίζοντας:
- Ο κόμβος CANZERO συνδέεται με το PiMaster και αναπτύσσεται κάπου
- Κάθε λεπτό εκτελείται μια εργασία Cron στο PiMaster. Θα εκτελέσει ένα σενάριο python.
- Το σενάριο python θα στείλει μια εντολή στον κόμβο που θα του πει να κάνει μια μέτρηση ή κάποια άλλη ενέργεια.
- Ο κόμβος θα εκτελέσει αυτό που ήταν η εντολή και θα επιστρέψει ένα αποτέλεσμα σε μορφή JSON.
- Το σενάριο python θα λάβει αυτό το αποτέλεσμα, θα το αναλύσει και θα ενημερώσει ένα InfluxDB με αυτό.
Το τελευταίο βήμα είναι να παρακολουθήσετε τη συλλογή δεδομένων σε μερικά όμορφα διαγράμματα.
Βήμα 7: Ρύθμιση χρονογράφου ή Grafana
Το τελευταίο πράγμα που πρέπει να κάνετε είναι να ρυθμίσετε μερικά διαγράμματα σε Chronograf ή Grafana.
Θα χρειαστεί να ρυθμίσετε την πηγή δεδομένων. Οι προεπιλογές για το InfluxDB είναι καλές. Η διεύθυνση είναι «https:// localhost: 8086» και δεν υπάρχει όνομα χρήστη ή κωδικός πρόσβασης.
Και τα δύο είναι παρόμοια στο ότι είναι οργανωμένα σε Πίνακες ελέγχου που έχουν οποιονδήποτε αριθμό γραφημάτων μέσα τους. Και οι δύο έχουν μια περιοχή Εξερεύνηση που σας επιτρέπει να βλέπετε τις μετρήσεις και να δημιουργείτε διαδραστικά γραφήματα. Θυμηθείτε ότι το όνομα της βάσης δεδομένων είναι "nocan" και οργανώνεται σε διάφορες μετρήσεις με μία τιμή.
Όπως ανέφερα, προτιμώ το Grafana επειδή είναι πιο διαμορφώσιμο από το Chronograf. Είναι επίσης φιλικό προς κινητά, όπου δεν είναι Chronograf. Τα γραφήματα ενσωματώνονται και μοιράζονται εύκολα
Βήμα 8: Μερικές βελτιώσεις
- Μπορείτε να ορίσετε το όνομα κεντρικού υπολογιστή του Raspberry Pi για εύκολη πρόσβαση στο δίκτυό σας. Μπορείτε να το κάνετε στο raspi-config. Άλλαξα το δικό μου σε nocan, οπότε μπόρεσα να μεταβώ στο nocan.local για πρόσβαση σε αυτό (δεν λειτουργεί σε Android).
- Μπορείτε να εγκαταστήσετε ένα πρόγραμμα όπως το ngrok για πρόσβαση στο Raspberry Pi εκτός του δικτύου σας.
- Χρησιμοποιήστε μία από τις μεθόδους που παρέχει ο Kapacitor για την παροχή ειδοποιήσεων.
- Προσθέστε περισσότερους αισθητήρες, φυσικά.
Συνιστάται:
Ανάγνωση και γραφική παράσταση δεδομένων αισθητήρα φωτός και θερμοκρασίας με Raspberry Pi: 5 βήματα
Ανάγνωση και γραφική παράσταση δεδομένων αισθητήρα φωτός και θερμοκρασίας με το Raspberry Pi: Σε αυτό το Instructable θα μάθετε πώς να διαβάζετε έναν αισθητήρα φωτός και θερμοκρασίας με βατόμουρο pi και ψηφιακό μετατροπέα ADS1115 και να το γράφετε χρησιμοποιώντας matplotlib. Ας ξεκινήσουμε με τα απαραίτητα υλικά
Μετεωρολογικός σταθμός: ESP8266 με βαθύ ύπνο, SQL, γραφική παράσταση κατά φιάλη & συνοπτικά: 3 βήματα
Μετεωρολογικός σταθμός: ESP8266 Με βαθύ ύπνο, SQL, Graphing by Flask & Plotly: Θα ήταν διασκεδαστικό να γνωρίζετε τη θερμοκρασία, την υγρασία ή την ένταση του φωτός στο μπαλκόνι σας; Ξέρω ότι θα το έκανα. Έτσι έφτιαξα έναν απλό μετεωρολογικό σταθμό για να συλλέξω τέτοια δεδομένα. Οι ακόλουθες ενότητες είναι τα βήματα που έκανα για να δημιουργήσω ένα. Ας ξεκινήσουμε
Παρακολούθηση θερμοκρασίας και υγρασίας DHT χρησιμοποιώντας το ESP8266 και την πλατφόρμα IoT AskSensors: 8 βήματα
Παρακολούθηση θερμοκρασίας και υγρασίας DHT χρησιμοποιώντας το ESP8266 και την πλατφόρμα IoT της AskSensors: Σε προηγούμενο εκπαιδευτικό, παρουσίασα έναν οδηγό βήμα προς βήμα για να ξεκινήσετε με το ESP8266 nodeMCU και την πλατφόρμα IoT AskSensors. Σε αυτό το σεμινάριο, συνδέω έναν αισθητήρα DHT11 στον κόμβο MCU. Το DHT11 είναι μια κοινά χρησιμοποιούμενη θερμοκρασία και υγρασία
Γραφική παράσταση της αλλαγής θερμοκρασίας από την κλιματική αλλαγή στην Python: 6 βήματα
Απεικόνιση της αλλαγής θερμοκρασίας από την κλιματική αλλαγή στην Python: Η κλιματική αλλαγή είναι ένα μεγάλο πρόβλημα. Και πολλοί άνθρωποι δεν γνωρίζουν τώρα πόσο έχει ανέβει. Σε αυτό το διδακτικό, θα γράψουμε τη μεταβολή της θερμοκρασίας στο κλίμα λόγω της κλιματικής αλλαγής. Για ένα φύλλο εξαπάτησης, μπορείτε να δείτε το αρχείο python παρακάτω
Σύστημα συμμετοχής με αποθήκευση δεδομένων σε υπολογιστικό φύλλο Google χρησιμοποιώντας RFID και Arduino Ethernet Shield: 6 βήματα
Σύστημα συμμετοχής με αποθήκευση δεδομένων στο υπολογιστικό φύλλο Google χρησιμοποιώντας RFID και Arduino Ethernet Shield: Γεια σας παιδιά, εδώ καταλήγουμε σε ένα πολύ συναρπαστικό έργο και αυτός είναι ο τρόπος αποστολής δεδομένων rfid στο υπολογιστικό φύλλο της Google χρησιμοποιώντας το Arduino. Εν ολίγοις, πρόκειται να φτιάξουμε ένα σύστημα παρακολούθησης βασισμένο στον αναγνώστη rfid, το οποίο θα εξοικονομήσει δεδομένα συμμετοχής σε πραγματικό χρόνο για να