جدول المحتويات:

استخدام مستشعرات درجة الحرارة ومياه الأمطار والاهتزاز على Arduino لحماية السكك الحديدية: 8 خطوات (بالصور)
استخدام مستشعرات درجة الحرارة ومياه الأمطار والاهتزاز على Arduino لحماية السكك الحديدية: 8 خطوات (بالصور)

فيديو: استخدام مستشعرات درجة الحرارة ومياه الأمطار والاهتزاز على Arduino لحماية السكك الحديدية: 8 خطوات (بالصور)

فيديو: استخدام مستشعرات درجة الحرارة ومياه الأمطار والاهتزاز على Arduino لحماية السكك الحديدية: 8 خطوات (بالصور)
فيديو: بهذا الاختراع لن تسخن سيارتك ابدا بعد اليوم 👌 واتحدى اى شخص 💪💪 2024, يوليو
Anonim
استخدام مستشعرات درجة الحرارة ومياه الأمطار والاهتزاز على Arduino لحماية السكك الحديدية
استخدام مستشعرات درجة الحرارة ومياه الأمطار والاهتزاز على Arduino لحماية السكك الحديدية

في المجتمع المعاصر ، تعني الزيادة في عدد ركاب السكك الحديدية أنه يجب على شركات السكك الحديدية بذل المزيد من الجهد لتحسين الشبكات لمواكبة الطلب. سنعرض في هذا المشروع على نطاق صغير كيف يمكن أن تساعد مستشعرات درجة الحرارة ومياه الأمطار والاهتزاز على لوحة اردوينو في زيادة سلامة الركاب.

سيعرض هذا Instructable خطوة بخطوة الأسلاك الخاصة بأجهزة استشعار درجة الحرارة ومياه الأمطار والاهتزاز على اردوينو بالإضافة إلى إظهار رمز MATLAB المطلوب لتشغيل هذه المستشعرات.

الخطوة 1: الأجزاء والمواد

1. جهاز كمبيوتر مثبت عليه أحدث إصدار من MATLAB

2. لوحة اردوينو

3. مستشعر درجة الحرارة

4. جهاز استشعار مياه الأمطار

5. جهاز استشعار الاهتزاز

6. ضوء LED أحمر

7. ضوء LED أزرق

8. ضوء LED أخضر

9. مصباح RBG LED

10. الجرس

11. 18 أسلاك ذكر ذكر

12. 3 أسلاك أنثى ذكر

13. عدد 2 سلك نسائي - نسائي

14. 6330 أوم مقاومات

15. 1100 أوم المقاوم

الخطوة 2: أسلاك مستشعر درجة الحرارة

أسلاك مستشعر درجة الحرارة
أسلاك مستشعر درجة الحرارة
أسلاك مستشعر درجة الحرارة
أسلاك مستشعر درجة الحرارة

أعلاه هو رمز الأسلاك و MATLAB لإدخال مستشعر درجة الحرارة أيضًا.

الأسلاك من الأرض و 5 V تحتاج فقط إلى أن يتم تشغيلها إلى السالب والموجب مرة واحدة على التوالي للوحة بأكملها. من الآن فصاعدًا ، ستأتي أي اتصالات أرضية من العمود السالب وستأتي أي اتصالات 5 فولت من العمود الموجب.

يمكن نسخ الكود أدناه ولصقه لمستشعر درجة الحرارة.

٪٪ TEMPERATURE SENSOR٪ بالنسبة لمستشعر درجة الحرارة ، استخدمنا المصدر التالي مع

٪ مادة موقع ويب EF230 لتعديل مستشعر درجة الحرارة للسماح للمستخدم

٪ دخل و 3 مخرجات ضوء LED مع رسم بياني.

تم كتابة هذا الرسم التخطيطي بواسطة SparkFun Electronics ،

٪ مع الكثير من المساعدة من مجتمع Arduino.

٪ مقتبس من MATLAB بقلم إريك دافيشهل.

٪ قم بزيارة https://learn.sparkfun.com/products/2 للحصول على معلومات SIK.

مسح الكل ، clc

tempPin = 'A0' ؛ ٪ التصريح عن الدبوس التناظري المتصل بمستشعر درجة الحرارة

أ = اردوينو ('/ dev / tty.usbserial-DA017PNO'، 'uno') ؛

