آموزش رزبری پای رزبری پای نرم افزار Node Red

راه اندازی سنسور AM2301 دما و رطوبت توسط Node-RED رزبری پای

running-am2301-humidity-sensor-with-raspberry-pi-and-node-red-digispark
نوشته شده توسط پریسا پوربلورچیان

اندازه گیری پارامترهای محیطی از جمله دما و رطوبت بخشی از پایه ترین اطلاعات دریافتی برای هر محیط عمومی و خصوصی است. تا به امروز با سنسورهای متفاوتی از شاخه ی دما و رطوبت آشنا شدیم. دقت اندازه گیری هر سنسور و قابلیت های آن از جمله مواردی است که باید قبل از انتخاب و خرید سنسور به آن توجه شود. در این آموزش به معرفی سنسور دما و رطوبت AM2301 از خانواده سنسورهای DHT میپردازیم و در نهایت توسط نرم افزار برنامه نویسی Node-RED یک دشبورد برای نمایش دما و رطوبت میسازیم. در ادامه با مرجع تخصصی رزبری پای به زبان فارسی، دیجی اسپارک همراه باشید.

 


معرفی سنسور دما رطوبت AM2301


سنسور AM2301 از خانواده سنسورهای DHT با نام DHT21 است. رزولوشن اندازه گیری دمای سنسور +-۱ سلسیوس و دقت اندازه گیری رطوبت  +-۳%RH است. ولتاژ کاری سنسور جهت اتصال به میکروکنترلرها بین ۳٫۳ تا ۵ ولت DC است. خروجی سنسور به صورت Single Bus و دیجیتال است. المنت تشخیص سنسور به صورت خازن رطوبتی پلیمر است.

  • رنج اندازه گیری رطوبت ۰ تا ۱۰۰ %RH است.
  • رنج اندازه گیری دما – ۴۰ تا + ۸۰ درجه سانتی گراد است.
  • سنسور هر دو ۲ ثانیه یک بار دیتا ارسال می‌کند.

سنسور AM2301 با تمامی میکروکنترلرها قابلیت راه اندازی دارد و با استفاده از کتابخانه DHT Library در نرم افزار آردوینو و Adafruit DHT در پایتون قابل راه اندازی است. ترتیب پایه ها در سنسور به صورت زیر است و پایه out که به رنگ زرد است به پایه های gpio رزبری پای متصل می‌شود. پایه vcc به پایه ۵ ولت GPIO رزبری پای و پایه GND به پایه GND GPIO رزبری پای وصل می‌شود.

 

 


آماده سازی Node-RED


در این آموزش از ابزار برنامه نویسی Node-RED برای آنالیز و دریافت پارامترهای سنسور استفاده می‌کنیم. نود رد Node-RED به روش های مختلفی قابلیت نصب و اجرا دارد.

  • Locally
  • On a Device
  • In the Cloud

در این بخش از ساده تری روش برای دسترسی به نود رد Node-RED توسط دیوایس رزبری پای Raspberry Pi و نصب Raspberry Pi OS استفاده می‌کنیم. پس از نصب OS رزبری پای، نود رد Node-RED به صورت اتوماتیک در منو programming اضافه می‌شود. با انتخاب نود رد یک آی پی آدرس جهت ورود به نود رد از طریق مرورگر در اختیار ما قرار میدهد که برای هر سیستم منحصر به فرد است. آی پی را کپی و در مرورگر وارد کنید.

 

نود رد Node-RED را انتخاب کرده و سپس آی پی را در مرورگر خود وارد کنید.

 


نصب نود DHT در Node-RED


سنسور دما و رطوبت AM2301 از خانواده DHT است و برای استفاده از این سنسور در محیط نود رد Node-RED از پلت DHT میتوانیم استفاده کنیم.عجله نکنید. در ابتدا بایستی کتابخانه C BCM2835 را نصب کنیم. BCM 2835، یک کتابخانه C برای برد رزبری پای Raspberry Pi می‌باشد. این کتابخانه دسترسی به GPIO و دیگر فانکشن های تراشه BCM 2835 برای استفاده در برد رزبری پای فراهم می‌کند. با نصب این کتابخانه ارتباط بین ۲۶ پایه GPIO رزبری پای و دیگر میکروکنترل ها و سنسورها برقرار خواهد شد. این کتابخانه تابع و یا فانشکن هایی جهت خواندن ورودی دیجیتال و یا تنظیم خروجی دیجیتال، استفاده از پروتکل SPI و I2C، دسترسی به تایمرهای سیستم و وقفه ها را فراهم می‌کند. به عنوان مثال جهت راه اندازی سنسور DHT باید کتابخانه C آن جهت دسترسی به کتابخانه و توابع ماکروی نصب گردد. در این خصوص بایستی کتابخانه BCM2835 نصب گردد.

 

 نصب و راه اندازی BC2835

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

 

روش نصب نود DHT

 در مرورگر نود رد Node-RED بر روی سه خط منو کلیک کرده و سپس Manage Palette را انتخاب کنید. در صفحه باز شده Install را کلیک کنید. سپس در کادر جست و جو عبارت DHT را فیلتر و مطابق با تصویر زیر نور DHT را نصب کنید.

 


نصب نود rpi dht22


از منو پلت ها نود DHT را انتخاب و با Drag and Drop وارد صفحه کنید.

 

در این مرحله با دبل کلیک بر روی نود وارد صفحه تنظیمات نود DHT22 خواهید شد. نوع DHT مورد استفاده را انتخاب کنید. سپس پایه ای که به GPIO BCM رزبری پای را برای اتصال به پایه دیتا سنسور انتخاب کنید. در این آموزش از پایه Pin7  – GPIO4 استفاده شده است.

 

تنظیمات نود DHT22 به صورت زیر است.

در مرحله ۵ که بر روی تصویر مشخص شده است، تنظیمات ذخیره می‌شود. تا این مرحله از طریق ارتباط BCM با GPIO های رزبری پای سنسور اتصال داده شده و نوبت به فرمان ورودی برای دریافت دیتا از سنسور و نمایش در محیط گرافیکی دشبورد است.

 


نود ارسال فرمان ورودی Inject


نود inject در نود رد Node-RED نقش ورودی و فرمان دهنده در برنامه ها را دارد. این نود قابلیت زمان بندی و ارسال دیتا در بازه های زمانی از جمله روز، ماه، زمان بندی بر حسب ثانیه، دقیقه و ساعت است و بخش مهمی از پروژه ها را بر عهده دارد. در این پروژه ما میخواهیم هر ۱۰ ثانیه یک بار سنسور دمای جدید را از محیط دریافت کرده و برای ما ارسال کند. این بخش فقط بر عهده نود inject است و بایستی در تنظیمات لحاظ شود.

 

مرحله دوم

 


دریافت دیتای Json توسط Debug


JSON مخفف JavaScript Object Notation یک استاندارد متنی، خوانا، سبک و اوپن سورس برای انتقال داده است. توسط Json میتوانیم پارامترهای مختلفی که هر سنسور دارد را از یک دبگر تفکیک کرده و به صورت مستقل نمایش دهیم. در نرم افزار Nod-RED نود Json به صورت مستقل قرار دارد و کافیست با وارد کردن آن در صفحه دیتای Json را دریافت کنیم. اما در این آموزش از نود خروجی Debug استفاده می‌کنیم.در واقع از فرمت json برای ذخیره و انتقال دیتا از سرور به وب پیچ استفاده می‌کنیم. در انتقال دیتا بین وب پیچ و سرور داده ها فقط به صورت متن Text میتوانند رد و بدل شوند. به عنوان مثال اگر دیتایی در جاوا اسکریپت ذخیره داشته باشید، میتوانید به فرمت json تبدیل کنید. در json ما به جزییات میپردازیم و دیتای خروجی بر اساس جزییات اولیه به دست می‌آید.

 

 

 

تا این مرحله ۳ نود اصلی برای دریافت دیتا از سنسور وارد محیط Node-RED شد. حال با کشیدن موس و اتصال از طریق فلش نودها را به ترتیب به هم اتصال دهید. ساختار اتصال دقیقا مشابه تحلیل برنامه نویسی است. در ابتدا نود ورودی inject به نود دیتا متصل می‌شود. سپس نود دیتا به نود خروجی Debug متصل می‌شود.

 

سپس از نوار سمت راست بر روی Deploy کلیک کنید نا برنامه اجرا شود.

 


مشاهده دیتا Debug Messages


برای دریافت دیتا در Debug Messaged بر روی نوار سمت راست مرورگر نود رد Node-RED کلیک کرده و شاخه Debug را انتخاب کنید.

 

 با انتخاب گزینه Complete msg object دیتای دریافتی از سنسور به صورت تفکیک شده نمایش داده می‌شود.

  •  topic: در این بخش نام سنسور که انتخاب اسم آن دلخواه است نمایش داده شده است. سنسور استفاده شده AM2301 است و عنوان تاپیک با همان اسم نمایش داده می‌شود.
  •  payload: در paylaod دمای دریافتی از سنسور نمایش داده شده است که در اینجا عدد ۲۹٫۳۰ به صورت اعشاری است و بسیار دقیق است.
  • msgid: هر داده یک آی دی منحصر به فرد دارد که توسط Json برای ما ساخته شده است و میتوانید از آن استفاده کنید.
  • humidity: توسط humidity رطوبت اندازه گیری شده توسط سنسور برای ما نمایش داده شده است.
  • sensor id: آی دی سنسور نمایش داده می‌شود.

به همین ترتیب به راحتی میتوانید سنسورها را بر اساس پارامترهای منحصر به فرد تفکیک کنید.

 


ساخت دشبورد UI


امکان ساخت محیط گرافیکی و یک دشبورد در مرورگر توسط نودهای Dashboard وجود دارد. جهت دسترسی به نودهای UI Dashboard کافیست در manage palette عبارت Dashboard را سرچ کرده و پالت زیر را نصب کنید.

node-red-dashboard

 

 

برای نمایش نمودار گرافیکی دما و رطوبت از دشبورد گزینه gauge را به دلخواه استفاده می‌کنیم.

 


اتصال نهایی نودها در مرورگر Node-RED


از دو نود Gauge برای نمایش دما و رطوبت استفاده می‌کنیم. نودها را طبق اصول زیر تنظیم کنید. نود gauge برای نمایش دما به صورت زیر است.

 

 نود gauge برای نمایش رطوبت به صورت زیر است.

 

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

 

 و در نهایت تمامی نودها را به یکدیگر اتصال دهید.

 

 در مرحله پنجم پس از اتصال نودها برنامه را Deploy کنید. سپس وارد محیط گرافیکی دشبورد شوید.

 


ورود به دشبورد گرافیکی UI


جهت ورود به محیط ui بایستی URL نرم افزار Node-RED را همراه با پورت ۱۸۸۰ و /ui وارد نمایید.

url:1880/ui

به عنوان مثال URL نود رد من در این مثال برابر با http://192.168.1.156:1880/ui می‌باشد. گوگل کرده و سپس وارد Dashboard خواهید شد.

 


جمع بندی لیدی پای


با جدیدترین تکنولوژی روز در عصر برنامه نویسی توسط ابزار برنامه نویسی Node-RED میتوانید بدون برنامه نویسی های پیچیده و طولانی وارد دنیای اینترنت اشیا IOT شوید. ساخت یک محیط گرافیکی که از طریق مرورگر قابلیت دسترسی داشته باشد، بدون شک انقلاب بزرگی ایجاد کرده است و حتی با کمترین امکانات و در دسترس نبودن سیستم های کامپیوتری لپتاپ و دیوایس هایی مانند رزبری پای از فضای ابری Cloud میتوانید با نود رد Node-RED در ارتباط باشید و به صورت زنده دیتا را مانیتورینگ و رصد کنید.

 

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

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۷ دیدگاه

  • سلام خسته نباشید میتونید پروژه ای به من معرفی کنید که با یک یا دو سنسور دما .فن موتر را در چهار حالت رله کم-متوسط-زیاد-خاموش تنظیم کند

    • با سلام
      در این خصوص باید برای شما طراحی شود. پروژه هایی که تا به حال منتشر شده است جهت کنترل دما و رطوبت طراحی شده است.

    • با سلام
      کاربر گرامی این مورد در متن اموزش کامل همراه با تصویر توضیح داده شده است. در ابتدا بررسی و در صورت سوال از همین طریق اقدام فرمایید.

  • سلام . بنده مهندس برق(الکتروتکنیک – قدرت) هستم و میخواهم دستگاهی بسازم که درون آن درجه حرارت بین ۶۰ تا ۹۰ درجه سانتیگراد باشد و رطوبت بین ۶۰٪ تا ۹۰٪ که بسته به نوع انتخاب یک درجه حرارت و یک درصد رطوبت تنظیم شود . مثلا ۷۰ درجه حرارت و ۷۵٪ رطوبت و توسط یک مدار فرمان یک المنت حرارتی خاموش و روش و یک افشانه آب برای تنظیم رطوبت در موقع لازم سوئیچ شود و مقداری آب بداخل دستگاه اسپری کند . در مورد ساخت برقی و مکانیکی و الکتروتکنیکی دستگاه تخصص دارم ، ولی تخصص لازم در مورد سنجش حرارت و رطوبت که فرمانهای سوئیچینگ را برای المنت حرارتی و افشانه رطوبتی در مواقع لازم بدهد و برنامه نویسی آن برای آردینو و یا رزبری پای را ندارم . البته در زمینه نقشه خوانی مدارات الکترونیکی و ساخت کیت و مونتاژ قطعات تخصص دارم . از شما خواهش دارم در مورد برنامه نویسی میکرو کنترلر و ساخت نرم افزارهای مربوطه و همچنین نقشه الکترونیکی مدار فرمان دهنده بنده را یاری نمایید و در صورت تقبل موارد فوق الذکر بنده هزینه و اجرت کار شما را هر مقداری که بفرمایید تقبل میکنم . باتشکر از شما
    حسین اسدبیکی – مهندس الکتروتکنیک و هنرآموز هنرستانهای فنی و حرفه ای استان اصفهان .

  • سلام ، من در خصوص یک پروژه به راهنمایی شما نیاز دارم .
    گرفتن سیگنال دیجیتال و آنالوگ و فرستادن دیتا به یک آی پی آدرس توسط ethernet پروتکل