תוכן עניינים:

גלאי טמפרטורות ברכבת המדבר ומונה נוסעים: 5 שלבים
גלאי טמפרטורות ברכבת המדבר ומונה נוסעים: 5 שלבים

וִידֵאוֹ: גלאי טמפרטורות ברכבת המדבר ומונה נוסעים: 5 שלבים

וִידֵאוֹ: גלאי טמפרטורות ברכבת המדבר ומונה נוסעים: 5 שלבים
וִידֵאוֹ: מהנדס אילן רוזנפלד - מנכ״ל חברת אתגר הנדסה וייעוץ על האתגרים בניהול, תכנון וביצוע מסילות הרכבת 2024, נוֹבֶמבֶּר
Anonim
גלאי טמפרטורות ברכבת המדבר ודלפק נוסעים
גלאי טמפרטורות ברכבת המדבר ודלפק נוסעים

מַטָרָה:

טמפרטורה: מדריך זה ילמד אותך כיצד להגדיר ולתכנת לוח אדום אדואינו (באמצעות MATLAB) לאיתור הטמפרטורה של מסילת ברזל. כאשר טמפרטורה לא בטוחה לנוסעים מושגת, נשמעת הודעת אזהרה, זמזומים נכבים ושלט אזהרה נדלק.

דלפק נוסעים: חלק זה ילמד אותך כיצד להשתמש בכפתור על מנת לספור נוסעים ולהשמיע אזהרה כאשר הושגה הקיבולת המרבית.

מאפיינים:

  • משתמש בלחצן כדי לספור נוסעים שנכנסים לרכבת
  • משתמש ב- TMP36 (חיישן טמפרטורה) לאיתור טמפרטורת מסילת הברזל
  • משתמש בנורת LED אדומה כדי להזהיר את תחנת הרכבת
  • משתמש באזרים כדי להשמיע אזעקה
  • שולח הודעת דוא"ל עם התראה של טמפרטורה מול זמן
  • הודעות אזהרה מוקפצות ב- MATLAB

שלב 1: חומרים ואספקה

חומרים ואספקה
חומרים ואספקה
  • מחשב נייד אחד
  • MATLAB 2017
  • הורד את ארגז הכלים של Arduino
  • Sparkfun RedBoard
  • 1 כבל חשמל
  • לחם
  • 14 חוטים
  • באזר פיאזו
  • 1 כפתור לחיצה
  • 2 נגדים של 10k אוהם
  • חיישן 1 TMP36
  • נורת לד אדומה
  • שלט מודפס בתלת מימד (אופציונלי)

שלב 2: הגדרת לוח

הגדרת לוח
הגדרת לוח

עקוב אחר ההגדרה למעלה

שלב 3: כתיבת הקוד

בעוד לולאה: כדי להבטיח שהקוד ימשיך לבדוק את הטמפרטורה ולחוש את מצב הלחצן (לחוץ או לא נלחץ), אנו ממקמים את הקוד בלולאת ה- while למשך פרק זמן מוגדר.

שימוש ב- TMP36: אנו קובעים את הטמפרטורה על ידי קריאת המתח והסבתו למעלות פרנהייט, באמצעות גורמי המרה. לאחר מכן, אנו משתמשים באמירת if כדי להשמיע צליל וצליל/לשלוח התראות אם הטמפרטורה גדולה או שווה לטמפרטורה המרבית המוגדרת

שימוש בלחצן: עם הצהרת if, נוכל לבדוק אם לחצו על הכפתור באמצעות readDigitalPin. פקודה זו תחזיר בוליאני (1 או 0). אם התשובה היא 0, אז לחצו על הכפתור ומונה הנוסעים עולה ומציג הודעת קבלת פנים. לאחר מכן, כאשר הקיבולת המרבית מושגת, נשמעת הודעת אזהרה.

שלב 4: העתק את הקוד

%כניסות: לחיצה על הכפתור, חיישן טמפרטורה

%יציאות: אורות, באזרים, התראת שמע, מיילים, גרפים

מטרה: מוצר זה נועד לסייע בהבטחת הבטיחות והנוחות של %הנוסעים הנוסעים ברכבת במדבר.

%שימוש: זיהוי מספר הנוסעים באמצעות כפתור לחיצה, ו %זיהוי החום באמצעות חיישן טמפרטורה וגרף אותו ושולח הן את מספרי הנוסעים והן את גרף הטמפרטורה לתחנת הרכבת.

configurePin (a, 'D2', 'pullup'); %במהדורות עתידיות משתמשים ב- configurePin

זמן = 200;

e = 0;

x = 0

בזמן שהזמן> 0

button_status = readDigitalPin (a, 'D2'); % שווה לאפס כאשר הכפתור נלחץ, אחרת שווה 1

מתח = readVoltage (a, 'A0'); סיכה%תלוי היכן אנו ממקמים אותו

tempCelcius = (מתח*100) -50; %נתון במדריך החיישן

tempF (time) = (tempCelcius*1.8) +32 %נוסחת המרה ידועה

מקסימום = 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'; %זה מכניס את קובץ הקול למשתנה

[data, freq] = קריאת שמע (z); %טוען נתונים מקובץ קול

o = נגן אודיו (נתונים, תדירות); יוצר אובייקט לשליטה בהפעלה של קובץ השמע

o.play () %משחק קובץ שמע

o.playblocking () %משחק קובץ ומחכה שיסתיים

סוֹף

אם button_status == 0 && rem == 0

e = e+1

msgbox ('ברוך הבא!');

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 = 'אזהרה_EF.m4a'; %זה מכניס את קובץ הקול למשתנה

[data, freq] = קריאת שמע; %טוען נתונים מקובץ קול

o = נגן אודיו (נתונים, תדירות); יוצר אובייקט לשליטה בהפעלה של קובץ השמע

% 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);

title ('זמן מול טמפרטורה')

ylabel ('טמפרטורה (F)')

xlabel ('זמן (ים)')

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

password = 'Srsora123#'

host = 'smtp.gmail.com'

setpref ('אינטרנט', 'SMTP_Server', מארח);

setpref ('אינטרנט', 'דואר אלקטרוני', דואר);

setpref ('אינטרנט', 'SMTP_Username', דואר);

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 (מייל, 'שלום תחנת הרכבת! יש כל כך הרבה נוסעים ברכבת', ee, 'tempplot.jpg')

שלב 5: תוצאות

מוּמלָץ: