- Απαιτούμενα στοιχεία
- Ενότητα EM18 RFID Reader
- MLX90614 Υπέρυθρο θερμόμετρο
- Διάγραμμα κυκλώματος
- Επεξήγηση κώδικα
- Αποθήκευση δεδομένων αισθητήρα σε φύλλο Excel από το Arduino Controller
Από το ξέσπασμα του Covid-19, τα υπέρυθρα θερμόμετρα χρησιμοποιούνται ως εργαλείο διαλογής για τη σάρωση των ανθρώπων στα Αεροδρόμια, στους Σιδηροδρομικούς Σταθμούς και σε άλλα πολυπληθή καταστήματα Αυτές οι σαρώσεις χρησιμοποιούνται για τον εντοπισμό πιθανών ασθενών του Covid-19. Η κυβέρνηση υποχρεούσε να σαρώσει όλους πριν μπουν στο γραφείο, στο σχολείο ή σε οποιοδήποτε άλλο πολυσύχναστο μέρος.
Έτσι σε αυτό το σεμινάριο, πρόκειται να δημιουργήσουμε ένα σύστημα παρακολούθησης θερμοκρασίας χωρίς επαφή με βάση RFID χρησιμοποιώντας έναν αισθητήρα θερμοκρασίας χωρίς επαφή με το Arduino. Όταν οι υπάλληλοι σαρώνουν την κάρτα RFID, θα μετρά τη θερμοκρασία σώματος των εργαζομένων με ένα θερμόμετρο υπερύθρων χωρίς επαφή και θα καταγράφει το όνομα και τη θερμοκρασία αυτού του υπαλλήλου απευθείας στο φύλλο excel. Θα χρησιμοποιήσουμε τους Arduino Nano, MLX90614, EM18 RFID Reader και Ultrasonic Sensor για την κατασκευή αυτού του έργου. Ο αισθητήρας υπερήχων χρησιμοποιείται για τον υπολογισμό της απόστασης μεταξύ του θερμομέτρου και του ατόμου. Το θερμόμετρο θα μετρήσει τη θερμοκρασία μόνο όταν η απόσταση είναι μικρότερη από 25 CM. Είναι κάτι σαν ένα σύστημα παρακολούθησης που βασίζεται σε RFID, το οποίο καταγράφει επίσης τη θερμοκρασία του σώματος κάθε ατόμου.
Απαιτούμενα στοιχεία
- Arduino Nano
- Ενότητα EM-18 RFID
- MLX90614 Αισθητήρας θερμοκρασίας χωρίς επαφή
- Αισθητήρας υπερήχων
- Ψωμί
- Καλώδια αλτών
Ενότητα EM18 RFID Reader
Ένας από τους ευρέως χρησιμοποιούμενους αναγνώστες RFID για την ανάγνωση ετικετών 125 kHz είναι ο EM-18 RFID Reader. Αυτή η μονάδα χαμηλού κόστους RFID Reader διαθέτει χαμηλή κατανάλωση ενέργειας, χαμηλό συντελεστή μορφής και εύχρηστο. Το EM-18 Reader Module μπορεί να παρέχει έξοδο μέσω δύο διεπαφών επικοινωνίας, δηλαδή RS232 και WEIGAND26.
Το EM18 RFID Reader διαθέτει πομποδέκτη που εκπέμπει ραδιοφωνικό σήμα. Όταν η ετικέτα RFID έρχεται στο εύρος σήματος του πομπού, αυτό το σήμα χτυπά τον πομποδέκτη που βρίσκεται μέσα στην κάρτα. Η ετικέτα αντλεί ενέργεια από το πεδίο ηλεκτρομαγνήτη που δημιουργείται από τη μονάδα ανάγνωσης. Ο πομποδέκτης στη συνέχεια μετατρέπει το ραδιοφωνικό σήμα σε χρησιμοποιήσιμη μορφή ισχύος. Μόλις αποκτήσει ισχύ, ο αναμεταδότης μεταφέρει όλες τις πληροφορίες, όπως ένα συγκεκριμένο αναγνωριστικό, με τη μορφή ενός σήματος RF στο RFID Module. Στη συνέχεια, αυτά τα δεδομένα αποστέλλονται στον μικροελεγκτή χρησιμοποιώντας επικοινωνία UART.
Για να μάθετε περισσότερα σχετικά με το RFID και τις ετικέτες, ελέγξτε τα προηγούμενα έργα με βάση το RFID.
MLX90614 Υπέρυθρο θερμόμετρο
Προτού συνεχίσουμε το σεμινάριο, είναι σημαντικό να γνωρίζουμε πώς λειτουργεί ο αισθητήρας MLX90614. Υπάρχουν πολλοί αισθητήρες θερμοκρασίας στην αγορά και χρησιμοποιούμε εκτενώς τους αισθητήρες DHT11 και LM35 για πολλές εφαρμογές όπου πρέπει να μετρηθεί η ατμοσφαιρική υγρασία ή η θερμοκρασία.
Χρησιμοποιήσαμε προηγουμένως αυτόν τον αισθητήρα στο θερμικό πιστόλι IR που μπορεί να ανιχνεύσει τη θερμοκρασία ενός συγκεκριμένου αντικειμένου (όχι περιβάλλοντος) χωρίς να έρθει σε άμεση επαφή με το αντικείμενο. Εδώ χρησιμοποιούμε πάλι τον ίδιο αισθητήρα για να υπολογίσουμε τη θερμοκρασία ενός αντικειμένου. Το MLX90614 είναι ένας τέτοιος αισθητήρας που χρησιμοποιεί ενέργεια IR για την ανίχνευση της θερμοκρασίας ενός αντικειμένου. Για να μάθετε περισσότερα σχετικά με το κύκλωμα αισθητήρα υπερύθρων και υπερύθρων, ακολουθήστε τον σύνδεσμο.
Ο αισθητήρας MLX90614 κατασκευάζεται από το ολοκληρωμένο σύστημα Melexis Microelectronics, διαθέτει δύο συσκευές ενσωματωμένες, μία είναι η ανιχνευτή υπέρυθρων θερμοπυλών (μονάδα ανίχνευσης) και η άλλη είναι μια συσκευή DSP κλιματισμού σήματος (υπολογιστική μονάδα). Λειτουργεί βάσει του νόμου Stefan-Boltzmann που ορίζει ότι όλα τα αντικείμενα εκπέμπουν ενέργεια IR και η ένταση αυτής της ενέργειας θα είναι άμεσα ανάλογη με τη θερμοκρασία αυτού του αντικειμένου. Η μονάδα ανίχνευσης στον αισθητήρα μετρά πόση ενέργεια IR εκπέμπεται από ένα στοχευμένο αντικείμενο και η υπολογιστική μονάδα τη μετατρέπει σε τιμή θερμοκρασίας χρησιμοποιώντας ενσωματωμένο ADC 17-bit και εξάγει τα δεδομένα μέσω της επικοινωνίας I2C πρωτόκολλο. Ο αισθητήρας μετρά τόσο τη θερμοκρασία του αντικειμένου όσο και τη θερμοκρασία περιβάλλοντος για τη βαθμονόμηση της τιμής θερμοκρασίας του αντικειμένου. Τα χαρακτηριστικά του αισθητήρα MLX90614 δίνονται παρακάτω, για περισσότερες λεπτομέρειες ανατρέξτε στο φύλλο δεδομένων MLX90614.
Διάγραμμα κυκλώματος
Το διάγραμμα κυκλώματος για τον αισθητήρα θερμοκρασίας χωρίς επαφή με βάση RFID χρησιμοποιώντας το Arduino δίνεται παρακάτω:
Όπως φαίνεται στο διάγραμμα κυκλώματος, οι συνδέσεις είναι πολύ απλές δεδομένου ότι τις έχουμε χρησιμοποιήσει ως μονάδες, μπορούμε να τις χτίσουμε απευθείας σε ένα breadboard. Η λυχνία LED που είναι συνδεδεμένη στην καρφίτσα BUZ της ενότητας EM18 Reader γίνεται ψηλή όταν κάποιος σαρώνει την ετικέτα. Η μονάδα RFID στέλνει δεδομένα στον ελεγκτή σειριακά. Ως εκ τούτου, ο ακροδέκτης πομπού της μονάδας RFID συνδέεται με τον ακροδέκτη δέκτη του Arduino. Οι συνδέσεις ταξινομούνται περαιτέρω στον παρακάτω πίνακα:
Arduino Nano |
Ενότητα EM18 RFID |
5V |
Vcc |
GND |
GND |
5V |
ΣΕΛ |
Rx |
Τχ |
Arduino Nano |
MLX90614 |
5V |
Vcc |
GND |
GND |
Α5 |
SCL |
Α4 |
SDA |
Arduino Nano |
Αισθητήρας υπερήχων (HCSR-04) |
5V |
Vcc |
GND |
GND |
Δ5 |
Κομψός |
Δ6 |
Ηχώ |
Επεξήγηση κώδικα
Πρέπει να γράψουμε έναν κωδικό Arduino που μπορεί να διαβάσει δεδομένα από τον αισθητήρα υπερήχων, MLX90614, EM18 RFID Reader Module και να στείλει το όνομα και τη θερμοκρασία ενός ατόμου σε ένα φύλλο Excel. Για αυτόν τον κωδικό, πρέπει να κάνετε λήψη των βιβλιοθηκών Wire και MLX90614. Μετά τη λήψη των βιβλιοθηκών, προσθέστε τις στο Arduino IDE σας.
Ο πλήρης κωδικός για αυτήν την παρακολούθηση της θερμοκρασίας σώματος χωρίς επαφή δίνεται στο τέλος της σελίδας. Εδώ το ίδιο πρόγραμμα θα εξηγηθεί σε μικρά αποσπάσματα.
Ως συνήθως, ξεκινήστε τον κώδικα συμπεριλαμβάνοντας όλες τις απαιτούμενες βιβλιοθήκες. Εδώ η βιβλιοθήκη σύρμα χρησιμοποιείται για να επικοινωνούν χρησιμοποιώντας το πρωτόκολλο I2C και η Adafruit_MLX90614.h βιβλιοθήκη χρησιμοποιείται για την ανάγνωση των δεδομένων του αισθητήρα MLX90614.
#περιλαμβάνω
Στη συνέχεια ορίζουμε τις ακίδες του αισθητήρα υπερήχων με τους οποίους έχουμε κάνει τη σύνδεση
const int trigPin = 5; const int echoPin = 6;
Μετά από αυτό, ορίστε τις μεταβλητές για την αποθήκευση της μονάδας RFID, του αισθητήρα υπερήχων και των δεδομένων αισθητήρα MLX90614.
μεγάλη διάρκεια int απόσταση? String RfidReading; Float TempReading;
Μέσα στη λειτουργία ρύθμισης κενού () , προετοιμάζουμε τη σειριακή οθόνη για εντοπισμό σφαλμάτων και τον αισθητήρα θερμοκρασίας MLX90614. Επίσης, ορίστε τους ακροδέκτες Trig και Echo ως ακίδες εξόδου και εισόδου.
άκυρη ρύθμιση () {Serial.begin (9600); // Αρχικοποιήστε τη σειριακή επικοινωνία με το Serial Monitor pinMode (trigPin, OUTPUT). pinMode (echoPin, INPUT); mlx.begin (); Initialize_streamer (); }
Μέσα στη συνάρτηση void loop () , υπολογίστε την απόσταση μεταξύ του ατόμου και του αισθητήρα και εάν η απόσταση είναι μικρότερη ή ίση με 25cm, καλέστε τη λειτουργία αναγνώστη () για σάρωση της ετικέτας.
void loop () {digitalWrite (trigPin, LOW). καθυστέρηση Μικροδευτερόλεπτα (2); digitalWrite (trigPin, HIGH); καθυστέρηση Μικροδευτερόλεπτα (10); digitalWrite (trigPin, LOW); διάρκεια = pulseIn (echoPin, HIGH); απόσταση = διάρκεια * 0,0340 / 2; if (απόσταση <= 25) {αναγνώστης (); }
Η λειτουργία void reader () χρησιμοποιείται για την ανάγνωση της κάρτας ετικετών RFID. Μόλις η κάρτα φθάσει κοντά στη μονάδα αναγνώστη, η μονάδα ανάγνωσης διαβάζει τα σειριακά δεδομένα και την αποθηκεύει στη μεταβλητή εισόδου.
void reader () {if (Serial.available ()) {count = 0; ενώ (Serial.available () && count <12) {input = Serial.read (); μέτρηση ++; καθυστέρηση (5)
Στις επόμενες γραμμές, συγκρίνετε τα δεδομένα της σαρωμένης κάρτας με το προκαθορισμένο αναγνωριστικό ετικέτας. Εάν το αναγνωριστικό ετικέτας ταιριάζει με τη σαρωμένη κάρτα, διαβάστε τη θερμοκρασία του ατόμου και στείλτε τη θερμοκρασία και το όνομα του ατόμου στο φύλλο excel.
if (input == tag) flag = 1; άλλη σημαία = 0; μέτρηση ++; RfidReading = "Ashish"; }} εάν (flag == 1) {temp_read (); Γράψε_ ροή (); }
Μέσα στη λειτουργία temp_read () , διαβάστε τα δεδομένα αισθητήρα MLX90614 σε Κελσίου και αποθηκεύστε τα στη μεταβλητή 'TempReading'
void temp_read () {TempReading = mlx.readObjectTempC ();}
Μόλις το υλικό και το λογισμικό είναι έτοιμα, είναι καιρός να ανεβάσετε το πρόγραμμα στο Arduino Nano Board σας. Μόλις φορτωθεί το πρόγραμμά σας, ο αισθητήρας υπερήχων αρχίζει να υπολογίζει την απόσταση. Όταν η υπολογισμένη απόσταση είναι μικρότερη από 40 cm, διαβάζει τη θερμοκρασία και την κάρτα.
Αποθήκευση δεδομένων αισθητήρα σε φύλλο Excel από το Arduino Controller
Τώρα για να στείλουμε δεδομένα στο φύλλο Excel, θα χρησιμοποιήσουμε το PLX-DAQ. Είναι ένα λογισμικό Excel Plug-in που σας βοηθά να γράψετε τιμές από το Arduino σε απευθείας σε ένα φύλλο Excel στον φορητό ή τον υπολογιστή σας. Χρησιμοποιήστε τον σύνδεσμο για να κατεβάσετε το αρχείο. Μετά τη λήψη, εξαγάγετε το αρχείο και κάντε κλικ στο αρχείο.exe για να το εγκαταστήσετε. Θα δημιουργήσει ένα φάκελο με το όνομα PLS-DAQ στην επιφάνεια εργασίας σας.
Τώρα ανοίξτε το αρχείο «PLX-DAQ υπολογιστικό φύλλο» από το φάκελο της επιφάνειας εργασίας. Εάν οι μακροεντολές είναι απενεργοποιημένες στο Excel από ό, τι θα δείτε ένα μπλοκ ασφαλείας όπως φαίνεται στην παρακάτω εικόνα:
Κάντε κλικ στο Επιλογές-> Ενεργοποίηση του περιεχομένου -> Τέλος -> OK για Ενεργοποίηση των μακροεντολών. Μετά από αυτό θα εμφανιστεί η ακόλουθη οθόνη:
Τώρα επιλέξτε το ρυθμό baud ως "9600" και τη θύρα στην οποία είναι συνδεδεμένο το Arduino και, στη συνέχεια, κάντε κλικ στο Connect για να ξεκινήσει η ροή δεδομένων. Οι τιμές σας πρέπει να αρχίσουν να καταγράφονται όπως φαίνεται στην παρακάτω εικόνα.
Με αυτόν τον τρόπο μπορείτε να δημιουργήσετε μια συσκευή ελέγχου θερμοκρασίας χωρίς επαφή και να αποθηκεύσετε τα δεδομένα στο φύλλο Excel.
Στο τέλος της σελίδας δίνονται ένα βίντεο εργασίας και πλήρης κωδικός.