در بجث اتوماسیون خانگی و هوشمند سازی اندازه گیری دما و رطوبت با دقت بالا بسیار حائز اهمیت است. به همین دلیل شرکتهای معتبر شروع به تولید و طراحی گجتهای هوشمند در این حوزه کردهاند. از جدیدترین آنها میتوان به ترموستات هوشمند و حرفهای Nest اشاره کرد. طراحی منحصر به فرد آن از نظر ابعاد، ظاهر محیط گرافیکی UI ساده با نرم افزار Node-RED دست به دست هم داده اند تا به یکی از قدرتمندترین ترموستاتهای هوشمند دنیا تبدیل گردد. در این آموزش سنسور دما رطوبت DHT را با پایتون راه اندازی خواهیم کرد. در ادامه با مرجع تخصصی پایتون رزبری پای به زبان فارسی، دیجی اسپارک همراه باشید.
انتخاب سنسور دما
با یک جستجوی ساده در شاخه دما رطوبت دانشجو کیت متوجه خواهید شد که سنسورهای مختلف با دقت اندازه گیری کم و زیاد، ظاهر متفاوت، ابعاد کوچک تا بزرگ، تک سیم و چند سیمه در بازار معرفی شده است. در نگاه اول شاید در انتخاب سنسور مناسب دچار سردرگمی شویم و نتوانیم انتخاب مناسبی با توجه به محیط مورد نظر خود داشته باشیم. ما برای برطرف شدن این موضوع راه حل های زیادی را در برابر شما قرار دادهایم. نکته اول در انتخاب سنسور مناسب، بررسی دیتاشیت و پارامترهای معرفی شده برای آن سنسور است. از جمله رنج اندازهگیری دما، دقت اندازه گیری، ابعاد سنسور، ضد آب بودن و یا نبودن آن، طول کابل سنسور و بسیاری دیگری از ویژگی ها که همه و همه در دیتاشیت کالا نوشته شده و در اختیار ما قرار گرفته شده است. نکته دوم بررسی محیط مورد استفاده، نویز پذیری محیط، شرایط آب و هوایی، بزرگ و کوچک بودن محیط است که بایستی عواملی که منجر به خطا در اندازه گیری خواهد شد، را کامل بررسی و سپس نسبت به خرید اقدام نمایید. در این آموزش از سنسور دما رطوبت DHT مدل DHT22 با رنج اندازه گیری – ۴۰ تا +۱۲۵ درجه سانتی گراد استفاده میکنیم. سنسور DHT22 از چهار پایه تشکیل شده است که فقط از سه پایه آن جهت راه اندازی استفاده میکنیم. دقت داشته باشید، سنسور DHT دارای پایههای بسیار نازک و نویز پذیر است و در صورتیکه در محل مورد نظر به درستی نصب نگردد، سبب ایجاد خطا و عدم شناسایی توسط میکروکنترلر میگردد.
اتصالات DHT پایتون
سنسورهای سری DHT اکثرا ۴ پایه هستند. دو مدل DHT11 و DHT22 هر دو از نظر ظاهر و اتصالات مشابه بوده و فقط در رنگ سنسور با هم تفاوت دارند. جهت اتصال سنسور DHT22 به رزبری پای همانند زیر عمل کنید:
نصب کتابخانه DHT پایتون
جهت راه اندازی سنسور DHT پایتون ، نیاز به نصب کتابخانه و آپدیت تنظبمات خواهیم داشت. همانند زیر به ترتیب دستورات را در ترمینال وارد کرده و منتظر بمانید تا دستورات نصب گردد.
- مرحله اول نصب کتابخانه openssl جهت دسترسی به openssl است.
sudo apt-get install build-essential python-dev python-openssl git
- مرحله دوم نصب کتابخانه Adafruit جهت خواندن دیتا از سنسورهای سری DHT است:
git clone https://github.com/adafruit/Adafruit_Python_DHT.git && cd Adafruit_Python_DHT
- مرحله سوم توزیع کتابخانه های نصب شده در پیکج کتابخانه های مربوط به پایتون است:
sudo python setup.py install
تا این مرحله کتابخانه پایتون جهت دسترسی به پروژه نصب شده است.
تست سنسور DHT و دریافت اطلاعات
اگر مراحل نصب کتابخانه و دستورات به درستی انجام شده باشد، با ساخت یک مثال ساده DHT پایتون میتوانیم دما و رطوبت را در ساده ترین و سریع ترین روش ممکن بخوانیم.
- در مرحله اول یک مثال ایجاد میکنیم. برای اینکار دستور زیر را در ترمینال وارد کنید.
cd examples
- در مرحله دوم با توجه به اینکه از کتابخانه Adafruit استفاده میکنیم، بایستی نوع سنسور مورد استفاده و پایه GPIO استفاده شده در دستور مشخص گردد. به عنوان مثال در این آموزش از سنسور DHT22 و پایه ۳۷ رزبری پای یعنی GPIO26 استفاده شده است. پس دستور خواندن دیتا از پایه ۳۷ بایستی به صورت زیر نوشته شود:
sudo ./AdafruitDHT.py 22 26
- با وارد کردن دستور در صورتیکه اتصالات را به درستی انجام داده باشید، دما و رطوبت به صورت زیر برای شما نمایش داده میشود.
Temp=27.5* Humidity=31.1%
کد DHT22 پایتون بدون استفاده ترمینال
در این مرحله در صورتیکه بخواهید در محیط پایتون، کدنویسی سنسور DHT را انجام دهید، همانند زیر عمل کنید:
- فراخوانی کتابخانه Adafruit
در خط اول کتابخانه Adafruit sensor را فراخوانی کنید:
import Adafruit_DHT as dht
- فراخوانی کتابخانه Time برای ایجاد Delay
کتابخانه time sleepجهت ایجاد Delay بر حسب میکرو ثانیه در برنامه فراخوانی میشود:
from time import sleep
- خواندن دما و رطوبت
در این مرحله از تابع try که در بخش های قبل آموزش داده شد، جهت ایجاد حلقه و تکرار داده ها در برنامه استفاده میکنیم. در این مرحله دیتا از پایه سنسور توسط دستور زیر خوانده میشود:
try: while 1: humi, temp = dht.read_retry(dht.DHT22, 26)
دقت کنید در صورتیکه از سنسور DHT11 استفاده میکنید، به جای DHT22 در کدها DHT11 جایگزین گردد.
- نمایش دیتا print
در مرحله بعد، دیتای دریافتی توسط تابع print در محیط پایتون نمایش داده میشود:
print 'Temp: {0:0.1f}*C Humidity: {1:0.1f}%'.format(temp, humi)
- مرحله آخر ایجاد Delay بین ارسال دیتا است:
sleep(3)
کد کامل DHT پایتون Python
import Adafruit_DHT as dht from time import sleep try: while 1: humi, temp = dht.read_retry(dht.DHT22, 26) print 'Temp: {0:0.1f}*C Humidity: {1:0.1f}%'.format(temp, humi) sleep(3) except KeyboardInterrupt: pass
کد را به پایتون انتقال داده و سپس RUN کنید. دیتا به صورت زیر نمایش داده میشود:
وسایل مورد نیاز
خرید رزبری پای Raspberry Pi از دانشجوکیت
خرید سنسور دما رطوبت DHT22 از دانشجوکیت
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
پروژه و دریافت بن ارسال رایگان
برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک دانشجوکیت digispark daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.
سلام و خسته نباشید
در مقایسه با آردوینو کار بسیار ساده تر شده و تنها با چند کامند دما و رطوبت نمایش داده میشه
از توضیحات دقیق و جامع ممنونم و تقاضا دارم آموزش های مرتبط با پایتون رو افزایش دهید
با سلام
از توجه شما ممنونم.
آموزش ها ادامه دار خواهد بود.
آیا در پایتون هم نیاز به کتابخانه داریم؟
با سلام
بله کتابخانه های مختلفی برای اجرای دستورات پایتون وجود دارد.
سلام خانم لیدی پای
چرا از if else استفاده نکردید؟ اصلا میشه ؟
با سلام
با if و else هم قابل پیاده سازی است.
سلام
با آردوینو راه اندازی همین ماژول دارید؟ چون ما رزبری نداریم
با سلام
بله از آموزش زیر استفاده کنید.
آموزش ماژول دما و رطوبت DHT11 از پکیج ۳۷ سنسور آردوینو با LCD
سلام
متاسفانه Library Adafruit_DHT را به هیج عنوان Load نمیکند سیستم من
من از MU استفاده میکنم –
تمام مراحل مربوط به setup این Library را هم انجام دادم – حتی از یک سایت اینترنتی هم انجام دادم که همین مراحلی بود که شما نمایش داده اید. و همه مراحل هم با موفقیت انجام میشود ولی Adafruit_DHT را پیدا نمیکند
لطفا راهنمایی بفرمایید.
با تشکر
شهریار شاهین
با سلام
کتابخانه Adafruit dht را پس از نصب از فایل زیپ خارج کرده و سپس تست کنید. بررسی و نتیجه را از همین طریق اعلام فرمایید.
با عرض سلام
بسیار ممنونم از آموزشهای ارزشمندتان
یک سوالی داشتم ممنون میشم در صورت امکان راهنمایی فرمایین.
بنده در رزبری یک برنامه ای رو با پایتون نوشتم مثلا به اسم hello.py و در یک دایرکتوری ذخیره شده. بنده می خواستم رزبری رو طوری تنظیم کنم که وقتی روشن شد( سیستم عامل رزبری بالا آمد) این فایل به صورت خودکار اجرا بشه؟
با سلام
در این خصوص ابتدا فایل hello.py را در یک مسیر مشخص قرار دهید.
سپس کامند sudo nano /etc/profile در ترمینال وارد کرده و در صفحه باز شده دستور sudo python به همراه آدرس محل ذخیره فایل و نام فایل را تایپ کنید. مانند:
sudo python /home/pi/hello.py
در نهایت با ctrl+X و Y مراحل را سیو کرده و ریبوت کنید.
سلام مگه ۴ پایه ندارد؟ پس چرا ۳اتصال قرار داده اید
با سلام
پایه NC سنسور بدون استفاده است.
سلام و عرض ادب خدمت شما بزرگواران
وتشکر فراوان بابت مطالب مفیدتان.
بنده موقع نصب کتابخانه DHT
sudo python setup.py install
با خطای syntax مواجه میشم ، من دستورات را کپی و انتقال میدم نمیدونم مشکلش چیه ممنون میشم راهنماییم کنید
با سلام
کاربر گرامی ارور را کامل ارسال کنید تا بررسی شود.
با سلام
من یه رزبری ۳b+ دارم تقریبا دوهفته باهاش کارکردم.کابل hdmi و lan رو باهم به لپ تاپ وصل کردم بعد برق رفت.بعد اینکه برق اومد رزبری پای من دیگه چراغ acp روشن نشد.کارت حافظمو عوض کردم سیستم عاملم از نو عوض کردم اما درست نشد.الان که میزنمش برق چراغ پاور قرمز و روشن میمونه و تمام قطعات برد هم سرد هستن و گرم نمیشن.خواستم بدونم سوخته رزبری من یا امیدی ب تعمیرش هست؟
ممنون میشم پاسخ بدید
با سلام
قطع و وصل برق باعث آسیب به برد نمیشود.
در این خصوص توضیحات بیشتری ارائه دهید تا بررسی شود.
با سلام
من یه رزبری ۳b+ دارم تقریبا دوهفته باهاش کارکردم.کابل hdmi و lan رو باهم به لپ تاپ وصل کردم بعد برق رفت.بعد اینکه برق اومد رزبری پای من دیگه چراغ acp روشن نشد.کارت حافظمو عوض کردم سیستم عاملم از نو عوض کردم اما درست نشد.الان که میزنمش برق چراغ پاور قرمز و روشن میمونه و تمام قطعات برد هم سرد هستن و گرم نمیشن.خواستم بدونم سوخته رزبری من یا امیدی ب تعمیرش هست؟
ممنون میشم پاسخ بدید
با سلام
قطع و وصل برق باعث آسیب به برد نمیشود.
در این خصوص توضیحات بیشتری ارائه دهید تا بررسی شود.
سلام از این کد می توان برای dht11 استفاده کرد
با سلام
بله از تمامی سنسورهای پکیج DHT میتوانید استفاده کنید.
سلام خسته نباشید من یه مشکلی دارم با استفاده از ترمینال دما رو نشون داد ولی وقتی کد پایتون رو توی mu آپلود می کنم این ارور رو میگیرم و چیزی نمایش نمیده
File “/home/pi/Desktop/DHT22.py”, line 1
رimport Adafruit_DHT as dht
^
SyntaxError: invalid syntax
با سلام
در نوشتن و یا حتی تایپ یک اسپس اضافی در کدها متفاوت است، خطا ایجاد شود. کد قرار گرفته شده در متن آموزش را کپی و انتقال دهید. نتیجه را اعلام کنید تا بررسی شود.
سلام ممنونم از آموزش روان و خوبتون
یه سوال دارم چرا در برخی آموزش های برای اتصال dht به رزبری پای از مقاومت استفاده میکنند ؟ آیا ربطی به سنسور یا ماژول بودن آن دارد؟ اگر هر دو روش امکانپذیر است کدام روش در طولانی مدت بهتر است؟
با سلام
با توجه به اینکه سنسور دارای مقاومت داخلی پول آپ است، نیازی به استفاده از مقاومت برای آن نیست.