٪ تحديد وظيفة مجهولة تقوم بتحويل الجهد إلى درجة حرارة

tempCfromVolts = @ (فولت) (فولت 0.5) * 100 ؛

مدة أخذ العينات = 30 ؛

أخذ العينات Interval = 2 ؛ ٪ ثانية بين قراءات درجة الحرارة

٪ إعداد متجه لأوقات أخذ العينات

samplingTimes = 0: samplingInterval: samplingDuration ؛

٪ حساب عدد العينات على أساس المدة والفاصل الزمني

numSamples = length (samplingTimes) ؛

٪ تخصيص مسبق لمتغيرات درجة الحرارة والمتغير لعدد القراءات التي سيتم تخزينها

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 ('تم تسجيل الإدخال الخاص بك') ؛

ح = msgbox (txt) ؛

waitfor (ح) ؛

٪ For حلقة لقراءة درجات الحرارة عددًا محددًا من المرات.

للفهرس = 1: numSamples

قراءة الجهد في tempPin وتخزينها على شكل فولت متغير

فولت = readVoltage (a ، tempPin) ؛

tempC (index) = tempCfromVolts (فولت) ؛

tempF (index) = tempC (index) * 9/5 + 32 ؛ ٪ تحويل من مئوية إلى فهرنهايت

٪ إذا كانت العبارات الخاصة بجعل مصابيح LED تومض بناءً على الشرط المستوفى

إذا كان tempF (مؤشر)> = max_temp٪ Red 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 (index) <= min_temp٪ Blue 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)")

العنوان ("قراءات درجة الحرارة من اللوحة الحمراء")

الخطوة 3: خرج مستشعر درجة الحرارة

خرج مستشعر درجة الحرارة
خرج مستشعر درجة الحرارة
خرج مستشعر درجة الحرارة
خرج مستشعر درجة الحرارة

أعلاه هو رمز الأسلاك و MATLAB لإخراج مستشعر درجة الحرارة.

في هذا المشروع ، استخدمنا ثلاثة مصابيح LED لإخراج مستشعر درجة الحرارة لدينا. استخدمنا اللون الأحمر إذا كانت المسارات شديدة الحرارة ، والأزرق إذا كانت شديدة البرودة ، والأخضر إذا كانت بينهما.

الخطوة 4: إدخال مستشعر مياه الأمطار

مدخلات مستشعر مياه الأمطار
مدخلات مستشعر مياه الأمطار
مدخلات مستشعر مياه الأمطار
مدخلات مستشعر مياه الأمطار

أعلاه هو الأسلاك الخاصة بجهاز استشعار مياه الأمطار ويتم نشر رمز MATLAB أدناه.

٪٪ مستشعر الماء

مسح الكل ، clc

أ = اردوينو ('/ dev / tty.usbserial-DA017PNO'، 'uno') ؛

waterPin = 'A1' ؛

ف دراي = 4.80 ؛ ٪ الجهد عند عدم وجود ماء

مدة أخذ العينات = 60 ؛

أخذ العينات Interval = 2 ؛

samplingTimes = 0: samplingInterval: samplingDuration ؛

numSamples = length (samplingTimes) ؛

٪ حلقة لقراءة الجهد لفترة زمنية محددة (60 ثانية)

للفهرس = 1: numSamples

volt2 = readVoltage (أ ، waterPin) ؛ ٪ قراءة الجهد من المياه دبوس التناظرية

٪ If عبارة لإصدار صوت صفارة إذا تم الكشف عن الماء. انخفاض الجهد = الماء

إذا فولت 2 <vDry

playTone (a، 'D09'، 2400)٪ وظيفة playTone من MathWorks

٪ عرض تحذير للركاب إذا تم الكشف عن الماء

waitfor (warndlg ("قد يتأخر قطارك بسبب مخاطر المياه")) ؛

نهاية

٪ عرض الجهد كما تم قياسه بواسطة مستشعر الماء

fprintf ( الجهد عند٪ d ثانية هو٪ 5.4f V. / n '، …

samplingTimes (مؤشر) ، volt2) ؛

وقفة (فترة أخذ العينات)

نهاية

الخطوة 5: خرج مستشعر مياه الأمطار

خرج مستشعر مياه الأمطار
خرج مستشعر مياه الأمطار

