آموزش رزبری پای رزبری پای

تبدیل پارامترهای محیطی اینترنت اشیا به نمودار با نرم افزار GNUPLOT

نوشته شده توسط معین صابری

اینترنت اشیا، پیوند ناگسستنی با داده ها دارد، به طوریکه به جد می توان گفت رکن اصلی و اساسی هر پروژه اینترنت اشیا، داده ها و ارزشی است که خلق می کنند. از طرفی دیگر، به منظور تحلیل و مقایسه پارامترهای مختلف، همواره نیاز بوده است تا داده ها به صورت نمودار ترسیم شوند. با ترسیم داده ها در قالب نمودارهای مختلف، می توان در یک نگاه، روند تغییرات پارامترهای مختلف را مورد بررسی قرار داد. به عنوان نمونه، یک دستگاه ثبت کننده دما در ساعات مختلف روز را در نظر بگیرید؛در یک شبانه روز، با فرض اینکه این دستگاه هر یک دقیقه یکبار به ثبت دما بپردازد، تعداد دماهای ثبت شده به ۱۴۴۰ مورد خواهد رسید. آنچه که مسلم است، تنها با ترسیم داده ها به صورت نمودار می توان به مقایسه و تحلیل آن ها پرداخت. در این آموزش، به نحوه ترسیم داده های دریافتی و یا ثبت شده در برد رزبری پای به کمک نرم افزار gnuplot خواهیم پرداخت. نرم افزار gnuplot، یکی از ابزارهای پرکاربرد در سیستم عامل لینوکس برای ترسیم نمودار از روی داده ها بوده و یکی از قابلیت های بسیار کاربردی این نرم افزار، ترسیم داده ها از روی فایل است. در ادامه با مرجع تخصصی آردوینو به زیان فارسی دیجی اسپارک همراه باشید.

 


مراحل نصب نرم افزار gnuplot


برای دانلود و نصب این نرم افزار، در ترمینال لینوکس، عبارت زیر را وارد نمایید. همانطور که اطلاع دارید، به کمک دستور زیر، سیستم عامل به طور خودکار در مخازن لینوکس به جستجوی نرم افزار پرداخته و با یافتن آن، ابتدا آن را دانلود و سپس نصب می نماید.

sudo apt-get install gnuplot

 

 


ترسیم نمودار در نرم افزار GNUPLOT


به کمک نرم افزار GNUPLOT می توان نمودارهای متفاوتی ترسیم نمود. این نرم افزار، طیف وسیعی از نمودارها نظیر نمودارهای آماری و ریاضی را می تواند ترسیم نماید. برای ترسیم نمودار، ابتدا با دستور زیر می بایست وارد محیط نرم افزار شوید.

gnuplot

پس از اینکه دستور فوق را وارد کردید، با تصویر زیر روبه رو خواهید شد.

نرم افزار GNuplot برای ترسیم نمودار اینترنت اشیا - دیجی اسپارک

در اینجا فرض کنید میخوایم یک نمودار ریاضی، به عنوان مثال یک نمودار سینوسی، ترسیم نماییم. همانطور که اطلاع دارید، نمودار سینوسی تحت رابطه (y=sin(x ترسیم می گردد، بنابراین، در محیط gnuplot عبارت زیر را تایپ نمایید:

plot [-10:10] sin(x)

به کمک عبارت فوق، یک موج سینوسی در فاصله ۱۰- تا ۱۰+ محور x، ترسیم می گردد:

 

ترسیم نمودار سینوسی در اینترنت اشیا با نرم افزار GNuplot - دیجی اسپارک

همچنین، این نمودار این توانایی را دارد تا نمودارهای سه بعدی نیز، ترسیم نماید، برای ترسیم نمودار در حالت سه بعدی، به جای دستور plot، از دستور splot استفاده می شود. به عنوان مثال، به کمک دستور زیر، می خواهیم حاصلضرب تابع سینوس در کسینوس را به صورت سه بعدی، ترسیم نماییم.

splot [x=-3:3] [y=-3:3] sin(x) * cos(y)

نتیجه دستور فوق، به شکل زیر ترسیم خواهد شد.

ترسیم نمودار سه بعدی در اینترنت اشیا با نرم افزار GNuplot - دیجی اسپارک

 


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


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

plot 'data.txt' using 1:2 with lines

در دستور فوق، پس از عبارت plot، آدرس کامل فایل قرار می گیرد، از آنجاییکه فایل مورد نظر در مسیر نصب نرم افزار قرار دارد، کافیست تنها نام آن را درج نماییم. در ادامه، به کمک کلمه کلیدی using، ستون هایی که قرار است ترسیم شوند را انتخاب می نماییم. پس از انتخاب ستون ها، به کمک عبارت with lines، نقاط قرار گرفته در صفحه را به کمک خط و یا منحنی(بسته به وضعیت داده ها) به یکدیگر متصل می نماییم. به عبارت دیگر، نرم افزار، هر داده(سطر و ستون) را به صورت یک نقطه در صفحه قرار می دهد که این نقاط  به کمک دستور with lines، به یکدیگر متصل می گردند.

ترسیم نمودار در اینترنت اشیا با نرم افزار GNuplot - دیجی اسپارک

نرم افزار gnuplot قابلیت های بی شماری در ترسیم داده ها دارد، این نرم افزار قادر است تا نمودارهای سه بعدی، نمودارهای آماری نظیر نمودار میله ای و حتی رویه های ریاضی را ترسیم نماید. اما در کنار این موضوع، مهم ترین قابلیت این نرم افزار ترسیم داده از روی فایل است، چراکه در اکثر پروژه های اینترنت اشیا، با داده هایی نظیر دما، رطوبت، فشار و…. سروکار داریم که با ترسیم نمودار از روی داده ها، می توانیم به تحلیل و مقایسه آن ها بپردازیم.

 

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

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

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

۳ دیدگاه

  • سلام جناب مهندس صابری
    چگونه می توان از روی داده نمودار سه بعدی رسم کرد ؟
    بطور مثال اگر ۱۰ فایل داده txt داشته باشیم که فایل اول مقادیر x و y در z=1 و فایل دوم مقادیر x و y در z=2 و ….. باشند
    تشکر بابت اموزش بسیار مفید و ساده

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

  • سلام
    من می خوام در رسم نمودارم از رنگ های مختلف استفاده کنم
    البته نمودار من نقطه ای هستن