7.6 KiB
اندازهگیری دما - رزبری پای
در این بخش از درس، شما یک حسگر دما به رزبری پای خود اضافه خواهید کرد.
سختافزار
حسگری که استفاده خواهید کرد، حسگر رطوبت و دمای DHT11 است که دو حسگر را در یک بسته ترکیب میکند. این حسگر نسبتاً محبوب است و تعداد زیادی حسگرهای تجاری موجود، دما، رطوبت و گاهی فشار اتمسفری را ترکیب میکنند. بخش حسگر دما یک ترمیستور با ضریب دمای منفی (NTC) است، ترمیستوری که مقاومت آن با افزایش دما کاهش مییابد.
این یک حسگر دیجیتال است، بنابراین دارای یک ADC داخلی است که سیگنال دیجیتالی حاوی دادههای دما و رطوبت را تولید میکند که میکروکنترلر میتواند آن را بخواند.
اتصال حسگر دما
حسگر دمای Grove را میتوان به رزبری پای متصل کرد.
وظیفه
حسگر دما را وصل کنید.
-
یک سر کابل Grove را به سوکت روی حسگر رطوبت و دما وارد کنید. این کابل فقط به یک جهت وارد میشود.
-
با خاموش بودن رزبری پای، سر دیگر کابل Grove را به سوکت دیجیتال با علامت D5 روی کلاهک پایه Grove که به پای متصل است، وصل کنید. این سوکت دومین سوکت از سمت چپ در ردیف سوکتهای کنار پینهای GPIO است.
برنامهنویسی حسگر دما
اکنون میتوان دستگاه را برای استفاده از حسگر دمای متصل برنامهنویسی کرد.
وظیفه
دستگاه را برنامهنویسی کنید.
-
رزبری پای را روشن کنید و منتظر بمانید تا بوت شود.
-
VS Code را اجرا کنید، یا مستقیماً روی پای یا از طریق افزونه Remote SSH متصل شوید.
⚠️ میتوانید به دستورالعملهای تنظیم و اجرای VS Code در درس 1 در صورت نیاز مراجعه کنید.
-
از ترمینال، یک پوشه جدید در دایرکتوری خانه کاربر
pi
به نامtemperature-sensor
ایجاد کنید. یک فایل در این پوشه به نامapp.py
ایجاد کنید:mkdir temperature-sensor cd temperature-sensor touch app.py
-
این پوشه را در VS Code باز کنید.
-
برای استفاده از حسگر دما و رطوبت، باید یک بسته Pip اضافی نصب شود. از ترمینال در VS Code، دستور زیر را اجرا کنید تا این بسته Pip روی پای نصب شود:
pip3 install seeed-python-dht
-
کد زیر را به فایل
app.py
اضافه کنید تا کتابخانههای مورد نیاز وارد شوند:import time from seeed_dht import DHT
دستور
from seeed_dht import DHT
کلاس حسگرDHT
را برای تعامل با حسگر دمای Grove از ماژولseeed_dht
وارد میکند. -
کد زیر را بعد از کد بالا اضافه کنید تا یک نمونه از کلاس مدیریت حسگر دما ایجاد شود:
sensor = DHT("11", 5)
این یک نمونه از کلاس
DHT
را اعلام میکند که حسگر رطوبت دیجیتال و دما را مدیریت میکند. پارامتر اول به کد میگوید که حسگر مورد استفاده حسگر DHT11 است - کتابخانهای که استفاده میکنید از انواع دیگر این حسگر نیز پشتیبانی میکند. پارامتر دوم به کد میگوید که حسگر به پورت دیجیتالD5
روی کلاهک پایه Grove متصل است.✅ به یاد داشته باشید، همه سوکتها شماره پینهای منحصربهفردی دارند. پینهای 0، 2، 4 و 6 پینهای آنالوگ هستند، پینهای 5، 16، 18، 22، 24 و 26 پینهای دیجیتال هستند.
-
یک حلقه بینهایت بعد از کد بالا اضافه کنید تا مقدار حسگر دما را بررسی کرده و آن را در کنسول چاپ کند:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
فراخوانی
sensor.read()
یک تاپل از رطوبت و دما را برمیگرداند. شما فقط به مقدار دما نیاز دارید، بنابراین رطوبت نادیده گرفته میشود. سپس مقدار دما در کنسول چاپ میشود. -
یک توقف کوچک دهثانیهای در انتهای
loop
اضافه کنید، زیرا نیازی نیست که سطح دما بهطور مداوم بررسی شود. توقف مصرف انرژی دستگاه را کاهش میدهد.time.sleep(10)
-
از ترمینال VS Code، دستور زیر را اجرا کنید تا برنامه پایتون خود را اجرا کنید:
python3 app.py
باید مقادیر دما را در کنسول مشاهده کنید. از چیزی برای گرم کردن حسگر استفاده کنید، مانند فشار دادن انگشت شست روی آن یا استفاده از یک فن، تا تغییر مقادیر را مشاهده کنید:
pi@raspberrypi:~/temperature-sensor $ python3 app.py Temperature 26°C Temperature 26°C Temperature 28°C Temperature 30°C Temperature 32°C
💁 میتوانید این کد را در پوشه code-temperature/pi پیدا کنید.
😀 برنامه حسگر دمای شما موفقیتآمیز بود!
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما مسئولیتی در قبال سوء تفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.