أعلاه هو الأسلاك الخاصة بجرس يصدر صوتًا عندما يسقط الكثير من الماء على المسار. يتم تضمين رمز الجرس داخل رمز إدخال مياه الأمطار.

الخطوة 6: إدخال مستشعر الاهتزاز

مدخلات مستشعر الاهتزاز
مدخلات مستشعر الاهتزاز
مدخلات مستشعر الاهتزاز
مدخلات مستشعر الاهتزاز

أعلاه هو الأسلاك لجهاز استشعار الاهتزاز. يمكن أن تكون مستشعرات الاهتزاز مهمة لأنظمة السكك الحديدية في حالة سقوط الصخور على مسار. تم نشر رمز MATLAB أدناه.

مستشعر الاهتزاز ٪٪ امسح الكل ، clc

PIEZO_PIN = 'A3' ، ٪ إعلان الدبوس التناظري المتصل بجهاز استشعار الاهتزاز a = اردوينو ('/ dev / tty.usbserial-DA017PNO'، 'uno') ؛ ٪ تهيئة الوقت والفاصل الزمني لقياس مدة أخذ العينات الاهتزازية = 30 ؛ ٪ ثانية من أخذ العينات الفاصل الزمني = 1 ؛

samplingTimes = 0: samplingInterval: samplingDuration ؛

numSamples = length (samplingTimes) ؛

٪ باستخدام الكود من المصدر التالي قمنا بتعديله لتشغيل ملف

٪ مؤشر LED أرجواني إذا تم الكشف عن اهتزاز.

٪ SparkFun Tinker Kit ، RGB LED ، كتبها SparkFun Electronics ،

٪ مع الكثير من المساعدة من مجتمع Arduino

٪ مقتبس من MATLAB بقلم إريك دافيشهل

٪ تهيئة دبوس RGB

RED_PIN = 'D5' ،

GREEN_PIN = 'D6' ،

BLUE_PIN = "D7" ،

٪ للحلقة لتسجيل تغيرات الجهد من مستشعر الاهتزاز على أ

الفاصل الزمني المحدد٪ (30 ثانية)

للفهرس = 1: numSamples

volt3 = readVoltage (أ ، PIEZO_PIN) ؛

بيان٪ If لتشغيل مصباح LED أرجواني إذا تم الكشف عن اهتزاز

إذا كان volt3> 0.025

writeDigitalPin (a، RED_PIN، 1) ؛

٪ خلق ضوء أرجواني

writeDigitalPin (a، GREEN_PIN، 0) ؛

writeDigitalPin (أ ، BLUE_PIN ، 1) ؛

عدا ذلك٪ قم بإيقاف تشغيل LED إذا لم يتم الكشف عن أي اهتزاز.

writeDigitalPin (a، RED_PIN، 0) ؛

writeDigitalPin (a، GREEN_PIN، 0) ؛

writeDigitalPin (a، BLUE_PIN، 0) ؛

نهاية

٪ عرض الجهد كما تم قياسه.

fprintf ( الجهد عند٪ d ثانية هو٪ 5.4f V. / n '، …

samplingTimes (مؤشر) ، volt3) ؛

وقفة (فترة أخذ العينات)

نهاية

٪ قطع الضوء عند قياس الاهتزازات

writeDigitalPin (a، RED_PIN، 0) ؛

writeDigitalPin (a، GREEN_PIN، 0) ؛

writeDigitalPin (a، BLUE_PIN، 0) ؛

الخطوة 7: خرج مستشعر الاهتزاز

خرج مستشعر الاهتزاز
خرج مستشعر الاهتزاز

أعلاه هو الأسلاك الخاصة بمصباح RBG LED المستخدم. سوف يتوهج الضوء باللون الأرجواني عند اكتشاف الاهتزازات. يتم تضمين رمز MATLAB للإخراج داخل رمز الإدخال.

الخطوة 8: الخاتمة

بعد اتباع كل هذه الخطوات ، يجب أن يكون لديك الآن اردوينو مع القدرة على اكتشاف درجة الحرارة ومياه الأمطار والاهتزازات. أثناء مشاهدة كيفية عمل هذه المستشعرات على نطاق صغير ، من السهل تخيل مدى أهميتها لأنظمة السكك الحديدية في الحياة الحديثة!

موصى به: