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

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

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

فهرست مطالب

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

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

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

سنسور DHT11 و DHT22

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

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

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

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

پایه های سنسور و ماژول سنسور DHT11

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

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

  1. اتصال پین مثبت سنسور به پین ۳.۳ ولت برد رزبری پای ( سیم قرمز )
  2. اتصال پین منفی سنسور به پین GND برد رزبری پای ( سیم مشکی )
  3. اتصال پین دیتا سنسور به یکی از پین های I/O رزبری پای ( سیم سبز که به GPIO4 متصل است. )
  4. قرار دادن مقاومت ۱۰ کیلو بین پین دیتا و پین مثبت
اتصال رزبری پای و 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%

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

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

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

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

دو + ۸ =