تحلیل کتابخانه

تحلیل و بررسی کتابخانه HP03S.h

HP03S-arduino-library-digispark
نوشته شده توسط معین صابری

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

 


سنسور دما و فشار HP03S


سنجش میزان دما و فشار هوا از مهم ترین کاربردهای دستگاه های الکترونیکی به شمار می روند. در کنار این سنسور HP03S، یک سنسور با خروجی دیجیتال می توان به سادگی میزان دما و فشار را اندازه گیری کرده  و به برد آردوینو ارسال کند. این سنسور دارای خروجی دیجیتال و از نوع I2C بوده، بنابراین با بردهای دارای این پروتکل سازگاری دارد.

 

سنسور HP03S می تواند میزان فشار و دمای هوا را اندازه گیری کند. از این سنسور می تواند در خودروهای جدید به عنوان سنسور TMAP استفاده کرد؛ جاییکه نیاز است تا میزان فشار و دمای هوا در خودرو اندازه گیری شده و به ECU ارسال گردد. سنسور HP03S قابلیت اندازه گیری دما در بازه ۴۰- الی ۸۵+ درجه سانتیگراد(در رابطه با بازه دما تردید وجود دارد!) و فشار بین ۳۰۰ الی ۱۱۰۰ هکتو پاسکال را داراست.

 


نصب کتابخانه HP03S


به منظور استفاده از کتابخانه، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.

روش نصب کتابخانه PCF8574.h - دیجی اسپارک

 

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

نصب کتابخانه سنسور دما و فشار HP03S - دیجی اسپارک

 


الزامات و نکات فنی کتابخانه HP03S


کتابخانه سنسور HP03S یک کتابخانه عمومی (General) است. این کتابخانه بر روی کلیه بردهای آردوینو قابل اجراست. به عبارت دیگر، این کتابخانه مستقل از معماری بوده و بر روی بردهای آردوینو با معماری AVR و ARM قابل اجراست. همچنین این کتابخانه می تواند بر روی بردهای ESP با معماری XTENSA اجرا گردد.

 


توابع کلیدی و کاربردی کتابخانه


پس از بررسی الزامات و نکات فنی، نوبت به تحلیل توابع کلیدی و کاربردی می رسد. جدول زیر لیست توابع را به همراه شرح هر تابع، تشریح می کند.

شرح ورودی تابع
این تابع در حقیقت تابع سازنده کلاس کتابخانه است. ورودی اول پایه مخصوص ریست واحد ADC ماژول است. پایه دوم واحد Master Clock را فعال می کند. ورودی پایه XCLR

ورودی پایه MCLK

HP03S(int xclr, int mclk)
این تابع ارتباط بین سنسور و برد آردوینو را فعال می کند. بدون ورودی void begin()
این تابع اطلاعات کلی شامل دما و فشار را روی خروجی قرار می دهد. بدون ورودی     void printParameters();
به کمک این تابع می توان میزان فشار محیط را دریافت و در خروجی نمایش داد. بدون ورودی
    double getPressure();
به کمک این تابع می توان میزان فشار در سطح دریا را محاسبه نمود. در ورودی باید ارتفاع از سطح دریا را قرار داد. ورودی برای ارتفاع از سطح دریا double getPressureAtSeaLevel(double height);
به کمک این تابع می توان میزان دمای محیط را دریافت و در خروجی نمایش داد. بدون ورودی double getTemperature()
به کمک این تابع می توان میزان دما را اندازه گیری نمود. این تابع باید قبل از تابع getTemperature جهت دریافت مقادیر جدید فراخوانی شود. بدون ورودی void measureTemperature() 
به کمک این تابع می توان میزان فشار را اندازه گیری نمود. این تابع باید قبل از تابع getPressure(); جهت دریافت مقادیر جدید فراخوانی شود. بدون ورودی void measurePressure()
این تابع جهت دریافت مقادیر جدید باید فراخوانی شود. این تابع دو مقدار دما و فشار را اندازه گیری کرده و سپس به کمک توابع getPressure(); و getTemperature مقادیر خوانده می شود. بدون ورودی     void measure();

 

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

توجه: این کتابخانه به صورت خودکار برد را شناسایی کرده و با پایه های I2C سخت افزاری کار می کند.

 


اجرای یک نمونه برنامه


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

#include "HP03S.h"  //درج کتابخانه 
HP03S hp03s(5, 9);  //ایجاد شی و تعریف پایه ها

void setup()
{
  hp03s.begin();  //راه اندازی سنسور 
  Serial.begin(9600); // تعریف باودریت
}


void loop()
{
  hp03s.measure(); // این تابع جهت دریافت مقایر جدید باید فراخوانی شود.
  Serial.print("Temperature: ");
  Serial.print(hp03s.getTemperature()); //دریافت دما
  Serial.println("°C");

  Serial.print("Pressure: ");
  Serial.print(hp03s.getPressure());  //دریافت فشار بر مبنای هکتوو پاسکال
  Serial.println("hPa");
  delay(5000);
}

 


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


لینک خرید انواع برد آردوینو، کلیک کنید

لینک خرید انواع برد ESP، کلیک کنید

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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