Πίνακας περιεχομένων:
- Βήμα 1: Ξεκινώντας με το Node-red
- Βήμα 2: Διαίρεση δεδομένων με κόκκινο κόμβο
- Βήμα 3: Βάση δεδομένων με Wampserver
- Βήμα 4: Βάση δεδομένων
- Βήμα 5: Κόκκινος κόμβος στο Wampserver
- Βήμα 6: Χρήση δεδομένων από Wampserver σε Κόκκινο κόμβο
- Βήμα 7: Ολοκλήρωση
Βίντεο: UCL-IIOT-Σύστημα συναγερμού με βάση δεδομένων και κόκκινο κόμβο: 7 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Ο σκοπός αυτής της κατασκευής είναι να διδάξει τη σύνδεση του Arduino με το Node-red και μια βάση δεδομένων, ώστε να μπορείτε να καταγράφετε δεδομένα και επίσης να τα συλλέγετε για μεταγενέστερη χρήση.
Για αυτήν την κατασκευή χρησιμοποιώ ένα απλό σύστημα συναγερμού arduino που εξάγει 5 αριθμούς δεδομένων, ο καθένας χωρισμένος με κόμμα.
Δεν είναι απαραίτητο να έχετε αυτόν τον ακριβή όγκο δεδομένων και το πρόγραμμα μπορεί να είναι οτιδήποτε.
Το σημαντικό μέρος είναι ότι τα δεδομένα διαχωρίζονται με κόμματα όπως φαίνεται σε αυτό το στιγμιότυπο οθόνης.
Η έξοδος θα μπορούσε για παράδειγμα να μοιάζει με αυτήν: "324, 0, 0, 1, 1"
(ο τελικός προγραμματισμός και οι οδηγίες για τη δημιουργία του arduino συνδέονται στο κάτω μέρος αυτού του σεμιναρίου)
Βήμα 1: Ξεκινώντας με το Node-red
Για αυτό το σεμινάριο υποθέτουμε ότι έχετε ήδη εγκαταστήσει το Node-red, αλλά υπάρχουν μερικές επιπλέον παλέτες που χρησιμοποιούνται για αυτό το έργο που χρειαζόμαστε για να λειτουργήσει
Βρείτε το κουμπί "Διαχείριση παλέτας" και εγκαταστήστε τις ακόλουθες παλέτες.
- κόμβος-κόκκινο-ταμπλό
- κόμβος-κόκκινος-κόμβος-mysql
- κόμβος-κόκκινος-κόμβος-arduino
- node-red-node-serialport
Θα πρέπει να εμφανίζει μερικές νέες παλέτες στο πλάι του μενού Κόκκινο κουμπί.
Βήμα 2: Διαίρεση δεδομένων με κόκκινο κόμβο
Τώρα που το Node-red είναι έτοιμο να ξεκινήσει, πρέπει να ξεκινήσουμε χωρίζοντας τα δεδομένα μας σε ξεχωριστά κομμάτια.
Αυτός είναι ο λόγος για τον οποίο φροντίσαμε να τα διαχωρίσουμε με κόμματα μέσα στον κώδικα Arduino.
Αρχικά ας ξεκινήσουμε βάζοντας κάτω τον κόμβο Arduino Input, που βρίσκεται στο αριστερό πλαίσιο.
Πρέπει να βεβαιωθείτε ότι έχει τη σωστή σειρά θύρας σειριακής (Mine uses COM4) και ρυθμός Baud (στο πρόγραμμά μου χρησιμοποιώ 9600 baud rate)
Εάν έχει ρυθμιστεί σωστά, θα πρέπει να πει ότι είναι συνδεδεμένο.
Στη συνέχεια δημιουργούμε ένα μπλοκ συνάρτησης Javascript και το συνδέουμε μετά τον κόμβο εισόδου Arduino. Αυτό το μπλοκ μας επιτρέπει να προγραμματίζουμε σε Javascript και εδώ γράφουμε έναν κώδικα που μπορεί να χωρίσει τα δεδομένα μας για κάθε κόμμα.
Σε αυτό το μπλοκ συνάρτησης χωρίζω τα 5 δεδομένα μου χρησιμοποιώντας τον ακόλουθο κώδικα:
var m1 = {topic: "light1", payload: msg.payload.split (",") [0]}; var m2 = {topic: "light2", payload: msg.payload.split (",") [1]}; var m3 = {topic: "light3", payload: msg.payload.split (",") [2]}; var m4 = {topic: "millis", payload: msg.payload.split (",") [3]}; var m5 = {topic: "onoff", payload: msg.payload.split (",") [4]}; επιστροφή [m1, m2, m3, m4, m5];
(αλλάξτε τον κωδικό όπως απαιτείται)
Βεβαιωθείτε ότι ο κόμβος έχει οριστεί σε 5 εξόδους (ή το ισοδύναμό σας)
Όπως φαίνεται στο στιγμιότυπο οθόνης, έχουμε τώρα 5 εξόδους που συνδέουμε ο καθένας με έναν κόμβο εντοπισμού σφαλμάτων και έναν κόμβο πίνακα εργαλείων κειμένου. Αυτό θα είναι χρήσιμο όταν πρέπει να το δούμε στο περιβάλλον χρήστη.
Βήμα 3: Βάση δεδομένων με Wampserver
Για να λειτουργήσει η βάση δεδομένων μας, πρέπει να έχετε εγκατεστημένο το Wampserver. Αφού εγκατασταθεί και εμφανιστεί ως πράσινο εικονίδιο (αφού έχετε ξεκινήσει όλες τις υπηρεσίες), θα πρέπει να ανοίξετε το "phpMyAdmin" το οποίο θα σας μεταφέρει σε μια οθόνη σύνδεσης. Εκτός αν έχετε το άλλαξε προηγουμένως, απλά εισάγετε "root" στο όνομα χρήστη και τη σύνδεση.
Πατήστε το κουμπί phpmyadmin κάτω από τα εργαλεία στην αριστερή γραμμή και θα ανοίξει το μενού της βάσης δεδομένων, το οποίο μοιάζει με κάτι που φαίνεται στην παραπάνω εικόνα.
Δημιουργήστε μια νέα βάση δεδομένων και ονομάστε την κάτι που σχετίζεται με το έργο σας, το δικό μου ονομάζεται "alarmsystem" (αυτά τα ονόματα θα είναι κεφαλαία)
Κάτω από αυτήν τη βάση δεδομένων, δημιουργήστε έναν νέο πίνακα και ονομάστε τον, ο δικός μου ονομάζεται "alarmdata"
θα σας ρωτήσει αν θέλετε να χρησιμοποιήσετε το "latin1_swedish_ci" και το κρατάμε έτσι.
Τώρα δημιουργείτε 6 πίνακες (1 περισσότερο από τα δεδομένα που έχουμε)
Ο πρώτος πίνακας πρέπει να χρησιμοποιεί τον τύπο δεδομένων "longtext"
και το υπόλοιπο σύνολο δεδομένων χρησιμοποιεί "mediumtext"
Φροντίστε να τα ονομάσετε. (το πρώτο σύνολο δεδομένων πρέπει να ονομάζεται "χρόνος"
Βήμα 4: Βάση δεδομένων
Το σύνολο δεδομένων Wampserver θα πρέπει να μοιάζει με αυτό.
(αλλά χωρίς τα πραγματικά δεδομένα, καθώς δεν έχουμε φτάσει ακόμα σε αυτό)
Βήμα 5: Κόκκινος κόμβος στο Wampserver
Τώρα θέλουμε τα δεδομένα που εξάγουμε από το arduino μας να πάνε στο Wampserver μας.
Ξεκινήστε δημιουργώντας ένα άλλο μπλοκ συνάρτησης Javascript και συνδέστε το στον κόμβο εισόδου arduino.
Σε αυτό το μπλοκ σεναρίων, χωρίζουμε για άλλη μια φορά τα δεδομένα μας, αλλά τα εισάγουμε επίσης στη βάση δεδομένων μας.
var data = msg.payload.split (","); var Green1 = data [0]; var Green2 = δεδομένα [1]; var Συναγερμός = δεδομένα [2]; var Millis = δεδομένα [3]; var IsActive = δεδομένα [4]; var out = "INSERT INTO alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) VALUES ('"+new Date (). toISOString (). slice (0, 19).replace (' T ',' ')+"', '"+Green1+"', '"+Green2+"', '"+Συναγερμός+"', '"+Millis+"'," "+IsActive+" ') "; msg.topic = out; επιστροφή msg.
Παρατηρήστε ότι εισάγω "INSERT INTO alarmsystem.alarmdata", αυτό είναι το όνομα που δώσαμε στη βάση δεδομένων και στον πίνακα μας, βεβαιωθείτε ότι γράφετε το ακριβές όνομα που δώσατε στη βάση δεδομένων σας σε αυτό.
Τώρα συνδέστε το μπλοκ Javascript σε έναν κόμβο εντοπισμού σφαλμάτων και επίσης έναν κόμβο "mysql" που βρίσκεται κάτω από την παλέτα αποθήκευσης στην αριστερή πλευρά.
κάτω από το μπλοκ mysql το ονομάζετε ίδιο με το "alarmsystem" της βάσης δεδομένων σας
αλλαγή χρήστη σε "root" (το όνομα που χρησιμοποιήσαμε για να συνδεθούμε στον διακομιστή μας)
Ο κεντρικός υπολογιστής, η θύρα και η βάση δεδομένων πρέπει να συμπληρωθούν ήδη με:
Διοργανωτής: 127.0.0.1
Λιμάνι: 3306
Βάση δεδομένων: σύστημα συναγερμού
Εάν όλα έχουν γίνει σωστά, θα πρέπει να συνδεθεί αφού αναπτύξετε τις αλλαγές σας.
Θα πρέπει επίσης να μπορείτε να δείτε ότι η βάση δεδομένων καταγράφει τώρα τα δεδομένα σας απευθείας από το Arduino.
Βήμα 6: Χρήση δεδομένων από Wampserver σε Κόκκινο κόμβο
Για την τελική ευθεία θέλουμε να δούμε αν μπορούμε να πάρουμε τα δεδομένα που έχουμε αποθηκεύσει και να τα ξαναβάλουμε στο κόκκινο κόμβο μας και ελπίζουμε να τα εμφανίσουμε.
Ξεκινήστε τοποθετώντας έναν κόμβο "ένεσης"
Στο θέμα σε αυτόν τον κόμβο βάζουμε τον κωδικό: SELECT*FROM alarmsystem.alarmdata
Αυτό θα μπορεί να βρει τη βάση δεδομένων μας όταν την πατήσουμε.
Συνδέστε τον κόμβο ένεσης σε έναν νέο κόμβο "mysql" που έχει ρυθμιστεί ακριβώς όπως αυτός που κάναμε στο προηγούμενο βήμα.
Συνδέστε τον κόμβο mysql σε έναν κόμβο εντοπισμού σφαλμάτων και έναν κόμβο προτύπου που βρίσκεται κάτω από τον πίνακα ελέγχου.
Ο κόμβος προτύπου θα είναι ο πίνακας μας που μπορούμε να ενημερώσουμε για να εμφανίζονται δεδομένα από τη βάση δεδομένων όπως παράγονται.
Εισαγάγετε τον κώδικα που εμφανίζεται στο παραπάνω στιγμιότυπο οθόνης (αλλάξτε όπως απαιτείται) και τώρα θα πρέπει να εμφανίζει έναν πίνακα δεδομένων στο περιβάλλον εργασίας μας με κόκκινο κόμβο.
Μπορούμε επίσης να προσθέσουμε ένα κουμπί πίνακα ελέγχου για να ενημερώσουμε τον πίνακα από το ίδιο το περιβάλλον χρήστη.
Ξεκινήστε δημιουργώντας έναν κόμβο κουμπιού.
συνδέστε τον κόμβο κουμπιού σε ένα μπλοκ συνάρτησης Javascript.
στο μπλοκ συναρτήσεων εισάγουμε τον ακόλουθο κώδικα.
msg.topic = "SELECT * FROM alarmdata ORDER BY Green1 DESC LIMIT 20"; msg msg;
(Το Green1 είναι η πρώτη μεταβλητή δεδομένων στον πίνακα)
Αυτό το μπλοκ συνάρτησης πρέπει στη συνέχεια να συνδεθεί στην είσοδο του κόμβου mysql που κάναμε προηγουμένως σε αυτό το βήμα.
Βήμα 7: Ολοκλήρωση
Τώρα η διεπαφή χρήστη θα πρέπει να περιλαμβάνει μια ζωντανή ενημέρωση των δεδομένων μας και έναν πίνακα με δεδομένα από τον ίδιο τον διακομιστή μας.
Αυτό σημαίνει ότι έχουμε δημιουργήσει μια σύνδεση μεταξύ του Arduino, ενός προγράμματος που βασίζεται στη διεπαφή χρήστη και μιας βάσης δεδομένων.
Εάν ενδιαφέρεστε για το πώς λειτουργεί το σύστημα συναγερμού Arduino, έχω προσθέσει ένα έγγραφο που εξηγεί πώς προγραμματίζεται και ρυθμίζεται.
Καθώς και μια πλήρης εξαγωγή του προγραμματισμού κόμβου-κόκκινου.
Συνιστάται:
Ανάγνωση και γραφική παράσταση δεδομένων αισθητήρα φωτός και θερμοκρασίας με Raspberry Pi: 5 βήματα
Ανάγνωση και γραφική παράσταση δεδομένων αισθητήρα φωτός και θερμοκρασίας με το Raspberry Pi: Σε αυτό το Instructable θα μάθετε πώς να διαβάζετε έναν αισθητήρα φωτός και θερμοκρασίας με βατόμουρο pi και ψηφιακό μετατροπέα ADS1115 και να το γράφετε χρησιμοποιώντας matplotlib. Ας ξεκινήσουμε με τα απαραίτητα υλικά
Πώς να κάνετε υγρασία και θερμοκρασία σε πραγματικό χρόνο καταγραφέα δεδομένων με Arduino UNO και κάρτα SD - Προσομοίωση DHT11 Data-logger στο Proteus: 5 Βήματα
Πώς να κάνετε υγρασία και θερμοκρασία σε πραγματικό χρόνο καταγραφέα δεδομένων με Arduino UNO και κάρτα SD | Προσομοίωση DHT11 Data-logger στο Proteus: Εισαγωγή: γεια, αυτό είναι το Liono Maker, εδώ είναι ο σύνδεσμος του YouTube. Κάνουμε δημιουργικό έργο με το Arduino και δουλεύουμε σε ενσωματωμένα συστήματα. Data-Logger: Ένας καταγραφέας δεδομένων (επίσης data-logger ή data recorder) είναι μια ηλεκτρονική συσκευή που καταγράφει δεδομένα με την πάροδο του χρόνου
Ανάγνωση δεδομένων υπερηχητικού αισθητήρα (HC-SR04) Δεδομένων σε οθόνη LCD 128 × 128 και οπτικοποίηση χρησιμοποιώντας Matplotlib: 8 βήματα
Ανάγνωση δεδομένων υπερηχητικού αισθητήρα (HC-SR04) Δεδομένων σε LCD 128 × 128 και οπτικοποίηση χρησιμοποιώντας Matplotlib: Σε αυτό το διδακτικό, θα χρησιμοποιήσουμε το MSP432 LaunchPad + BoosterPack για την εμφάνιση δεδομένων υπερήχων αισθητήρων (HC-SR04) σε 128 × 128 LCD και στείλτε τα δεδομένα στον Η / Υ σειριακά και οπτικοποιήστε τα χρησιμοποιώντας το Matplotlib
Αισθητήρας ασύρματης θερμοκρασίας και υγρασίας IOT μεγάλης εμβέλειας με κόκκινο κόμβο: 27 βήματα
Αισθητήρας ασύρματης θερμοκρασίας και υγρασίας IOT Long Range With Node-Red: Παρουσιάζουμε τον ασύρματο αισθητήρα θερμοκρασίας και υγρασίας μεγάλης εμβέλειας της NCD, με εμβέλεια έως και 28 Mile χρησιμοποιώντας αρχιτεκτονική ασύρματης δικτύωσης πλέγματος. Ο ενσωματωμένος αισθητήρας θερμοκρασίας-υγρασίας Honeywell HIH9130 μεταδίδει εξαιρετικά ακριβή θερμοκρασία
Ένδειξη θερμοκρασίας και υγρασίας και συλλογή δεδομένων με Arduino και επεξεργασία: 13 βήματα (με εικόνες)
Εμφάνιση θερμοκρασίας και υγρασίας και συλλογή δεδομένων με Arduino και επεξεργασία: Εισαγωγή: Πρόκειται για ένα έργο που χρησιμοποιεί έναν πίνακα Arduino, έναν αισθητήρα (DHT11), έναν υπολογιστή Windows και ένα πρόγραμμα επεξεργασίας (δωρεάν λήψη) για την εμφάνιση δεδομένων θερμοκρασίας, υγρασίας σε ψηφιακή και φόρμα γραφήματος, εμφάνιση ώρας και ημερομηνίας και εκτέλεση χρόνου αντίστροφης μέτρησης