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

UCL-IIOT-Σύστημα συναγερμού με βάση δεδομένων και κόκκινο κόμβο: 7 βήματα
UCL-IIOT-Σύστημα συναγερμού με βάση δεδομένων και κόκκινο κόμβο: 7 βήματα

Βίντεο: UCL-IIOT-Σύστημα συναγερμού με βάση δεδομένων και κόκκινο κόμβο: 7 βήματα

Βίντεο: UCL-IIOT-Σύστημα συναγερμού με βάση δεδομένων και κόκκινο κόμβο: 7 βήματα
Βίντεο: theft alarm using arduino | Door alarm using arduino | திருடர் அபாயமணி🤡🤡🤡 2024, Ιούλιος
Anonim
UCL-IIOT-Σύστημα συναγερμού με βάση δεδομένων και κόκκινο κόμβο
UCL-IIOT-Σύστημα συναγερμού με βάση δεδομένων και κόκκινο κόμβο
UCL-IIOT-Σύστημα συναγερμού με βάση δεδομένων και κόκκινο κόμβο
UCL-IIOT-Σύστημα συναγερμού με βάση δεδομένων και κόκκινο κόμβο

Ο σκοπός αυτής της κατασκευής είναι να διδάξει τη σύνδεση του Arduino με το Node-red και μια βάση δεδομένων, ώστε να μπορείτε να καταγράφετε δεδομένα και επίσης να τα συλλέγετε για μεταγενέστερη χρήση.

Για αυτήν την κατασκευή χρησιμοποιώ ένα απλό σύστημα συναγερμού arduino που εξάγει 5 αριθμούς δεδομένων, ο καθένας χωρισμένος με κόμμα.

Δεν είναι απαραίτητο να έχετε αυτόν τον ακριβή όγκο δεδομένων και το πρόγραμμα μπορεί να είναι οτιδήποτε.

Το σημαντικό μέρος είναι ότι τα δεδομένα διαχωρίζονται με κόμματα όπως φαίνεται σε αυτό το στιγμιότυπο οθόνης.

Η έξοδος θα μπορούσε για παράδειγμα να μοιάζει με αυτήν: "324, 0, 0, 1, 1"

(ο τελικός προγραμματισμός και οι οδηγίες για τη δημιουργία του arduino συνδέονται στο κάτω μέρος αυτού του σεμιναρίου)

Βήμα 1: Ξεκινώντας με το Node-red

Ξεκινώντας με το Node-red
Ξεκινώντας με το 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
Βάση δεδομένων με Wampserver

Για να λειτουργήσει η βάση δεδομένων μας, πρέπει να έχετε εγκατεστημένο το Wampserver. Αφού εγκατασταθεί και εμφανιστεί ως πράσινο εικονίδιο (αφού έχετε ξεκινήσει όλες τις υπηρεσίες), θα πρέπει να ανοίξετε το "phpMyAdmin" το οποίο θα σας μεταφέρει σε μια οθόνη σύνδεσης. Εκτός αν έχετε το άλλαξε προηγουμένως, απλά εισάγετε "root" στο όνομα χρήστη και τη σύνδεση.

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

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

Κάτω από αυτήν τη βάση δεδομένων, δημιουργήστε έναν νέο πίνακα και ονομάστε τον, ο δικός μου ονομάζεται "alarmdata"

θα σας ρωτήσει αν θέλετε να χρησιμοποιήσετε το "latin1_swedish_ci" και το κρατάμε έτσι.

Τώρα δημιουργείτε 6 πίνακες (1 περισσότερο από τα δεδομένα που έχουμε)

Ο πρώτος πίνακας πρέπει να χρησιμοποιεί τον τύπο δεδομένων "longtext"

και το υπόλοιπο σύνολο δεδομένων χρησιμοποιεί "mediumtext"

Φροντίστε να τα ονομάσετε. (το πρώτο σύνολο δεδομένων πρέπει να ονομάζεται "χρόνος"

Βήμα 4: Βάση δεδομένων

Βάση δεδομένων
Βάση δεδομένων

Το σύνολο δεδομένων Wampserver θα πρέπει να μοιάζει με αυτό.

(αλλά χωρίς τα πραγματικά δεδομένα, καθώς δεν έχουμε φτάσει ακόμα σε αυτό)

Βήμα 5: Κόκκινος κόμβος στο Wampserver

Κόμβος-κόκκινος σε Wampserver
Κόμβος-κόκκινος σε 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 σε Κόκκινο κόμβο

Χρήση δεδομένων από Wampserver σε Κόκκινο κόμβο
Χρήση δεδομένων από Wampserver σε Κόκκινο κόμβο
Χρήση δεδομένων από Wampserver σε Κόκκινο κόμβο
Χρήση δεδομένων από 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, έχω προσθέσει ένα έγγραφο που εξηγεί πώς προγραμματίζεται και ρυθμίζεται.

Καθώς και μια πλήρης εξαγωγή του προγραμματισμού κόμβου-κόκκινου.

Συνιστάται: