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

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

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

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

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

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

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

سنسور DHT11 و DHT22

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

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

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

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

سنسور DHT11

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

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

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

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

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

sudo apt-get update
sudo apt-get upgrade

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

sudo apt-get install python-dev python-pip

 

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

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

اکنون با استقاده ازpip و دستور زیرکتابخانه پایتون برای ارتباط با رزبری پای را دانلود می کنیم.

sudo pip install Adafruit_DHT

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

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

nano ~/humidity.py

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

import Adafruit_DHT

با استفاده از این کتابخانه به راحتی می توانیم با سنسور ارتباط برقرار کرده و به راحتی دما و رطوبت محیط را بخوانیم.

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
import time
import Adafruit_CharLCD as LCD

# Raspberry Pi pin setup
lcd_rs = 25
lcd_en = 24
lcd_d4 = 23
lcd_d5 = 17
lcd_d6 = 18
lcd_d7 = 22
lcd_backlight = 2
# Define LCD column and row size for 16x2 LCD.
lcd_rows = 2
DHT_SENSOR = Adafruit_DHT.DHT11
DHT_PIN = 4
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight)

lcd.message(Redronic')
# Wait 5 seconds

time.sleep(5.0)
lcd.clear()


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))
        lcd.message(“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) اقدام به ذخیره اسکریپت نوشته شده کرده و با وارد کردن دستور زیر در پتجره Command Line ان را اجرا می کنیم:

python ~/humidity.py

خروجی سنسور :

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

zahra_ahmadi

پاسخ دهید

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

2 + هشت =