Πίνακας περιεχομένων:
- Βήμα 1: Υλικά και αναλώσιμα
- Βήμα 2: Ρύθμιση πίνακα
- Βήμα 3: Γράφοντας τον Κώδικα
- Βήμα 4: Αντιγράψτε τον κώδικα
- Βήμα 5: Αποτελέσματα
Βίντεο: Ανιχνευτής θερμοκρασίας ερήμου σιδηροδρόμου & μετρητής επιβατών: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Σκοπός:
Θερμοκρασία: Αυτό θα σας διδάξει πώς να ρυθμίσετε και να προγραμματίσετε ένα Arduino RedBoard (χρησιμοποιώντας MATLAB) για να ανιχνεύσετε τη θερμοκρασία ενός σιδηροδρόμου. Όταν επιτευχθεί μια μη ασφαλής θερμοκρασία για τους επιβάτες, ακούγεται ένα προειδοποιητικό μήνυμα, σβήνουν οι βομβητές και ανάβει μια προειδοποιητική πινακίδα.
Μετρητής επιβατών: Αυτό το τμήμα θα σας διδάξει πώς να χρησιμοποιείτε ένα κουμπί για να μετράτε τους επιβάτες και να προειδοποιείτε όταν έχει επιτευχθεί η μέγιστη χωρητικότητα.
Χαρακτηριστικά:
- Χρησιμοποιεί το κουμπί για να μετρήσει τους επιβάτες που εισέρχονται στο τρένο
- Χρησιμοποιεί TMP36 (αισθητήρας θερμοκρασίας) για την ανίχνευση της θερμοκρασίας του σιδηροδρόμου
- Χρησιμοποιεί μια κόκκινη λυχνία LED για να προειδοποιήσει το σιδηροδρομικό σταθμό
- Χρησιμοποιεί βομβητές για να ηχήσει συναγερμό
- Στέλνει ένα email ειδοποίησης με μια γραφική παράσταση θερμοκρασίας έναντι του χρόνου
- Αναδυόμενα προειδοποιητικά μηνύματα στο MATLAB
Βήμα 1: Υλικά και αναλώσιμα
- 1 φορητός υπολογιστής
- MATLAB 2017
- Κατεβάστε το Arduino Toolbox
- Sparkfun RedBoard
- 1 Καλώδιο τροφοδοσίας
- Breadbord
- 14 σύρματα
- 1 Piezo Buzzer
- 1 κουμπί
- 2 αντιστάσεις 10k ohm
- 1 αισθητήρας TMP36
- Κόκκινο φως LED
- 3D εκτυπωμένη πινακίδα (προαιρετικά)
Βήμα 2: Ρύθμιση πίνακα
Ακολουθήστε την παραπάνω ρύθμιση
Βήμα 3: Γράφοντας τον Κώδικα
Ενώ βρόχος: Για να διασφαλίσουμε ότι ο κώδικας συνεχίζει να δοκιμάζει τη θερμοκρασία και ανιχνεύει την κατάσταση του κουμπιού (πατημένο ή μη πατημένο), τοποθετούμε τον κώδικα στον βρόχο while για μια καθορισμένη χρονική περίοδο.
Χρήση TMP36: Καθορίζουμε τη θερμοκρασία διαβάζοντας την τάση και μετατρέποντάς την σε βαθμούς Φαρενάιτ, χρησιμοποιώντας συντελεστές μετατροπής. Στη συνέχεια, χρησιμοποιούμε μια δήλωση if για αναπαραγωγή ενός ήχου και ήχο/αποστολή ειδοποιήσεων εάν η θερμοκρασία είναι μεγαλύτερη ή ίση με τη ρυθμισμένη μέγιστη θερμοκρασία
Χρήση κουμπιού: Με μια δήλωση if, μπορούμε να δοκιμάσουμε αν το κουμπί πατήθηκε χρησιμοποιώντας το readDigitalPin. Αυτή η εντολή θα επιστρέψει ένα Boolean (1 ή 0). Εάν η απόκριση είναι 0, τότε το κουμπί πατήθηκε και ο μετρητής των επιβατών αυξάνεται και εμφανίζει ένα μήνυμα καλωσορίσματος. Στη συνέχεια, όταν επιτευχθεί η μέγιστη χωρητικότητα, ακούγεται ένα προειδοποιητικό μήνυμα.
Βήμα 4: Αντιγράψτε τον κώδικα
%Εισόδους: Πατώντας το κουμπί, αισθητήρας θερμοκρασίας
%Εξόδους: φώτα, βομβητές, ηχητική ειδοποίηση, μηνύματα ηλεκτρονικού ταχυδρομείου, γραφήματα
%Σκοπός: Αυτό το προϊόν έχει σχεδιαστεί για να διασφαλίζει την ασφάλεια και την άνεση των %επιβατών που ταξιδεύουν με τρένο μέσω της ερήμου.
%Χρήση: Ανίχνευση του αριθμού των επιβατών χρησιμοποιώντας ένα κουμπί και %ανίχνευση της θερμότητας χρησιμοποιώντας έναν αισθητήρα θερμοκρασίας και τη γραφική παράσταση και στέλνει τόσο τους αριθμούς των επιβατών όσο και το γράφημα θερμοκρασίας στο σιδηροδρομικό σταθμό
configurePin (a, 'D2', 'pullup'); %σε μελλοντικές εκδόσεις χρησιμοποιούν configurePin
χρόνος = 200;
e = 0;
x = 0
ενώ χρόνος> 0
button_status = readDigitalPin (a, 'D2'); % ισούται με μηδέν όταν πατάτε το κουμπί, διαφορετικά ισούται με 1
τάση = readVoltage (a, 'A0');%pin εξαρτάται από το πού το τοποθετούμε
tempCelcius = (τάση*100) -50; %που αναφέρεται στο εγχειρίδιο αισθητήρα
tempF (χρόνος) = (tempCelcius*1.8) +32 %γνωστός τύπος μετατροπής
max = 120; %βαθμοί F
writeDigitalPin (a, 'D11', 1)?
rem = mod (e, 2);
εάν tempF (χρόνος)> = μέγ
writeDigitalPin (a, 'D11', 0)?
writeDigitalPin (a, 'D9', 1)?
playTone (a, 'D9', 2400,.5)
παύση (.5)
writeDigitalPin (a, 'D6', 1)
playTone (a, 'D6', 1000,.5)
παύση (.5)
writeDigitalPin (a, 'D9', 1)?
playTone (a, 'D9', 2400,.5)
παύση (.5)
writeDigitalPin (a, 'D6', 1)
playTone (a, 'D6', 1000,.5) %παίζει "σειρήνα"
z = 'Υπερθέρμανση.m4a'; %Αυτό θέτει το αρχείο ήχου σε μια μεταβλητή
[δεδομένα, συχνότητα] = audioread (z); %Φορτώνει δεδομένα από το αρχείο ήχου
o = audioplayer (δεδομένα, συχνότητα); %Δημιουργεί ένα αντικείμενο για τον έλεγχο της αναπαραγωγής του αρχείου ήχου
o.play () %Παίζει αρχείο ήχου
o.playblocking () %Παίζει το αρχείο και περιμένει να τελειώσει
τέλος
εάν button_status == 0 && rem == 0
e = e+1
msgbox ('Welcome Aboard!');
elseif button_status == 0 && rem == 1
e = e+1
msgbox ('Bienvenido a bordo!');
τέλος
αν e == 5
writeDigitalPin (a, 'D11', 0)?
αν x == 0
playTone (a, 'D6', 600, 1)?
s = 'Warning_EF.m4a'; %Αυτό θέτει το αρχείο ήχου σε μια μεταβλητή
[δεδομένα, συχνότητα] = audioread (s); %Φορτώνει δεδομένα από το αρχείο ήχου
o = audioplayer (δεδομένα, συχνότητα); %Δημιουργεί ένα αντικείμενο για τον έλεγχο της αναπαραγωγής του αρχείου ήχου
% o.play () % Παίζει αρχείο ήχου
o.playblocking () %Παίζει το αρχείο και περιμένει να τελειώσει
msgbox ("Μέγιστη χωρητικότητα")
x = x+1
τέλος
elseif e> = 6
playTone (a, 'D6', 2400, 0)?
τέλος
χρόνος = χρόνος - 1;
% παύση (0,1).
% αν e == 5 && max (tempF)> = 120
% χρόνος = 0
% τέλος
τέλος
ee = num2str (e)
t = [1: 200];
tempF2 = fliplr (tempF);
διάγραμμα (t, tempF2);
τίτλος ('Χρόνος έναντι θερμοκρασίας')
ylabel ("Θερμοκρασία (F)")
xlabel ('Timeρα (ες)')
saveas (gcf, 'tempplot.jpg')
mail = '[email protected]'
password = 'Srsora123#'
host = 'smtp.gmail.com'
setpref ('Internet', 'SMTP_Server', host)?
setpref ('Internet', 'E_mail', mail)?
setpref ('Internet', 'SMTP_Username', mail)?
setpref («Διαδίκτυο», «SMTP_Password», κωδικός πρόσβασης)
props = java.lang. System.getProperties;
props.setProperty ('mail.smtp.auth', 'true');
props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory');
props.setProperty ('mail.smtp.socketFactory.port', '465');
sendmail (mail, 'Hello Train Station! Υπάρχουν τόσοι πολλοί επιβάτες στο τρένο', εε, 'tempplot.jpg')
Βήμα 5: Αποτελέσματα
Συνιστάται:
Μετρητής θερμοκρασίας νερού, αγωγιμότητας και στάθμης νερού σε πραγματικό χρόνο: 6 βήματα (με εικόνες)
Μετρητής θερμοκρασίας νερού, αγωγιμότητας και στάθμης νερού σε πραγματικό χρόνο: Αυτές οι οδηγίες περιγράφουν πώς να φτιάξετε ένα μετρητή νερού χαμηλού κόστους, σε πραγματικό χρόνο, για την παρακολούθηση της θερμοκρασίας, την ηλεκτρική αγωγιμότητα (EC) και τα επίπεδα νερού σε σκαμμένα πηγάδια. Ο μετρητής έχει σχεδιαστεί για να κρέμεται μέσα σε ένα σκαμμένο πηγάδι, να μετρά τη θερμοκρασία του νερού
Μετρητής θερμοκρασίας και υγρασίας IoT με οθόνη OLED: 5 βήματα (με εικόνες)
Μετρητής θερμοκρασίας και υγρασίας IoT με οθόνη OLED: Ελέγξτε τη θερμοκρασία και την υγρασία σε μια οθόνη OLED όποτε θέλετε και συλλέξτε ταυτόχρονα αυτά τα δεδομένα σε μια πλατφόρμα IoT. Την περασμένη εβδομάδα δημοσίευσα ένα έργο που ονομάζεται Απλούστερος μετρητής θερμοκρασίας και υγρασίας IoT. Αυτό είναι ένα καλό έργο γιατί μπορείτε να
Απλός μετρητής πυκνωτή Autorange / μετρητής χωρητικότητας με Arduino και στο χέρι: 4 βήματα
Απλός μετρητής πυκνωτή Autorange / μετρητής χωρητικότητας με Arduino και στο χέρι: Γεια! Για αυτήν τη μονάδα φυσικής χρειάζεστε:* τροφοδοτικό με 0-12V* έναν ή περισσότερους πυκνωτές* μία ή περισσότερες αντιστάσεις φόρτισης* χρονόμετρο* πολύμετρο τάσης μέτρηση* arduino nano* οθόνη 16x2 I²C* αντιστάσεις 1 / 4W με 220, 10k, 4.7M και
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
Ανιχνευτής κεραυνών και μετρητής: 8 βήματα (με εικόνες)
Ανιχνευτής κεραυνών και μετρητής: Πάντα ήθελα να φτιάξω έναν ανιχνευτή φωτισμού, αλλά βρήκα τα σχήματα κυκλώματος λίγο πέρα από τις δυνατότητές μου. Πρόσφατα ενώ σερφάρω στο δίχτυ, συνάντησα ένα πολύ δροσερό κύκλωμα το οποίο μετρά τις κεραυνούς όταν συμβαίνουν! Αφού κοιτάξα