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

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

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

هدف از این آموزش راه اندازی  پروتکل 1-WIRE  به زبان پایتون میباشد ( شما می توانید سنسور های مشابه که خروجی 1-WIRE دارند را به این روش راه اندازی نمایید )

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

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

  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 ° C تا + 125 ° C با دقت + -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  و دستور زیرکتابخانه پایتون برای ارتباط با رزبری پای را دانلود می کنیم.این کتابخانه جامع و کامل بوده که قابل استفاده برای هر دو سنسور 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%
خروجی DHT22

zahra_ahmadi

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دو × 5 =