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

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

فيديو: متحكم شبكة مستشعر درجة الحرارة المتسامح مع الخطأ: 8 خطوات

فيديو: متحكم شبكة مستشعر درجة الحرارة المتسامح مع الخطأ: 8 خطوات
فيديو: #lm35 #Arduino قياس درجة الحرارة باستخدام الحساس مع الاردوينو 2024, يوليو
Anonim
متحكم شبكة استشعار درجة الحرارة المتسامحة مع الخطأ
متحكم شبكة استشعار درجة الحرارة المتسامحة مع الخطأ

يوضح لك هذا Instructable كيفية تحويل لوحة Arduino Uno إلى وحدة تحكم أحادية الغرض لمجموعة من مستشعرات درجة الحرارة DS18B20 القادرة على العزل التلقائي لأجهزة الاستشعار المعيبة.

يمكن لوحدة التحكم إدارة ما يصل إلى 8 مستشعرات باستخدام Arduino Uno. (وأكثر من ذلك بكثير مع Arduino Mega أو مع تعديل بسيط للبرنامج.)

الخطوة 1: القصة وراء …

قبل عامين ، قمت بإعداد شبكة استشعار درجة الحرارة DS18B20 في دفيئة والدي لوحدة التحكم في التدفئة القائمة على pi. لسوء الحظ ، كانت موثوقية وحدة التحكم ضعيفة بشكل أساسي بسبب الانقطاعات المتكررة لأجهزة الاستشعار. لقد جربت العديد من الإعدادات - قوة الطفيليات ، والطاقة المباشرة ، وتوصيل الشبكة بـ pi بالإضافة إلى توصيلها بلوحة مخصصة تعتمد على Atmega (كان الغرض الأساسي منها هو تشغيل محركات الصمامات).

والأسوأ من ذلك ، انخفضت موثوقية شبكة المستشعرات بشكل رئيسي خلال ليالي الشتاء بينما لم تكن هناك مشاكل تقريبًا في الصيف! ما الذي يحدث هنا؟

للتحقيق في أي جهاز استشعار يسبب المشكلة ، ظهرت الحاجة إلى تشغيل / إيقاف تشغيلها واحدًا تلو الآخر أو تمكين أي مجموعة منها.

الخطوة 2: كيف يعمل

يستخدم DS18B20 (مستشعر درجة الحرارة) بروتوكولًا خاصًا بسلك واحد يسمح لأجهزة استشعار متعددة بمشاركة رابط البيانات المشترك (هذا السلك الواحد). يرتبط ارتباط البيانات الشائع هذا بأحد دبابيس GPIO الخاصة بـ Arduino و + 5 V عبر المقاوم القابل للسحب - لا يوجد شيء غير مألوف ، حيث تغطي العديد من التعليمات هذا الإعداد.

الحيلة هي أن كل أسلاك توصيل الطاقة الخاصة بأجهزة الاستشعار متصلة بمسامير GPIO (مخصصة) ، بحيث يمكن تشغيلها وإيقافها بشكل منفصل. على سبيل المثال ، إذا كان المستشعر يحتوي على سلك Vcc متصل بالطرف رقم 3 و GND بالدبوس رقم 2 ، فإن ضبط الدبوس رقم 3 على HIGH يوفر الطاقة للمستشعر (ليس مفاجأة) أثناء ضبط الدبوس رقم 2 على LOW يوفر الأرض (مفاجأة صغيرة لـ أنا). سيؤدي ضبط كلا المسامير على وضع الإدخال (تقريبًا) إلى عزل المستشعر وأسلاكه تمامًا - بغض النظر عن الفشل (مثل الاختصار) الذي يحدث داخله ، فلن يتداخل مع الآخرين.

(من العدل أن نقول إن توصيل سلك البيانات بشيء آخر متصل بطريقة ما بـ Arduino سيؤدي بالفعل إلى حدوث تداخل ، ولكن يكاد يكون من المستحيل في الإعداد الخاص بي).

لاحظ أن DS18B20 يستهلك ما يصل إلى 1 ، 5 مللي أمبير بينما يمكن لمسمار Arduino أن يصدر / يغوص حتى 40 مللي أمبير ، لذلك فهو آمن تمامًا لتشغيل أجهزة الاستشعار عن طريق دبابيس GPIO مباشرة.

الخطوة 3: المواد والأدوات

مادة

  • 1 لوحة اردوينو UNO
  • 3 رؤوس دبوس أنثى: 1 × 4 ، 1 × 6 و 1 × 6 (أو أطول - قمت بقصها من رأس 1 × 40)
  • الغراء
  • قطعة من الأسلاك النحاسية العارية (10 سم على الأقل).
  • شريط عازل
  • مستهلكات اللحام (سلك ، تدفق …)

أدوات

  • معدات لحام (حديد ، حاملات ، …)
  • كماشة قطع صغيرة

الخطوة 4: إصلاح الأشياء معًا

أصلح الأشياء معًا
أصلح الأشياء معًا

قم بلصق رؤوس الدبوس الأنثوية برؤوس لوحة Arduino:

  1. رأس 1 × 4 بجوار رأس الدبوس "التناظري" ، جنبًا إلى جنب مع المسامير A0 – A4
  2. رأس 1 × 6 بجوار رأس الدبوس الرقمي الأول ، جنبًا إلى جنب مع المسامير 2-7
  3. رأس 1 × 6 بجوار رأس الدبوس الرقمي الثاني ، جنبًا إلى جنب مع المسامير 8-13

لاحظ أن الرؤوس الخاصة بي أطول قليلاً … ليس لها سلبيات ولا إيجابيات أفترضها.

الخطوة 5: ربط الأشياء معًا

ربط الأشياء معًا
ربط الأشياء معًا
ربط الأشياء معًا
ربط الأشياء معًا

توصيل الأسلاك بخط ناقل أحادي الأسلاك:

  1. قم بتوصيل جميع الخيوط ذات الرؤوس الملصقة على الجانب "الرقمي" (بجوار المسامير 2-13) عن طريق لحام قطعة من الأسلاك العارية بها
  2. قم بتلحيم نهاية هذا السلك برصاص دبوس SCL (متصل داخليًا بـ A5)
  3. قم بتوصيل جميع خيوط الرأس الملصقة على الجانب "التناظري" (المسامير A0 – A3) عن طريق لحام قطعة من الأسلاك العارية بها
  4. قم بتلحيم نهاية هذا السلك بخيوط A4 و A5 (لقد استخدمت A5 و A6 لأن لدي لوحة بها A6 و A7)
  5. جندى المقاوم 4k7 بين الطرف الآخر من هذا السلك و +5 دبوس الرصاص

ملحوظات:

  • يمكن استخدام الدبابيس A0 – A5 ، على الرغم من تمييزها بأنها "تمثيلية" ، كدبابيس GPIO رقمية أيضًا.
  • دبوس SCL على الجانب "الرقمي" متصل داخليًا بـ A5 على الجانب "التناظري" ؛ متصلاً بالرؤوس ، وهذا يشكل خط ناقل بسلك واحد
  • A4 (تستخدم كمدخل تناظري) تقيس جهد الحافلة لأغراض التشخيص. هذا هو سبب اتصاله مباشرة بالحافلة.
  • لقد استخدمت A6 بدلاً من A4 لأن لدي لوحة بها A6 & A7 ؛ في الأصل كنت أرغب في استخدام A7 بصفته رئيس ناقل أحادي السلك ولكن لا يمكن تكوين هذين الدبابيس ليكونا كائنات GPI رقمية.
  • لمنع التوصيل الخاطئ لموصلات المستشعر ، يمكنك حذف / قطع جهة الاتصال غير المستخدمة (غير متصلة بأي سلك) من كل موصل ذكر وإدخاله في الفتحة المقابلة في رأس الدبوس الملصق.

الخطوة 6: توصيل المستشعرات

توصيل المستشعرات
توصيل المستشعرات

لقد أنشأت للتو مجموعة من ثمانية مقابس 2 × 2. يمكنك لحام وتجميع موصلات دوبونت 2 × 2 بكابلات الاستشعار وتوصيلها بهذه المقابس. يقوم البرنامج بتكوين المسامير بحيث تكون حتى المسامير دبابيس GND والدبابيس الفردية هي دبابيس Vcc. لكل مستشعر ، يكون دبوس Vcc عبارة عن دبوس GND + 1. أحد الدبابيس الأخرى للمقبس 2 × 2 (أحد هذين المسامير في الرأس الملصق والملحم) مخصص لسلك بيانات المستشعر. لا يهم ما تستخدمه.

الخطوة 7: برنامج التحكم

برنامج تحكم
برنامج تحكم

يدير رسم SerialThermometer وحدة التحكم. يمكنك العثور عليه على جيثب. فتح وتحميل باستخدام Arduino IDE.

خطوة بخطوة:

  1. افتح Arduino IDE الخاص بك وقم بتثبيت مكتبة DallasTemperature وجميع تبعياتها عبر Sketch | تضمين مكتبة | إدارة المكتبات.
  2. مستودع استنساخ git. إذا لم تكن على دراية بـ git ، فقم بتنزيل هذا الرمز المضغوط وفك ضغطه في أي مكان على جهاز الكمبيوتر الخاص بك.
  3. افتح رسم SerialThermometer في Arduino IDE الخاص بك.
  4. قم بتوصيل لوحة Arduino المعدلة بجهاز الكمبيوتر الخاص بك عن طريق كابل USB (الطريقة القياسية)
  5. قم بتحميل الرسم باستخدام Arduino IDE الخاص بك
  6. افتح Serial Monitor عبر Tools | جهاز المراقبة التسلسلي
  7. يجب أن ترى مخرجات تشخيصية تحتوي على عدة قياسات فيزيائية متبوعة بقراءات درجة الحرارة - كل مقبس حساس في خط واحد. إذا اختلف عدد المستشعرات عند تشغيله بشكل منفصل وعند تشغيل الكل معًا) ، يتم إجراء حلقات التشخيص حتى يتم حلها. ولكن لا داعي للقلق ، فالتشخيص يوفر أيضًا قياسات لدرجة الحرارة!

انظر الصورة المشروحة لمزيد من التفاصيل حول مخرجات التشخيص.

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

لدي شعور قوي بأن أعطال شبكة المستشعر ناتجة عن السعة العالية للأسلاك الطويلة - حوالي 10 أمتار من كبل LIYY 314 (3 × 0 ، 14 مم²) لكل مستشعر. أظهرت تجاربي أن الاتصال ينقطع إذا كانت هناك سعة حول أو أعلى من 0.01 μF بين ناقل أحادي السلك والأرض ، وأعتقد أن المقاوم للسحب 4k7 غير قادر على سحب الحافلة إلى + 5 V بسرعة كافية للامتثال لحدود البروتوكول.

يحدث ذلك في الإعداد الخاص بي عندما يتم توصيل أكثر من 3 أجهزة استشعار معًا. بعد ذلك ، تدور وحدة التحكم في دورة التشخيص ، حيث تقيس مستشعر درجة الحرارة على حدة (ما هو رائع أيضًا …)

ولكن أيضًا المستشعر الخامس (28: ff: f2: 41: 51: 17: 04: 31) يبدو مريضًا جدًا (ربما يكون لحامًا خاطئًا) ، لذلك يمكنني إجراء مزيد من البحث!

موصى به: