Πίνακας περιεχομένων:
- Βήμα 1: Μέρη και υλικά
- Βήμα 2: Καλωδίωση αισθητήρα θερμοκρασίας
- Βήμα 3: Έξοδος αισθητήρα θερμοκρασίας
- Βήμα 4: Είσοδος αισθητήρα νερού βροχής
- Βήμα 5: Έξοδος αισθητήρα νερού βροχής
- Βήμα 6: Είσοδος αισθητήρα δόνησης
- Βήμα 7: Έξοδος αισθητήρα δόνησης
- Βήμα 8: Συμπέρασμα
Βίντεο: Χρήση αισθητήρων θερμοκρασίας, νερού βροχής και δόνησης σε ένα Arduino για την προστασία των σιδηροδρόμων: 8 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Στη σύγχρονη κοινωνία, η αύξηση των επιβατών σιδηροδρόμων σημαίνει ότι οι σιδηροδρομικές εταιρείες πρέπει να κάνουν περισσότερα για να βελτιστοποιήσουν τα δίκτυα για να συμβαδίσουν με τη ζήτηση. Σε αυτό το έργο θα δείξουμε σε μικρή κλίμακα πώς οι αισθητήρες θερμοκρασίας, νερού της βροχής και κραδασμών σε έναν πίνακα arduino μπορούν να βοηθήσουν στην αύξηση της ασφάλειας των επιβατών.
Αυτό το Instructable θα δείξει βήμα προς βήμα την καλωδίωση για τους αισθητήρες θερμοκρασίας, νερού της βροχής και δόνησης στο arduino καθώς και τον κωδικό MATLAB που απαιτείται για την εκτέλεση αυτών των αισθητήρων.
Βήμα 1: Μέρη και υλικά
1. Υπολογιστής με εγκατεστημένη την τελευταία έκδοση του MATLAB
2. Πίνακας Arduino
3. Αισθητήρας θερμοκρασίας
4. Αισθητήρας βρόχινου νερού
5. Αισθητήρας δόνησης
6. Κόκκινο φως LED
7. Μπλε φως LED
8. Πράσινο φως LED
9. RBG LED Light
10. Buzzer
11. 18 αρσενικά-αρσενικά σύρματα
12. 3 Γυναικεία-αρσενικά σύρματα
13. 2 θηλυκά-θηλυκά σύρματα
14. 6 αντιστάσεις 330 ohm
15. 1 αντίσταση 100 ohm
Βήμα 2: Καλωδίωση αισθητήρα θερμοκρασίας
Πάνω είναι η καλωδίωση και ο κωδικός MATLAB για την είσοδο του αισθητήρα θερμοκρασίας επίσης.
Τα καλώδια από τη γείωση και τα 5V χρειάζεται μόνο να περάσουν στα αρνητικά και θετικά αντίστοιχα μία φορά για ολόκληρο τον πίνακα. Από εδώ και πέρα, τυχόν συνδέσεις γείωσης θα προέρχονται από την αρνητική στήλη και τυχόν συνδέσεις 5V θα προέρχονται από τη θετική στήλη.
Ο παρακάτω κωδικός μπορεί να αντιγραφεί και να επικολληθεί για τον αισθητήρα θερμοκρασίας.
%% ΑΙΣΘΗΤΗΡΑΣ ΘΕΡΜΟΚΡΑΣΙΑΣ % Για τον αισθητήρα θερμοκρασίας χρησιμοποιήσαμε την ακόλουθη πηγή μαζί με
% EF230 υλικό ιστότοπου για να τροποποιήσουμε τον αισθητήρα θερμοκρασίας για να επιτρέψουμε στον χρήστη
% εισόδου και 3 έξοδοι φωτός LED με ένα γράφημα.
%Αυτό το σκίτσο γράφτηκε από την SparkFun Electronics, %με πολλή βοήθεια από την κοινότητα Arduino.
%Προσαρμόστηκε στο MATLAB από τον Eric Davishahl.
%Επισκεφθείτε τη διεύθυνση https://learn.sparkfun.com/products/2 για πληροφορίες SIK.
διαγραφή όλων, clc
tempPin = 'A0'; % Δήλωση του αναλογικού πείρου συνδεδεμένου στον αισθητήρα θερμοκρασίας
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
% Ορισμός ανώνυμης συνάρτησης που μετατρέπει την τάση σε θερμοκρασία
tempCfromVolts = @(βολτ) (βολτ-0,5)*100;
samplingDuration = 30;
samplingInterval = 2; % Δευτερόλεπτα μεταξύ των μετρήσεων θερμοκρασίας
%ρυθμισμένο διάνυσμα χρόνων δειγματοληψίας
samplingTimes = 0: samplingInterval: samplingDuration;
%υπολογίστε τον αριθμό των δειγμάτων με βάση τη διάρκεια και το διάστημα
numSamples = μήκος (samplingTimes);
%προ -κατανομή μεταβλητών temp και μεταβλητής για τον αριθμό των μετρήσεων που θα αποθηκεύσει
tempC = μηδενικά (numSamples, 1);
tempF = tempC;
% χρησιμοποιώντας το παράθυρο διαλόγου εισαγωγής για αποθήκευση μέγιστων και ελάχιστων θερμοκρασιών σιδηροδρόμου
dlg_prompts = {'Enter Max Temp', 'Enter Min Temp'};
dlg_title = 'Διαστήματα θερμοκρασίας σιδηροδρόμου';
Ν = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, length (dlg_title)+N]);
% Αποθήκευση των εισόδων από το χρήστη και εμφάνιση της εγγραφής της εισόδου
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Η εισαγωγή σας έχει καταγραφεί');
h = msgbox (txt);
αναμονή (η)?
% Για βρόχο για ανάγνωση των θερμοκρασιών συγκεκριμένες φορές.
για δείκτη = 1: numSamples
% Διαβάστε την τάση στο tempPin και αποθηκεύστε ως μεταβλητά βολτ
volts = readVoltage (a, tempPin);
tempC (δείκτης) = tempCfromVolts (βολτ);
tempF (index) = tempC (index)*9/5+32; % Μετατροπή από Κελσίου σε Φαρενάιτ
% Εάν οι δηλώσεις για την ανάκτηση συγκεκριμένων λυχνιών LED αναβοσβήνουν ανάλογα με την προϋπόθεση που πληρούται
εάν tempF (ευρετήριο)> = max_temp % Κόκκινο LED
writeDigitalPin (a, 'D13', 0);
παύση (0,5).
writeDigitalPin (a, 'D13', 1)?
παύση (0,5).
writeDigitalPin (a, 'D13', 0);
elseif tempF (index)> = min_temp && tempF (index) <max_temp % Green LED
writeDigitalPin (a, 'D11', 0)?
παύση (0,5).
writeDigitalPin (a, 'D11', 1)?
παύση (0,5).
writeDigitalPin (a, 'D11', 0)?
elseif tempF (ευρετήριο) <= min_temp % Μπλε LED
writeDigitalPin (a, 'D12', 0)?
παύση (0,5).
writeDigitalPin (a, 'D12', 1)?
παύση (0,5).
writeDigitalPin (a, 'D12', 0)?
τέλος
% Εμφάνιση των θερμοκρασιών όπως μετρώνται
fprintf ('Η θερμοκρασία σε %d δευτερόλεπτα είναι %5.2f C ή %5.2f F. / n',…
samplingTimes (index), tempC (index), tempF (index)).
παύση (samplingInterval) %καθυστέρηση μέχρι το επόμενο δείγμα
τέλος
% Σχεδιάζοντας τις ενδείξεις θερμοκρασίας
Φιγούρα 1)
πλοκή (samplingTimes, tempF, 'r-*')
xlabel ("Χρόνος (δευτερόλεπτα)")
ylabel ("Θερμοκρασία (F)")
τίτλος («Αναγνώσεις θερμοκρασίας από το RedBoard»)
Βήμα 3: Έξοδος αισθητήρα θερμοκρασίας
Πάνω είναι η καλωδίωση και ο κωδικός MATLAB για την έξοδο του αισθητήρα θερμοκρασίας.
Για αυτό το έργο χρησιμοποιήσαμε τρία φώτα LED για την έξοδο του αισθητήρα θερμοκρασίας. Χρησιμοποιήσαμε ένα κόκκινο για εάν τα κομμάτια ήταν πολύ ζεστά, ένα μπλε αν ήταν πολύ κρύα και ένα πράσινο εάν ήταν ενδιάμεσα.
Βήμα 4: Είσοδος αισθητήρα νερού βροχής
Πάνω είναι η καλωδίωση για τον αισθητήρα νερού βροχής και ο κωδικός MATLAB είναι αναρτημένος παρακάτω.
%% Αισθητήρας νερού
διαγραφή όλων, clc
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vDry = 4,80; % Τάση όταν δεν υπάρχει νερό
samplingDuration = 60;
samplingInterval = 2;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = μήκος (samplingTimes);
% Για βρόχο για ανάγνωση της τάσης για συγκεκριμένο χρονικό διάστημα (60 δευτερόλεπτα)
για δείκτη = 1: numSamples
volt2 = readVoltage (a, waterPin); % Τάση ανάγνωσης από αναλογικό πείρο νερού
% Εάν η εντολή να ακουστεί ένας βομβητής εάν ανιχνευθεί νερό. Πτώση τάσης = νερό
αν volt2 <vΣτεγνώστε
playTone (a, 'D09', 2400) % playTone συνάρτηση από το MathWorks
% Εμφανίστε μια προειδοποίηση στους επιβάτες εάν εντοπιστεί νερό
waitfor (warndlg ("Το τρένο σας μπορεί να καθυστερήσει λόγω κινδύνων για το νερό");
τέλος
% Εμφάνιση της τάσης όπως μετράται από τον αισθητήρα νερού
fprintf ('Η τάση σε %d δευτερόλεπτα είναι %5.4f V. / n',…
samplingTimes (δείκτης), volt2);
παύση (samplingInterval)
τέλος
Βήμα 5: Έξοδος αισθητήρα νερού βροχής
Πάνω είναι η καλωδίωση για έναν βομβητή που ηχεί κάθε φορά που πέφτει πολύ νερό στην πίστα. Ο κωδικός για τον βομβητή είναι ενσωματωμένος στον κωδικό για την είσοδο του νερού της βροχής.
Βήμα 6: Είσοδος αισθητήρα δόνησης
Πάνω είναι η καλωδίωση για τον αισθητήρα δόνησης. Οι αισθητήρες δόνησης μπορεί να είναι σημαντικοί για τα σιδηροδρομικά συστήματα σε περίπτωση πτώσης βράχων σε μια πίστα. Ο κώδικας MATLAB είναι αναρτημένος παρακάτω.
%% Αισθητήρας δόνησηςΚαθαρίστε τα πάντα, clc
PIEZO_PIN = 'A3'; % Δήλωση του αναλογικού πείρου συνδεδεμένου στον αισθητήρα δόνησης a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno'); % Αρχικοποίηση του χρόνου και του διαστήματος για τη μέτρηση της δειγματοληψίας κραδασμών Διάρκεια = 30; % Seconds samplingInterval = 1;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = μήκος (samplingTimes);
% Χρησιμοποιώντας τον κώδικα από την ακόλουθη πηγή, τον τροποποιήσαμε για να ενεργοποιήσουμε το a
% μωβ LED αν ανιχνευτεί δόνηση.
% SparkFun Tinker Kit, RGB LED, γραμμένο από την SparkFun Electronics, % με πολλή βοήθεια από την κοινότητα Arduino
% Προσαρμόστηκε στο MATLAB από τον Eric Davishahl
% Αρχικοποίηση της ακίδας RGB
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% Για βρόχο για καταγραφή μεταβολών τάσης από τον αισθητήρα δόνησης πάνω από a
% συγκεκριμένο χρονικό διάστημα (30 δευτερόλεπτα)
για δείκτη = 1: numSamples
volt3 = readVoltage (a, PIEZO_PIN);
% Εάν η ένδειξη ενεργοποιήσει ένα μοβ LED σε περίπτωση ανίχνευσης κραδασμών
αν volt3> 0,025
writeDigitalPin (a, RED_PIN, 1);
% Δημιουργία μωβ φωτός
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 1);
else % Απενεργοποιήστε το LED εάν δεν ανιχνευτεί δόνηση.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
τέλος
% Εμφάνιση της τάσης όπως μετράται.
fprintf ('Η τάση σε %d δευτερόλεπτα είναι %5.4f V. / n',…
samplingTimes (δείκτης), volt3);
παύση (samplingInterval)
τέλος
% Κόψτε το φως όταν ολοκληρωθεί η μέτρηση των κραδασμών
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
Βήμα 7: Έξοδος αισθητήρα δόνησης
Πάνω είναι η καλωδίωση για το φωτιστικό LED RBG που χρησιμοποιείται. Το φως θα ανάψει μωβ όταν ανιχνευθούν δονήσεις. Ο κωδικός MATLAB για την έξοδο είναι ενσωματωμένος στον κώδικα για την είσοδο.
Βήμα 8: Συμπέρασμα
Αφού ακολουθήσετε όλα αυτά τα βήματα, θα πρέπει τώρα να έχετε ένα arduino με δυνατότητα ανίχνευσης θερμοκρασίας, νερού της βροχής και κραδασμών. Ενώ βλέπουμε πώς λειτουργούν αυτοί οι αισθητήρες σε μικρή κλίμακα, είναι εύκολο να φανταστεί κανείς πόσο ζωτικής σημασίας θα μπορούσαν να είναι για τα σιδηροδρομικά συστήματα στη σύγχρονη ζωή!
Συνιστάται:
Ανιχνευτής βροχής χρησιμοποιώντας αισθητήρα Arduino και σταγόνας βροχής: 8 βήματα
Ανιχνευτής βροχής χρησιμοποιώντας αισθητήρα Arduino και Raindrop: Σε αυτό το σεμινάριο θα μάθουμε πώς να ανιχνεύουμε μια βροχή χρησιμοποιώντας έναν αισθητήρα βροχής και να κάνουμε έναν ήχο χρησιμοποιώντας μια μονάδα βομβητή και OLED Display και Visuino. Δείτε το βίντεο
Μετρητής θερμοκρασίας νερού, αγωγιμότητας και στάθμης νερού σε πραγματικό χρόνο: 6 βήματα (με εικόνες)
Μετρητής θερμοκρασίας νερού, αγωγιμότητας και στάθμης νερού σε πραγματικό χρόνο: Αυτές οι οδηγίες περιγράφουν πώς να φτιάξετε ένα μετρητή νερού χαμηλού κόστους, σε πραγματικό χρόνο, για την παρακολούθηση της θερμοκρασίας, την ηλεκτρική αγωγιμότητα (EC) και τα επίπεδα νερού σε σκαμμένα πηγάδια. Ο μετρητής έχει σχεδιαστεί για να κρέμεται μέσα σε ένα σκαμμένο πηγάδι, να μετρά τη θερμοκρασία του νερού
ESP32 NTP Θερμόμετρο μαγειρέματος θερμοκρασίας ανιχνευτή θερμοκρασίας με διόρθωση και συναγερμό θερμοκρασίας Steinhart-Hart .: 7 βήματα (με εικόνες)
ESP32 NTP Θερμόμετρο Θερμόμετρο μαγειρέματος με διόρθωση και συναγερμό θερμοκρασίας Steinhart-Hart .: Ακόμα στο ταξίδι για να ολοκληρώσετε ένα «επερχόμενο έργο», ", ESP32 NTP Temperature Probe Cooking Thermometer With Steinhart-Hart Correction and Temperature Alarm " είναι ένας οδηγός που δείχνει πώς προσθέτω έναν αισθητήρα θερμοκρασίας NTP, piezo b
Ακόμα ένα οδηγό για τη χρήση των DIYMall RFID-RC522 και Nokia LCD5110 με Arduino: 8 βήματα (με εικόνες)
Ακόμα ένα άλλο οδηγό για τη χρήση των DIYMall RFID-RC522 και Nokia LCD5110 με ένα Arduino: Γιατί ένιωσα την ανάγκη να δημιουργήσω ένα άλλο εκπαιδευτικό για το DIYMall RFID-RC522 και το Nokia LCD5110; Λοιπόν, για να σας πω την αλήθεια δούλευα σε μια απόδειξη της έννοιας κάποια στιγμή πέρυσι χρησιμοποιώντας και τις δύο αυτές συσκευές και κατά κάποιο τρόπο "άστοχη"
Δημιουργία Bookhuddle.com, ενός ιστότοπου για την ανακάλυψη, την οργάνωση και την κοινή χρήση πληροφοριών βιβλίου: 10 βήματα
Δημιουργία Bookhuddle.com, ενός ιστότοπου για την ανακάλυψη, την οργάνωση και την κοινή χρήση πληροφοριών βιβλίου: Αυτή η ανάρτηση περιγράφει τα βήματα που σχετίζονται με τη δημιουργία και την κυκλοφορία του Bookhuddle.com, ενός ιστότοπου που έχει στόχο να βοηθήσει τους αναγνώστες να ανακαλύψουν, να οργανώσουν και να μοιραστούν πληροφορίες βιβλίων. Τα βήματα που περιγράφονται εδώ θα ισχύει για την ανάπτυξη άλλων ιστότοπων