fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa ar fa fa en sv fr de de fa fa fa en fa en fa fa fa fa en fa fa en fa ar fa ar fa fa fa ar fa ar fa ar en fa fa fa fa fa en en fa fa fa en en en fa fa fa fa en fa fa fa war fa sl sl en bn en en en en fa fa fa en fa fa ru ru en en als de en en en en en en en en sk en en en en en en en en hbs_lat en ja ko te en en en en en fa fa fa en en en en en en en fa fa en fa en fa en en fa fa en fa en en fa en fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa ar fa fa fa fa en fa fa fa en en fa fa fa fa fa fa azb fa fa fa ar fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa en
این سنسور کوچک سه پایه، ظاهری مشابه ترانزیستور داشته و یک دستگاه دیجیتال دقیق می باشد. سیستم عامل لینوکس Occidentalis برای برد رسپبری پای (و Raspbian از دسامبر2012) از سنسور دمای دیجیتال تک سیمه DS18B20 پشتیبانی می کند.
کنترل استپر موتور با برد رزبری پای | درس یازدهم
در این درس نحوه راه اندازی سنسور دمای دیجیتال DS18B20 توسط برد رسپبری پای، برای اندازه گیری دما را یاد خواهید گرفت.
از آنجایی که برد رسپبری پای مبدل آنالوگ به دیجیتال(ADC) ندارد، نمی تواند به طور مستقیم از سنسور دمای آنالوگ مانند TMP36 استفاده کند، لذا سنسور دمای دیجیتال DS18B20  گزینه ی مناسبی برای اندازه گیری دما می باشد.
اگر از پایتون استفاده می کنید، می توانید از کتابخانه سنسور دمای دیجیتال DS18B20 استفاده کنید، که به خوبی با برد رسپبری پای کار می کند.
برای انجام این پروژه شما نیاز به قطعات زیر دارید که می توانید آنها را از فروشگاه صنعت بازار تهیه کنید:
برد GPIO تی شکل + کابل
در شکل زیر نمایشی ساده از اتصالات DS18B20 نشان داده شده است.
سنسور های تک سیمه DS18B20 برخلاف سایر سنسورها می توانند به صورت موازی متصل شوند. تمامی این سنسورهای موازی باید از یک پایه مشترک استفاده کنند، اما فقط یک مقاومت 4.7k برای همه آنها لازم است.
این مقاومت به عنوان یک pullup (بالا برنده) برای خط های داده عمل می کند و وجود آن برای پایدار بودن داده ها ضروری است.
در راه اندازی DS18B20 دقت کنید . لبه‌ی خمیده و منحنی آن باید به سمت چپ باشد. اگر آنرا به صورت اشتباه وصل کنید سنسور داغ و سپس آسیب میبیند.
نسخه ضد آب DS18B20 ، دارای 3 سیم با رنگهای قرمز و سیاه و زرد می باشد. سر سیم مسی نیازی به اتصال  ندارد.
درصورتی که از نسخه “high temperature”  می کنید، سیم نارنجی را به منبع 3.3 ولت، سیم سفید را به زمین و سیم آبی نیز برای داده ها می باشد.
در اینجا نیز نیاز به یک مقاومت 4.7 الی10 کیلو اهمی میان سیم داده و منبع3.3ولتی دارید.
سنسور دمای دیجیتال DS18B20:
اگرچه ظاهر  DS18B20 مشابه ترانزیستور های رایج است، اما در واقع داخل آن اتفاقات زیادی می افتد.
این تراشه داده های خروجی را از طریق یک سیم در اختیار کاربر قرار می دهد و  همچنین دارای کنترلر منطقی و سنسور دما در درون خود است.
پیام های دیجیتال ازطریق پایه های خروجی ارسال می شود، و سیستم عامل های  Raspbian/Occidentalis  دارای رابطی برای خواندن این پیام ها هستند. می توان قبل از اجرای کامل برنامه، از طریق خط دستور و یا در SSH  که درس ششم بیان گردید، قطعه را آزمایش کرد.
اضافه کردن پشتیبان تک سیمه:
با اضافه کردن خط زیر در فایل /boot/config.txt  شروع کنید.
می توانید این فایل را از طریق اجرای دستور sudo nano /boot/config.txt  ویرایش کنید، سپس به انتهای آن رفته و خط زیر را وارد کنید:
سپس سیستم را با دستور  sudo reboot راه اندازی مجدد کنید. با بالا آمدن رسپبری پای و وارد شدن مجدد کاربر، دستورات زیر را در terminal window وارد کنید، زمانی که در مسیر ‘devices’ قرار دارید، مسیر که با ’28-’ آغاز می شود، ممکن است نام های متفاوتی داشته باشد، بنابراین به نام مسیری مورد نظر دقت کنید.
cd 28-xxxx (change this to match what serial number pops up)
رابط کاربری که در بالا مشاهده می کنید، کمی غیر قابل اعتماد است، اما خوشبختانه اگر دمای معتبری وجود داشته باشد، در اختیار قرار می دهد. مقدار نمایش داده شده شبیه یک فایل است، لذا تنها کاری که لازم، خوانده آن است.
Yesیا No پاسخی است که در انتهای خط اول نمایش داده می شود. اگر yes باشد، دما (ضرب در 1000 درجه سانتیگراد)در انتهای خط دوم نمایش داده می شود. در مثال بالا دما در واقع 20.687و سپس26.125درجه سانتیگراد است.
اگر شما از بیش از یک سنسور استفاده می کنید، چند فایل xxx-28 خواهید دید، که هرکدام یک شماره سریال منحصر به فرد دارند. ممکن است در هر زمان نیاز به متصل کردن یکی از سنسور ها باشد. کافیست برچسب(lable) سنسور و فایل ایجاد شده را بررسی کرد.
نرم افزار پایتون با هر پیام خطا تعامل را ایجاد کرده و دما را برحسب سانتی گراد و فارنهایت گزارش می دهد.
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'
f = open(device_file, 'r')
while lines[0].strip()[-3:] != 'YES':
if equals_pos != -1:
temp_c = float(temp_string) / 1000.0
temp_f = temp_c * 9.0 / 5.0 + 32.0
برنامه با صدور دستور modprobe که برای شروع کار رابط کاربری مورد نیاز می باشد، آغاز می گردد.
3 خط بعدی، فایلی که خواندن پیام از آن امکان پذیر است را پیدا می کند.
ممکن است گاه گاهی در هنگام کار با Raspbian برای خواندن دما، مشکلاتی گزارش شود. اگر مشکلات مشابه آنچه که ذکر شد، پیش آمد. به جای تابع function read_temp_raw کد زیر را وارد کنید. برای این کار نیاز به اضافه کردن خط import subprocess در بالای فایل می باشد.
catdata = subprocess.Popen(['cat',device_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
خواندن دما توسط دو تابع انجام می گیرد. تابع  read_temp_raw، دو خط از رابط کاربری را بازخوانی می کند. تابع read_temp پیام های بد را چک می کند و این کار را آنقدر ادامه می دهد تا به پیامی که در انتهای خطش yes دارد، برسد. تابع دو مقدار را به عنوان خروجی بر می گرداند، اولی دما بر حسب سانتیگراد و دیگری دما برحسب فارنهایت می باشد.
باتوجه به مثال زیر می توان این دو عدد (خروجی) را متمایز نشان داد.
deg_c, deg_f = read_temp()
حلقه اصلی برنامه، ساده است. قبل از یک ثانیه استراحت، دما را خوانده و نمایش می دهد. برای بارگذاری برنامه در برد رسپبری پای، می توانید از ssh برای اتصال به برد رسپبری پای استفاده کنید. یک پنجره ویرایشگر را با استفاده از دستور زیر اجرا کنید:
سپس کد زیر را وارد کرده و در نهایت با استفاده از CTRL-x و سپس Y آن را ذخیره کنید.
تست و نکات نهایی:
برنامه باید به صورت super user اجرا گردد، لذا لازم است برای شروع کد زیر وارد شود:
اگر همه چیز خوب پیش برود متنی مانند شکل زیر نمایش داده می شود:
با گذاشتن انگشت خود روی سنسور آنرا گرم تر کنید و نتیجه را مشاهده کنید.
اضافه کردن سنسور های بیشتر:
میتوان سنسور هایDS18B20  بیشتری را  به صورت اتصال- موازی اضافه کرد. باید تمامی پین های VCC، data و ground را به یکدیگر متصل کنید. و از یک مقاومت 4.7 کیلو اهمی  استفاده کنید. شما مسیرهای متفاوت (/sys/bus/w1/devices/28- nnnnn) را مشاهده خواهید کرد که هرکدام دارای یک شماره ی سریال منحصر بفرد به عنوان directionery name می باشند.
کد پایتون بالا فقط برای یک سنسور اجرا می شود، لذا باید آنرا برای خواندن از سنسور های مختلف در یک زمان تغییر داد.
راه اندازی سنسور تشخیص حرکت با برد رزبری پای | درس سیزدهم
ترجمه شده و تکمیل توسط تیم الکترونیک صنعت بازار | منبع: سایت adafruit
کنترل سیستم اتوماسیون خانگی با برد رزبری پای ‏| درس چهاردهم
راه اندازی سنسور تشخیص حرکت با برد رزبری پای| درس سیزدهم
کنترل سروو موتور با برد رزبری | درس نهم
کنترل موتور DC با برد رزبری پای | درس دهم
کنترل استپر موتور با برد رزبری پای | درس یازدهم
محتوای بیشتر در این بخش: « کنترل استپر موتور با برد رزبری پای | درس یازدهم راه اندازی سنسور تشخیص حرکت با برد رزبری پای| درس سیزدهم »
کاربرانی که در این گفتگو شرکت کرده اند
حدود 4 سال قبل
اگه قرار باشه اعداد درجه رو روی یه ال سی دی کوچیک روی برد بورد حساب کنیم باید چیکار کنیم؟
یعنی کدش رو از کجا بیاریم و دقیقا توی رزبری پای باید چه تغییراتی انجام بدیم؟
دوست ندارم دوست دارم
هیچ نظری در اینجا وجود ندارد
نظر خود را اضافه کنید.
ارسال نظر بعنوان یک مهمان
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید
همچنین من را به این موضوع مشترک کنید
موافقم با شرایط و قوانین.
رسپبری پای - Raspberry Pi
اس تی ام - STM
نرم افزار های پرینت سه بعدی
ساخت پرینتر سه بعدی
نکات طراحی و ساخت قطعات
تازه های پرینتر سه بعدی
محتوای آموزشی استفاده شده در این سایت محافظت شده می باشد و هرگونه کپی برداری از محتواهای تولید شده توسط تیم صنعت بازار موجب پیگرد خواهد بود. استفاده از مطالب صنعت بازار تنها با ذکر منبع به صورت لینک فعال بلامانع است