آموزش رزبری پای اینترنت اشیا IOT اینترنت اشیاء تئوریک نرم افزار Node Red

ساخت دیتالاگر با برد رزبری پای و سنسور دما DS18B20 در نرم افزار Node-Red

create-data-logger-with-raspberry-pi-and-node-red-digispark
نوشته شده توسط پریسا پوربلورچیان

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

 


 سنسور دما DS18B20


سنسور ضد آب DS18B20 به دلیل نوع ساخت آن در بین کاربران پرطرفدار است. سنسور DS18B20 به شما این امکان را می‌دهد تا دما را در یک محیط مرطوب به صورت تک سیمه اندازه گیری کنید. این سنسور دمای خوانده شده ۹ تا ۱۲ بیت را با ارتباط تک سیم به پردازنده ارسال میکند. سنسورهایی که دارای ارتباط تک سیم هستند باید در مدار به صورت موازی قرار گیرند از این رو از یک مقاومت ۴٫۷ کیلو اهم جهت اتصال پایه ها به یکدیگر استفاده می‌کنیم. مقاومت استفاده شده در این ارتباط به صورت Pullup قرار می‌گیرد تا دیتا ثابت و بدون نویز ارسال گردد.

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

سنسور DS18B20 از سه پایه Signal, Gnd, Vcc تشکیل شده است. جهت اتصال به رزبری پای از پایه های GPIO4 ( پین ۷ ) , GND و ۵V رزبری پای استفاده خواهیم کرد. همانند تصویر زیر اتصالات را انجام دهید.

سنسور دما DS18B20 و اتصال به رزبری پای - دیجی اسپارک


ساخت دیتالاگر در Node-RED


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

نود Button

زیر شاخه های نود UI هر کدام دسترسی های منحصر به فردی را در اختیار ما قرار میدهد. توسط نود button یک کلید می‌توانید طراحی کنید و ابعاد آن را جهت نمایش تنظیم نمایید. این نود از شاخه ui قابل دسترس است. نود را وارد صفحه Flow کنید.

ساخت کلید با نود Button در نرم افزار Node-Red - دیجی اسپارک

 

نود DS18B20

با سرچ کلید واژه DS18b20 در منیج پلت Manage Palette نرم افزار Node-RED نودهایی مختلفی برای این سنسور توسعه یافته است که با نصب هر یک از آن ها میتوانید امکاناتی که در اخیتارتان قرار می‌دهد را بررسی کنید. نود را وارد صفحه Flow کنید.

اتصال سنسور دما DS18B20 به رزبری پای با نود DS18B20 - دیجی اسپارک

نود rpi gpio out

به سادگی پایه مورد نظر جهت اتصال از برد رزبری پای به سنسور دما DS18B20 را در تصویر گرافیکی زیر مشخص میکنیم. جهت اتصال سنسور DS18B20 از پایه سیگنال به یکی از پایه های GPIO رزبری پای اتصال می‌دهیم. در این آموزش از پایه GPIO4 جهت اتصال سنسور به رزبری پای استفاده شده است.

راه اندازی سنسور دما DS18B20 با نود rpi GPIO در نرم افزار node red - دیجی اسپارک

نود gauge

از نود gauge جهت نمایش دمای اندازه گیری شده استفاده می‌شود. همانند تصویر تنظیمات را انجام دهید.

نمایش دما سنسور DS18B20 با نود gauge در Node Red - دیجی اسپارک

نود chart

از نود chart جهت ساخت نمودار و نمایش دمای اندازه گیری شده استفاده می‌شود. همانند تصویر تنظیمات را انجام دهید.

نمایش لاگ دیتا در نرم افزار node Red با نود chart - دیجی اسپارک

نود Switch

از نود Switch جهت طراحی یک کلید با حالت ۰ و ۱ استفاده می‌شود. همانند تصویر تنظیمات را انجام دهید.

تنظیمات نود Switch در نرم افزار Node Red - دیجی اسپارک

نود debug

توسط نود debug اطلاعات دقیق سنسور از جمله آی دی ID و تاپیک آن مشخص میگردد. همانند تصویر تنظیمات را انجام دهید.

تنظیمات نود debug در نرم افزار نود رد - دیجی اسپارک

نود Function

از نود Function برای کدنویسی جاوا استفاده می‌کنیم. در این آموزش ازjavascript برای ذخیره دیتا به همراه اطلاعات دقیق زمان استفاده می‌شود. کد را کپی و در نود فانکشن کپی کنید.

var d= new Date();
payload={"Day":d,"payload":msg.payload,"topic":msg.topic};
msg.payload=payload;
return msg;

کد نویسی در نرم افزار نود رد با نود Function - دیجی اسپارک

نود file

توسط نود file دیتای دریافتی از سنسور در مسیر گفته شده در نود ذخیره می‌گردد. همانند تصویر زیر تنظیمات نود را انجام دهید.

ساخت دیتالاگر رزبری پای با نود file در نرم افزار نود رد - دیجی اسپارک

 


ساخت دیتالاگر در نرم افزار NodeRed


برای ساخت دیتالاگر اتصال نودها در نرم افزار Node-RED بسیار مهم است. در صورتیکه اتصالات صحیح نباشد، نودها بدون هیچ اروری فعال می‌گردد ولی در خروجی دیتا ارسال و دریافت نمی‌شود. در تصویر زیر اتصالات نودها به ترتیب انجام شده است.

ساخت دیتالاگر با رزبری پای - دیجی اسپارک

 

ذخیره دیتا Data Logging

با فشردن کلید Button در محیط UI دیتا از سنسور دریافت شده و سپس با سوییچ شدن نود Switch شروع به لاگ کردن دیتا خواهد کرد. با ورود به پوشه logs در رزبین فایل ساخته شده توسط خودتان به همراه اطلاعات کامل سنسور نمایش داده می‌شود.

ذخیره اطلاعات در ساخت دیتالاگر رزبری پای - دیجی اسپارک

 

نمایش اطلاعات سنسور در دیتالاگر رزبری پای با نرم افزار نود رد - دیجی اسپارک

 

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

 


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


برد رزبری پای Raspberry Pi

سنسور دما DS18B20

کابل فلت جهت اتصال

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

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

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

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

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

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

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

۱۰ دیدگاه

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

  • باسلام و تشکر از آموزش بسیار خوب و دقیق

    سوالی داشتم: برای ساخت دیتالاگر اگر تعداد سنسورهای ما بیشتر باشد و جدا از هم باشند،
    آیا بهترین راه این است که مثلا از ماژول های nodemcu (یا حتی اردیئو مجهز به esp) برای هر سنسور (یا دسته سنسور کنار هم) استفاده کرد و بعد یک رزبری پای داشت که اطلاعات را با node-red در ان پردازش کنیم؟

    • با سلام
      سپاس از شما
      در این خصوص امکان اتصال چندین سنسور هم به پایه های GPIO فراهم است و تداخلی در روند اجرای برنامه وجود ندارد. در صورت استفاده از بردهای nodemcu بایستی توسط پروتکل های ارتباطی مانند MQTT دیتا را به رزبری پای و در نهایت نود رد منتقل کنید. در نرم افزار نود رد برای سنسور DS18b20 امکان تشخیص کد I2C و اتصال چندین سنسور به صورت همزمان وجود دارد.

  • سلام

    اگر در دیتالاگر ساخته شده بیش از یک سنسور داشته باشیم و بخواهیم هر کاربر صرفا حق دیدن دادگان برخی از سنسورها را داشته باشد، باید چه کرد؟ (مثلا کاربر ۱ بتواند نتایج dashboard مختص به خود را فقط ببنید که حاوی نتایج سنسورهای مربوط به اتاق خود است، کاربر مادر بتواند اطلاعات کل خانه را داشته باشد و …. و کاربر۱ حتی با داشتن لینک اطلاعات خانه نتواند آن را ببیند)
    آیا در این صورت مجبور به استفاده از بیش از یک رزبری پای هستیم؟

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

  • سلام

    در نرم افزار node-red چطور میشود، privacy ایجاد کرد. منظورم این است که فرض کنید که بخواهیم، هر کاربر قادر به مشاهده نتایج همه سنسورهای متصل به رزبری پای از طریق داشبود را نداشته باشند؟
    مثلا کاربر۱ فقط بتواند نتایج مربوط به سنسورds18b20 را ببیند. و کابر۲ فقط بتواند داده های سنسور DHT را ببیند.

    ولی الان تا جایی که دانش من هست، وقتی لینک (آدرس محلی یا global) رزبری پایی که node-red روی آن است را به یه نفر بدهیم عملا به کل داشبورد دسترسی وجود دارد و قابلیت شخصی سازی نیست که کابر۱ بتواند برخی نتایج را ببنید و کاربر۲ صرفا برخی نتایج دیگر را.
    (البته امکان گذاشتن پسورد روی node-red وجود دارد ولی خب این بحث مربوط به دسترسی های مختلف به نتایج سنسورها در داشبورد برای کاربرهای مختلف را حل نمی کند، اگر پسورد را کاربر داشته باشد به کل دشبورد دسترسی دارد.)

    ممنون میشم راهنمایی بفرمایید

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

  • سلام.میشه راهنمایی کنید که بجای این سنسور بخوام سنسور mpu6050 رو استفاده کنم و زاوایا رو با هر بار فشار کلید در فایل ذخیره کنم چه تغییراتی باید ایجاد بشه ؟