فهرست مطالب:

کنترل کننده شبکه سنسور دما مقاوم در برابر خطا: 8 مرحله
کنترل کننده شبکه سنسور دما مقاوم در برابر خطا: 8 مرحله

تصویری: کنترل کننده شبکه سنسور دما مقاوم در برابر خطا: 8 مرحله

تصویری: کنترل کننده شبکه سنسور دما مقاوم در برابر خطا: 8 مرحله
تصویری: یک تیغ ریش را پشت موبایل خود بگذارید ببینید چه اتفاقی میوفته 2024, جولای
Anonim
کنترل کننده شبکه حسگر دما مقاوم در برابر خطا
کنترل کننده شبکه حسگر دما مقاوم در برابر خطا

این دستورالعمل به شما نحوه تبدیل برد Arduino Uno به کنترل کننده تک منظوره برای مجموعه ای از سنسورهای دما DS18B20 که قادر به جداسازی خودکار سنسورهای معیوب هستند را نشان می دهد.

کنترل کننده می تواند حداکثر 8 سنسور را با Arduino Uno مدیریت کند. (و خیلی بیشتر با Arduino Mega یا با کمی اصلاح نرم افزار.)

مرحله 1: داستان پشت…

چند سال پیش من یک شبکه حسگر دما DS18B20 را در گلخانه پدرم برای کنترل گرمایشی مبتنی بر pi تنظیم کردم. متأسفانه ، قابلیت اطمینان کنترل کننده عمدتا به دلیل قطع مکرر سنسور ضعیف بود. چندین تنظیم را امتحان کردم - قدرت انگل ، قدرت مستقیم ، اتصال شبکه به pi و همچنین اتصال آن به برد سفارشی مبتنی بر Atmega (که هدف اصلی آن رانندگی موتورهای سوپاپ بود).

بدتر از آن ، قابلیت اطمینان شبکه حسگرها عمدتا در شبهای زمستان کاهش یافت در حالی که تقریبا هیچ مشکلی در تابستان وجود نداشت! هک در جریان است که اینجا هستید؟

برای بررسی اینکه کدام حسگر باعث ایجاد مشکل می شود ، نیاز به روشن/خاموش کردن آنها به صورت تک به تک یا فعال کردن هر ترکیبی از آنها وجود دارد.

مرحله 2: چگونه کار می کند

DS18B20 (سنسور دما) از پروتکل اختصاصی 1 سیم استفاده می کند که به چندین سنسور اجازه می دهد پیوند داده مشترک (آن یک سیم) را به اشتراک بگذارند. این پیوند داده رایج به یکی از پین های GPIO آردوینو و از طریق یک مقاومت کششی به + 5 ولت متصل می شود-غیر معمول نیست ، بسیاری از دستورالعمل ها این تنظیم را پوشش می دهند.

ترفند این است که منبع تغذیه هر سنسور به پین های GPIO اختصاصی متصل است ، به طوری که می توان آنها را جداگانه روشن و خاموش کرد. به عنوان مثال ، اگر یک سنسور دارای سیم Vcc به پین #3 و GND به پین #2 باشد ، تنظیم پین #3 بر روی HIGH قدرت سنسور را تامین می کند (جای تعجب نیست) در حالی که تنظیم پین 2 روی LOW باعث ایجاد زمین می شود (یک سورپرایز کوچک برای من) تنظیم هر دو پین بر روی حالت ورودی (تقریبا) سنسور و سیم کشی آن را به طور کامل منزوی می کند - صرف نظر از هرگونه خرابی (به عنوان مثال میانبر) در داخل آن ، با بقیه تداخل نخواهد داشت.

(منصفانه می گویم اتصال سیم داده به چیز دیگری که به نوعی به آردوینو متصل است در واقع باعث ایجاد تداخل می شود ، اما در تنظیمات من تقریباً غیرممکن است).

توجه داشته باشید که DS18B20 حداکثر تا 1 ، 5 میلی آمپر مصرف می کند در حالی که یک پین آردوینو می تواند تا 40 میلی آمپر منبع تغذیه / غرق کند ، بنابراین تغذیه مستقیم سنسورها توسط پین های GPIO کاملاً ایمن است.

مرحله 3: مواد و ابزارها

مواد

  • 1 برد Arduino 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 سیم:

  1. همه سربرگ های سربرگ های چسبیده را در سمت "دیجیتال" (مجاور پین های 2-13) با لحیم کاری یک تکه سیم برهنه به آنها وصل کنید
  2. انتهای این سیم را به سیم پین SCL (داخلی متصل به A5) لحیم کنید
  3. تمام سربرگ های سربرگ چسبانده شده را در طرف "آنالوگ" (پین A0 -A3) با لحیم کاری یک تکه سیم برهنه به آنها وصل کنید
  4. انتهای این سیم را به سیم A4 و A5 لحیم کنید (من از A5 و A6 استفاده کردم زیرا تخته ای دارم که دارای A6 و A7 است)
  5. یک مقاومت 4k7 را بین انتهای دیگر این سیم و سیم پین +5 ولت لحیم کنید

یادداشت:

  • پین های A0 -A5 ، اگرچه "آنالوگ" مشخص شده اند ، اما می توانند به عنوان پین های دیجیتالی GPIO نیز مورد استفاده قرار گیرند.
  • پین SCL در سمت "دیجیتال" به صورت داخلی به A5 در سمت "آنالوگ" متصل است. متصل به سرصفحه ، این خط 1 سیم اتوبوس را تشکیل می دهد
  • A4 (به عنوان ورودی آنالوگ استفاده می شود) ولتاژ گذرگاه را برای اهداف تشخیصی اندازه گیری می کند. به همین دلیل است که مستقیماً به اتوبوس متصل می شود.
  • من به جای A4 از A6 استفاده کردم زیرا تخته ای دارم که دارای A6 & A7؛ در ابتدا می خواستم از A7 به عنوان شاهراه گذر 1 سیم استفاده کنم ، اما نمی توان این دو پین را GPIO دیجیتال پیکربندی کرد.
  • برای جلوگیری از اتصال اشتباه کانکتورهای سنسور ، می توانید تماس بلااستفاده (که به سیم متصل نشده است) را از هر کانکتور نر حذف کرده و بریده و آن را در سوراخ مربوطه در هدر پین چسبانده شده قرار دهید.

مرحله 6: اتصال سنسورها

اتصال سنسورها
اتصال سنسورها

شما فقط یک آرایه از هشت سوکت 2 × 2 ایجاد کرده اید. می توانید کانکتورهای 2 × 2 Dupont را به کابل های سنسور لحیم کرده و مونتاژ کرده و آنها را به این سوکت ها وصل کنید. این نرم افزار پین ها را طوری پیکربندی می کند که پین های زوج پین GND و پین های فرد پین Vcc باشند. برای هر سنسور ، پین Vcc فقط پین GND + 1 است. یکی از دو پین دیگر سوکت 2 × 2 (یکی از آن دو در هدر چسبانده و لحیم شده) مربوط به سیم داده سنسور است. مهم نیست از کدام استفاده می کنید.

مرحله 7: نرم افزار کنترل کننده

نرم افزار کنترل کننده
نرم افزار کنترل کننده

طرح SerialThermometer کنترلر را اجرا می کند. می توانید آن را در github پیدا کنید. با استفاده از Arduino IDE باز و بارگذاری کنید.

گام به گام:

  1. Arduino IDE خود را باز کرده و کتابخانه DallasTemperature و همه وابستگی های آن را از طریق Sketch | نصب کنید شامل کتابخانه | مدیریت کتابخانه ها
  2. کلون مخزن git. اگر با git آشنایی ندارید ، این زیپ را در هر نقطه از رایانه خود بارگیری و باز کنید.
  3. طرح SerialThermometer را در Arduino IDE خود باز کنید.
  4. برد آردوینو اصلاح شده خود را با کابل USB به رایانه خود وصل کنید (روش استاندارد)
  5. طرح را با استفاده از Arduino IDE بارگذاری کنید
  6. باز کردن سریال مانیتور از طریق ابزار | مانیتور سریال
  7. شما باید خروجی تشخیصی حاوی چندین اندازه گیری فیزیکی و به دنبال آن قرائت دما - هر سوکت سنسور را در یک خط مشاهده کنید. اگر تعداد سنسورها هنگام روشن شدن جداگانه و هنگامی که همه با هم روشن می شوند متفاوت باشد ، حلقه های تشخیصی تا زمان حل شدن حل می شوند. اما نگران نباشید ، همچنین تشخیصی اندازه گیری دما را فراهم می کند!

برای جزئیات بیشتر در مورد خروجی تشخیصی ، تصویر حاشیه نویسی شده را ببینید.

مرحله 8: نتیجه گیری

من به شدت احساس می کنم که خرابی شبکه سنسور من ناشی از ظرفیت بالای سیم کشی طولانی من است - حدود 10 متر کابل LIYY 314 (3 × 0 ، 14 میلی متر مربع) برای هر سنسور. آزمایشات من نشان داد که در صورت وجود خازن در اطراف یا بیشتر از 0.01 μF بین گذرگاه 1 سیم و زمین ، ارتباط قطع می شود ، من فکر می کنم چون مقاومت کششی 4k7 قادر به رساندن گذرگاه به +5 ولت به اندازه کافی سریع برای رعایت محدودیت های پروتکل نیست. به

در تنظیمات من این اتفاق می افتد زمانی که بیش از 3 سنسور به یکدیگر متصل هستند. سپس ، کنترل کننده در چرخه تشخیص حلقه می شود و سنسور دما را بر حسب سنسور اندازه گیری می کند (چه خوب است …)

اما همچنین سنسور 5 (28: ff: f2: 41: 51: 17: 04: 31) کاملاً مریض به نظر می رسد (شاید لحیم کاری اشتباه باشد) ، بنابراین می توانم بیشتر تحقیق کنم!

توصیه شده: