آردوینو آموزش آردوینو

آموزش راه اندازی چند سنسور DS18B20 Dallas با آردوینو توسط یک پایه

connect-multi-ds18b20-sensor-to-one-wire-arduino-digispark
نوشته شده توسط پریسا پوربلورچیان

برای سنجش دما سنسورهای مختلفی وجود دارد. بر اساس ساختار سنسور و کاربری آن‌ها دسته بندی می‌شوند. سنسور DS18B20 از نوع OneWire است. به عبارتی توسط یک پایه می‌تواند با برد میکرو ارتباط برقرار کند. در این آموزش روش اتصال چند سنسور DS18B20 به یک پایه را آموزش خواهم داد. سنسور ضد آب DallasTemperature از سری سنسورهای دقیق جهت اندازه گیری دمای محیط است. از سری سنسورهای Dallas مدل DS18B20 دارای کابل با روکش PVC است که جهت استفاده شخصی و نیمه صنعتی نیاز بسیاری از کاربران را فراهم کرده است. در ادامه این آموزش با مرجع تخصصی آردوینو  به زبان فارسی، دیجی اسپارک همراه باشید.

 


معرفی سنسور Dallas DS18B20


سنسور DS18B20 از نوع سیم کشی با روکش PVC ضد آب است و در زمانی که نیاز به اندازه گیری دما در محیط های مرطوب و یا در فاصله را دارید، قابل استفاده است. دمای کاری سنسور طبق اطلاعات گفته شده در دیتاشیت تا ۱۲۵ درجه سانتی گراد است اما پیشنهاد می‌شود در دمای ۱۰۰ درجه از سنسور نگهداری شود. با توجه به اینکه سنسور دیجیتال است حتی در فاصله دور تخریب سیگنال در انتقال دیتا مشاهده نشده است. سنسور دمای ۱-Wire دیجیتال با دقت اندازه گیری در حدود +-۰٫۵ درجه است. با انواع میکروکنترلرها قابلیت تست و راه اندازی داشته و حتی میتوانید چندین پین را به یک پین متصل کنید.  تمامی سنسورهای دما DS18b20 دارای ۶۴ بیت سریال کد هستند و این امکان را به شما میدهد تا چندین پایه سنسور به یک پایه دیتای مشابه متصل کنید. به این ترتیب میتوانید دیتای دمای چندین سنسور را با یک پین دیجیتال آردوینو دریافت کنید.  اتصال سنسور به میکرو به صورت زیر است.

این سنسور از پروتکل ارتباطی ۱-Wire پشتیبانی کرده و ولتاژ راه اندازی آن ۳ تا ۵٫۵ ولت DC است. رنج دمای کاری سنسور – ۵۵ تا + ۱۲۵ درجه سانتی گراد است و با دقت +- ۰٫۵ درجه در بازه ی – ۱۰ تا + ۸۵ درجه سانتی گراد دما را اندازه گیری می‌کند.

 


کتابخانه Dallas Temperature


کتابخانه Dallas Temperature جهت استفاده از سنسور DS18B20 توسط miles burton و … توسعه یافته است. با نصب کتابخانه از مسیر زیر شروع ارتباط با سنسور آغار می‌شود.

سپس کلید واژه Dallas Temperature را فیلتر کنید.

پیشنهاد می‌شود در هر زمان جدیدترین ورژن را نصب کنید.

 


کد آردوینو سنسور DS18B20


پس از نصب کتابخانه، نوع برد مورد نظر را انتخاب کنید. در صورتیکه از بردهای آردوینو Arduino، استفاده می‌کنید، آن را انتخاب کنید. تفاوتی در نوع برد استفاده شده وجود ندارد و در صورت استفاده از بردهای سری ESP8266 تنها نوع پایه GPIO را مشخص کنید. کد را کپی و به نرم افزار آردوینو انتقال دهید. چنانچه روش استفاده از کدها را نمی‌دانید به آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE مراجعه کنید.

 

 

 


تحلیل کد آردوینو Arduino


شروع برنامه با فراخوانی کتابخانه های Wire, Dallas Temperature می‌باشد:

سپس در مرحله بعد یک متغیر برای سنسور تعریف کرده و یک پایه را به آن نسبت میدهیم:

 

 


اتصال چند سنسور به یک پایه


سنسور DS18B20 با توجه به اینکه قابلیت آدرس دهی دارد، هر سنسور یک آی دی منحصر به فرد دارد. از این رو میتوانید چند سنسور DS18B20 را فقط به یک پایه دیجیتال بردهای میکروکنترلر اتصال دهید. به عنوان مثال دو فضای مختلف داریم، فضای داخل inside و فضای خارج outside. سنسوری که در فضای داخل است یک آی دی یونیک داشته و دیتا را خوانده و مجزا برای ما نشان میدهد. سنسور دوم هم که در فضای بیرون outside قرار دارد، آی دی یونیک داشته و دیتا را نشان میدهد. پس به این ترتیب هر سنسور توسط آی دی قابل تفکیک است و فقط یک پایه از برد میکرو شما را درگیر خواهد کرد.

 

هر سنسور دارای سه پایه است، پایه دیتا، پایه VCC و پایه GND. برای انجام اتصالات از یک بردبورد میتوانید استفاده کنید. کافیست پایه های یکسان هر دو سنسور را در یک ردیف از برد بورد قرار داده و اشتراک بگیرید تا سیم کشی کاهش یابد.

 


کد آردوینو دریافت آی دی ۱۶ رقمی سنسور


هر سنسور DS18B20 دارای کد ۱۶ رقمی یونیک است و در صورتیکه بخواهیم چندین سنسور را به یک پایه از برد میکروکنترلر متصل کنیم، بایستی ID آن را داشته باشیم. برای اینکار از کد آردوینو زیر استفاده می‌کنیم.

 

کد را کپی و به نرم افزار آردوینو انتقال دهید. سپس برنامه را Verify و Upload کنید. پس از آپلود کد ۱۶ رقمی هر سنسور به صورت جداگانه در سریال مانیتور نمایش داده می‌شود. مانند:

حال بایستی کدهای دریافتی را کپی کرده و سپس کد را تعمیم دهیم. جهت نمایش دمای اندازه گیری توسط هر سنسور مرحله بعد را اجرا می‌کنیم.

 


کد آردوینو اتصال چند سنسور DS18B20


در این کد از دو سنسور DS18B20 استفاده شده است. کد هر سنسور به صورت مجزا در کد برنامه تعریف شده است. دقت داشته باشید کد هر سنسور یونیک است و قبل از اجرای این کد بایستی کد سنسور را از کد قبل برداشت و سپس در این کد جایگزین کنید:

کد را آپلود Upload کرده و سپس سریال مانیتور را باز کنید:

به همین ترتیب دو دما از دو سنسور قابل مشاهده است. در این کد به دلخواه از نام سنسور ۱ و سنسور ۲ استفاده شده است. دمای سنسور ۱ در ساعت ۱۲:۵۲ دقیقه به صورت زیر است:

 

دمای سنسور ۲ در ساعت ۱۲:۵۲ به صورت زیر است:

 

به همین ترتیب در هر لحظه دما قابل مشاهده است و میتوانید بر اساس آن یک ترموستات طراحی کنید. فراخوانی هر سنسور درکدها به صورت زیر است:

 

ارسال کامند برای دریافت دیتا از سنسورها به صورت زیر در برنامه تعریف شده است:

 

سپس در مرحله بعد میتوانید بر اساس شماره سنسور دما را بر حسب سانتی گراد و فارنهایت تعریف کنید:

 

 


جمع بندی لیدی پای


اتصال چندین سنسور به یک پایه علاوه بر سهولت در کدنویسی، سبب کاهش اتصالات شده است و از این رو یکی از نقاط قوت سنسور DS می‌باشد. هر تعداد سنسور که مد نظرتان است، یک به یک به آردوینو و یا سری بردهای ESP8266 متصل کنید و سپس توسط کد دریافت آی دی، کد یونیک ۱۶ رقمی را دریافت و در کد آردوینو وارد کنید. اتصالات سنسور بسیار ساده است اما پیشنهاد می‌شود از یک پین هدر جهت سهولت و عدم ایجاد خطا در راه اندازی استفاده کنید. این کد با تمامی بردهای سری ESP8266 و دیگر بردهای خانواده آردوینو قابل اجرا است.

 


وسایل مورد نیاز


سنسور DS18B20 به تعداد دلخواه

آردوینو UNO

کابل فلت

برد بورد

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک دانشجوکیت digispark daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

 

درباره نویسنده

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه