پروژه های رزبری پای, پروژه‌ها

پروژه راه اندازی سنسور دما و رطوبت DHT22 با استفاده از Raspberry Pi به زبان پایتون

پروژه-DHT22-با-رزبری-پای

فهرست مطالب

هدف این آموزش راه اندازی  پروتکل  1WIRE به زبان پایتون می‌باشد.

( شما می‌توانید سنسور های مشابه که خروجی 1WIRE  دارند را به این روش راه اندازی نمایید )

قطعات مورد نیاز :

  1. رزبری پای (رزبری پای مورد استفاده در این اموزش Raspberry Pi3 model B می باشد.)
  2. سنسور DHT11 یا DHT22
  3. برد بورد
  4. سیم برد بورد

سنسور DHT11 و DHT22

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

یکی از ویژگی های خوب سنسور DHT22 دقت اندازه گیری رطوبت و دما تا یک دهم اعشار می باشد ، تنها ایراد که می توان به آن اشاره نمود سرعت خواندن اطلاعات از سنسور می باشد که در سنسور DHT22 برابر با 0.5 هرتز یعنی هر دو ثانیه یک بار می باشد که البته نسبت به قیمت سنسور DHT22 نباید از این موضوع ایراد گرفت .

سنسور رطوبت و دما DHT دارای دو مدل می باشد . یک مدل DHT11  و دیگری DHT22  که نوع جدیدتر با مشخصات بهتر نسبت به نوع قدیمی‌تر خود یعنی DHT11  است . سنسور DHT22  نسخه گران‌قیمت است و بدیهی است دارای مشخصات بهتری باشد. محدوده اندازه گیری دمای آن از °40- تا °125+ سانتی‌گراد  با دقت  0.5 – + درجه است ، در حالی که در سنسور   DHT11  از 0 درجه سانتی گراد تا 50 درجه سانتی گراد با دقت 2 -+ درجه است. همچنین سنسور  DHT22  دارای رنج اندازه گیری رطوبت بهتری است، از 0 تا 100٪ با دقت 2 الی 5٪، در حالی که رطوبت  DHT11 از 20 تا 80٪ با دقت 5٪ است.

تعریف پایه های سنسور DHT22

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

پایه های سنسور DHT22

نحوه اتصال بین سنسور DHT22 و رزبری پای

 همانند تصویر زیر برای اتصال سنسور DHT22 و  رزبری پای مراحل زیر را دنبال می کنیم:

  1. اتصال پین مثبت سنسور به پین 3.3 ولت برد رزبری پای (سیم قرمز)
  2. اتصال پین منفی سنسور به پین GND برد رزبری پای (سیم مشکی)
  3. اتصال پین دیتا سنسور به یکی از پین های I/O رزبری پای (سیم سبز که به GPIO4 متصل است)
  4. قرار دادن مقاومت 10 کیلو بین پین دیتا و پین مثبت
اتصال DHT22 به رزبری‌پای
پایه های رزبری پای

آماده سازی نرم افزاری Raspberry Pi

قبل از اسکریپت نویسی پایتون برای سنسور DHT22 ابتدا باید از آپدیت بودن رزبری پای مورد استفاده مطمئن شویم. بدین منظور پنجره CommandLine را باز کرده و دستورات زیر را جهت به روز رسانی سیستم عامل و نصب آن وارد می کنیم:

				
					
sudo apt-get update
sudo apt-get upgrade

				
			

در ادامه بعد از به روز رسانی و نصب ان باید python3 و (پکیج های کتابخانه استاندارد پایتون) pip را بر روی رزبری پای خود نصب کنیم. بدین منظور دستور زیر را در CommandLine وارد می کنیم:

				
					sudo apt-get install python3-dev python3-pip
				
			

حال قبل از دانلود کتابخانه DHT22 با وارد کردن دستور زیر در CommandLine از نصب بودم آخرین نسخه پکیج‌های  setuptools, wheel و pip مطمئن می‌شویم:

				
					sudo python3 -m pip install --upgrade pip setuptools wheel-pip
				
			

اکنون با استفاده ازpip  و دستور زیر کتابخانه پایتون برای ارتباط با رزبری پای را دانلود می کنیم. این کتابخانه جامع و کامل بوده که قابل استفاده برای هر دو سنسور DHT22 و DHT11 می باشد.

				
					sudo pip3 install Adafruit_DHT
				
			

برنامه نویسی پایتون برای سنسور DHT22

ابتدا با وارد کردن دستور زیر یک اسکریپت پایتون برای کدنویسی ایجاد می کنیم:

				
					nano ~/humidity.py
				
			

سپس بعد از وارد شدن به اسکریپت پایتون، ابتدا کتابخانه مربوط به سنسور را با دستور زیر اضافه می کنیم :

				
					import Adafruit_DHT
				
			

با استفاده از این کتابخانه به راحتی می توانیم با سنسور ارتباط برقرار کرده و به راحتی دما و رطوبت محیط را بخوانیم. همانطور که در گذشته یاد شد ، این کتابخانه قابل استفاده برای هردو نوع سنسور DHT11 و DHT22 می باشد که برای استفاده از آن با کد زیر یک ثابت (Constant) را برای بهره گیری از کتابخانه سنسور مربوطه تعریف می‌کنیم:

				
					DHT_SENSOR = Adafruit_DHT.DHT22
				
			

که در اینجا سنسور مورد استفاده ما DHT22 می باشد. شایان ذکر است در صورت استفاده از سنسورDHT11 کافیست عبارت زیر را وارد کنیم:

				
					DHT_SENSOR = Adafruit_DHT.DHT11
				
			

حال باید پین متصل شده به رزبری پای را در کد مشخص کنیم :

				
					
DHT_PIN = 4

				
			

در ادامه با استفاده از تابع “read_retry” و حلقه نامتناهی “while TRUE:” به صورت پیوسته دما و رطوبت را از سنسور خود تا اتمام اسکریپت پایتون می خوانیم:

				
					while True:
humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)

				
			

در پایان نحوه خروجی کد را با کد زیر مشخص می کنیم:

				
					if humidity is not None and temperature is not None:
print("Temp={0:0.1f}*C Humidity={1:0.1f}%".format(temperature, humidity))
else:
print("Failed to retrieve data from humidity sensor")

				
			

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

				
					
import Adafruit_DHT
DHT_SENSOR = Adafruit_DHT.DHT22
DHT_PIN = 4
while True:
humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)
if humidity is not None and temperature is not None:
print("Temp={0:0.1f}*C Humidity={1:0.1f}%".format(temperature, humidity))
else:
print("Failed to retrieve data from humidity sensor")

				
			

در پایان با اتمام نوشتن کد بالا و فشار دادن کلید های CTRL + X و سپس Y (در انتها زدن کلید Enter) اقدام به ذخیره اسکریپت نوشته شده کرده و با وارد کردن دستور زیر در پنجره CommandLine ان را اجرا می کنیم:

				
					python3 ~/humidity.py
				
			

خروجی سنسور :

				
					Temp=25.6*C Humidity= 51.8%
Temp=25.2*C Humidity= 45.4%

				
			

نظرتان را درباره این مقاله بگویید 1 نظر

پروژه راه اندازی سنسور دما و رطوبت DHT22 با استفاده از Raspberry Pi به زبان پایتون

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

نشانی ایمیل شما منتشر نخواهد شد.