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

UCL - IIoT - Αγορά αγροτών: 7 βήματα
UCL - IIoT - Αγορά αγροτών: 7 βήματα

Βίντεο: UCL - IIoT - Αγορά αγροτών: 7 βήματα

Βίντεο: UCL - IIoT - Αγορά αγροτών: 7 βήματα
Βίντεο: Part 3 - Babbitt Audiobook by Sinclair Lewis (Chs 10-15) 2024, Ιούλιος
Anonim
UCL - IIoT - Αγορά αγροτών
UCL - IIoT - Αγορά αγροτών

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

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

Κατασκευάστηκε από τρεις φοιτητές του University College Lillebælt στη Δανία. Από το προηγούμενο έργο μας, The coin sorter, μάθαμε πολλά νέα πράγματα που θα ενσωματώσουμε στην κατασκευή. Επιλέξαμε να παραιτηθούμε από τη διαλογή των νομισμάτων και αντ 'αυτού να κάνουμε το μηχάνημα να τα μετρήσει, καταθέτοντάς τα σε ένα κοινόχρηστο κουτί νομισμάτων.

Το πορτοφόλι αποτελείται από πέντε διαφάνειες ή υποδοχές, μία για κάθε τύπο νομίσματος. Όταν ένα νόμισμα τοποθετηθεί στην κατάλληλη υποδοχή, θα πέσει κάτω περνώντας έναν ανακλαστήρα, ο οποίος στέλνει ένα σήμα HIGH στο arduino. Θα χρησιμοποιήσουμε το σήμα για να προσθέσουμε την αξία των κερμάτων στο συνολικό αριθμό, να την εμφανίσουμε στην εξωτερική οθόνη και να στείλουμε το νέο σύνολο σε ένα διακομιστή. Μόλις ο διακομιστής λάβει το σύνολο, θα ενημερώσει ένα UI που βρέθηκε στο διαδίκτυο και δείχνει το νέο σύνολο.

Περιγραφή Ένα κουτί με πέντε υποδοχές νομισμάτων που οδηγούν σε πέντε μεμονωμένες, εσωτερικές διαφάνειες, μία για κάθε τύπο νομίσματος: 1kr, 2kr, 5kr, 10kr, 20kr

Οθόνη LCD που δείχνει τα συνολικά μετρητά που τοποθετούνται στο πάνω μέρος του κουτιού.

Το πάνω μέρος του κουτιού είναι ασφαλισμένο με καταπακτές. Αν σηκώσετε την κορυφή θα αφαιρέσετε το περίβλημα του arduino μαζί με το επάνω μέρος που περιέχει την οθόνη LCD, τις σχισμές νομισμάτων, τους ανακλαστήρες κ.λπ., αφήνοντας μόνο το κουτί στο οποίο έχουν τοποθετηθεί τα κέρματα.

Εξαρτήματα και υλικά - Εργαλεία και εξοπλισμός για την κατασκευή κουτιού (μπορεί να είναι χαρτόνι ή ξύλο)

- Arduino Mega 2560

- 30 jumperwires

- 5 x LDR "Αισθητήρας φωτός"

- Αντιστάσεις 5 x 220 ohm

- Αντιστάσεις 5 x 10k ohm

- 5 x λευκά LED

- Μονάδα LCD 16x02

- Νομίσματα

Κωδικός στο Arduino

Όπως αναφέρθηκε νωρίτερα, αυτό το έργο προέρχεται από ένα προηγούμενο έργο που κάναμε πριν από περίπου οκτώ μήνες (https://www.instructables.com/id/Coin-Sorting-Machine/). Εξαιτίας αυτού, είμαστε σε θέση να επαναχρησιμοποιήσουμε ένα μεγάλο μέρος του κώδικα στο arduino, αν και υπάρχουν κάποιες μικρότερες αλλαγές σε αυτό. Όπως θα δείτε, ο κώδικας είναι αρκετά απλός, κάτι που κάθε άτομο με λίγη εμπειρία στο Arduino θα πρέπει να μπορεί να καταλάβει.

Node-RED Το Node-RED είναι το εργαλείο που θα χρησιμοποιήσουμε για να λάβουμε τα δεδομένα από το arduino και τον υπολογιστή σας, και περαιτέρω στο διαδίκτυο, αν αυτό σας συμφέρει. Ένας άλλος σημαντικός λόγος για τη χρήση του Node-RED, είναι η δυνατότητα παρουσίασης δεδομένων από το Arduino με τρόπο που είναι εύκολα κατανοητό, για άτομα που δεν έχουν εμπειρία προγραμματισμού/κωδικοποίησης με Arduino και Node-RED.

Βάση δεδομένων Χρησιμοποιώντας το Wampserver μπορούμε να αποθηκεύσουμε τις τιμές μας από το Arduino σε μια βάση δεδομένων. Με το Wampserver είναι δυνατό να δημιουργήσετε και να εναλλάξετε τη δική σας βάση δεδομένων όπως θέλετε, χρησιμοποιώντας το phpMyAdmin για τη διαχείριση της MySQL. Στην περίπτωσή μας έχουμε έξι τιμές που πρέπει να αποθηκεύσουμε (μία για κάθε είδος νομίσματος και μία για το αποτέλεσμα), και ως εκ τούτου έχουμε δημιουργήσει έξι στήλες στις οποίες μπορεί να αποθηκευτεί κάθε τιμή.

Βήμα 1: Πώς λειτουργεί;

Πώς λειτουργεί?
Πώς λειτουργεί?

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

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

Ο αισθητήρας φωτός LDR θα παρατηρήσει τη μειωμένη ποσότητα φωτός, όταν το νόμισμα περάσει από τον αισθητήρα, το οποίο θα ενεργοποιήσει το πρόγραμμα Arduino να αυξήσει τη μεταβλητή "Antal" (Αριθμός) με ένα, καθώς υπάρχει πλέον ένα νόμισμα στο μηχάνημα. Ταυτόχρονα, η τιμή του νομίσματος προστίθεται στη μεταβλητή "αποτέλεσμα". Το "αποτέλεσμα" θα εμφανιστεί στην οθόνη LCD με τη νέα του τιμή.

Οι νέες τιμές του "Antal" και του "αποτελέσματος" αποστέλλονται στο Node-RED, στο οποίο το ταμπλό θα ενημερώνεται με αυτές τις τιμές. Επιτέλους, το Node-RED στέλνει τις τιμές στη βάση δεδομένων μας.

Και επαναλάβετε.

Βήμα 2: Φτιάχνοντας ένα κουτί

Αυτή τη φορά χρησιμοποιήσαμε το Illustrator για να σχεδιάσουμε το κουτί μας. Με έναν κόφτη λέιζερ πρέπει να κατασκευάσουμε με ακρίβεια αυτό το κουτί και τα χαρακτηριστικά που απαιτούνται για το έργο μας. Στο τέλος εξαρτάται από εσάς, να αποφασίσετε πώς να φτιάξετε το τέλειο κουτί για το έργο σας.

Βήμα 3: Προσθήκη Arduino

Προσθήκη Arduino
Προσθήκη Arduino

It'sρθε η ώρα να εφαρμόσετε το Arduino στο κουτί. Αυτό μπορεί να είναι αρκετά δύσκολο, καθώς ο αισθητήρας μπορεί να συμπεριφέρεται απρόβλεπτα. (Νέο) Σε αυτό το βήμα αλλάξαμε τον αισθητήρα που χρησιμοποιούμε, λόγω της προαναφερθείσας αναξιοπιστίας αυτών των αισθητήρων (tcrt 5000). Αντ 'αυτού, επιλέξαμε έναν πιο απλό αισθητήρα LDR (αντίσταση εξαρτώμενη από το φως). Η έξοδος από αυτόν τον αισθητήρα είναι μια αναλογική τιμή, η οποία αλλάζει ανάλογα με την ποσότητα φωτός που φτάνει στον ίδιο τον αισθητήρα.

Βήμα 4: Κωδικός Arduino

Σε αυτό το βήμα εστιάζουμε στο λογισμικό. Ο κώδικας Arduino μοιάζει με αυτόν:

const int sensorPin1 = 3; // Αισθητήρας TCRT-5000 που είναι συνδεδεμένος στο pin nr. 2 int sensorState1 = 0; // Περιέχει την τιμή του αισθητήρα (Υψηλή/χαμηλή)

int Antal10 = 0; // Μεταβλητή που αποθηκεύει το ποσό των κερμάτων που έχουν τοποθετηθεί στο μηχάνημα int

Αποτέλεσμα = 0; // Μεταβλητή που αποθηκεύει τη συνδυασμένη αξία όλων των κερμάτων που τοποθετούνται στο μηχάνημα

void setup () {Serial.begin (9600); }

void loop () {int sensorState1 = analogRead (sensorPin1); // Διαβάζει την κατάσταση του αισθητήρα

εάν (540 <sensorState1 <620) {// Όταν η τιμή εξόδου των αισθητήρων είναι μεταξύ 540 και 620

Antal10 += 10; // - υπάρχει ένα νόμισμα που διέρχεται από τον αισθητήρα, το οποίο αποκλείει λίγο φως

resultat += 10; // - και ο αισθητήρας θα διαβάσει χαμηλότερο επίπεδο φωτός}

Serial.print (Resultat);

Serial.print (","); // Διαχωρίζει τις μεταβλητές με κόμμα, το οποίο είναι απαραίτητο κατά την ανάγνωση των τιμών των μεταβλητών στο Node-RED

Serial.println (Antal10); // - και επίσης απαιτείται όταν αυτές οι τιμές πρέπει να αποθηκευτούν στη βάση δεδομένων

καθυστέρηση (100)? }

Αυτός ο κωδικός είναι γραμμένος μόνο για έναν αισθητήρα, για ευκολότερη ανάγνωση.

Πλήρης κωδικός:

Βήμα 5: Κόμβος-ΚΟΚΚΙΝΟ

Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ

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

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

Όπως αναφέρθηκε ealier έχουμε έξι αξίες που πρέπει να αντιμετωπιστούν. Με τις δυνατότητες του πίνακα ελέγχου του Node-Red είμαστε σε θέση να εμφανίσουμε αυτές τις τιμές, όπως θα δείτε στην εικόνα στα δεξιά στο πάνω μέρος του Βήματος 3.

Κωδικός κόμβου-RED:

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

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

Τώρα θα χρησιμοποιήσουμε μια βάση δεδομένων για να αποθηκεύσουμε τις τιμές. Με το Wampserver είναι δυνατή η χρήση του phpMyAdmin για τη διαχείριση του MySQL και τη δημιουργία της δικής σας βάσης δεδομένων, χρησιμοποιώντας έναν τοπικό διακομιστή που ταιριάζει στις συγκεκριμένες ανάγκες σας.

Αρχικά, όταν δημιουργείτε μια βάση δεδομένων (farm_market) από την αρχή, πρέπει να δημιουργήσετε έναν πίνακα (mont_tabel), στον οποίο αποθηκεύετε τις αξίες σας. Ανάλογα με το πόσα δεδομένα έχετε και πώς πρέπει να τα παραγγείλετε, μπορείτε να φτιάξετε όσα τραπέζια χρειάζεστε. Επειδή πρέπει να αποθηκεύσουμε έξι διαφορετικές τιμές και, ως εκ τούτου, χρειαζόμασταν έξι στήλες, μία για κάθε τιμή, στον πίνακά μας. Στην παραπάνω εικόνα μπορείτε να δείτε τη βάση δεδομένων μας.

Όταν τα δεδομένα μας φτάνουν στο Node-RED, διασπώνται από μια λειτουργία διαίρεσης και τα δεδομένα τώρα αποστέλλονται στη βάση δεδομένων.

Βήμα 7: Αξιολόγηση

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

Η αλλαγή των αισθητήρων από έναν TCRT-5000 και έναν απλό αισθητήρα φωτός LDR έδωσε πολύ μεγαλύτερη σταθερότητα, όσον αφορά την ικανότητα των αισθητήρων να διαβάζουν γρήγορα όταν περνάει ένα νόμισμα. Όταν εργάζεστε με ένα TCRT-5000 υπάρχουν πολλοί παράγοντες που πρέπει να ληφθούν υπόψη, προκειμένου ο αισθητήρας να λειτουργήσει όπως θα θέλατε.

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

Συνιστάται: