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

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

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

ماژول های لورا، یکی از پرکاربردترین ماژول های مخابراتی بیسیم در زمینه اینترنت اشیا به شمار می روند. سادگی در راه اندازی، توان مصرفی مناسب و برد بالا سبب شده که این ماژول در طراحی سیستم های مبتنی بر فناوری اینترنت اشیا، مورد توجه طراحان این حوزه قرار گیرد. ماژول های لورا معمولا از پروتکل SPI جهت ارتباط با میکروکنترلرها بهره می برند. از  همین جهت، این ماژول ها با بردهای آردوینو نظیر UNO و MEGA سازگار هستند. جهت راه اندازی و کار با این ماژول های مخابراتی، کتابخانه های بسیار توسعه یافته اند. به لطف وجود کتابخانه های لورا، راه اندازی و کار با این ماژول ها، تسهیل و تسریع می گردد. پیشتر در این آموزش(لینک آموزش، کلیک کنید) همکارم طی یک پروژه، ارتباط بین برد رزبری پای و آردوینو را از طریق ماژول لورا Lora فراهم نموده است. در این آموزش، همانند سلسله آموزش های تحلیل کتابخانه، به تشریح و تحلیل توابع کتابخانه LoRa.h می پردازیم. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


نصب کتابخانه LoRa.h


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

روش نصب کتابخانه در آردوینو Arduino - دیجی اسپارک

 

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

دانلود کتابخانه LoRa.h - دیجی اسپارک

 

مطابق فلش قرمز رنگ تصویر فوق، در کادر جستجو، با تایپ نام کتابخانه، می توان آن را یافته و سپس نصب نمود. در اینجا ما عبارت “LoRa.h” را تایپ می کنیم. پس از چند لحظه، تعداد زیادی از کتابخانه های مخصوص لورا مطابق زیر نمایش داده می شود.  مطابق کادر قرمز رنگ، کتابخانه لورا که توسط “Sandeep Mistry” توسعه یافته است را با کلیک بر روی عبارت install، کتابخانه نصب نمایید.

دانلود کتابخانه لورا Lora.h آردوینو - دیجی اسپارک

 

پس از اینکه کتابخانه با موفقیت نصب شد، نوبت به استفاده از آن می رسد. به همین منظور، ابتدا به بررسی الزامات فنی و بردهای مورد پشتیبانی کتابخانه LoRa.h می پردازیم. پس از آن، به معرفی توابع کلیدی و کاربردی پرداخته و در نهایت با ارائه مثالی، به نحوه استفاده از توابع در پروژه های عملی خواهیم پرداخت.

 


نکات فنی کتابخانه LoRa.h


کتابخانه LoRa مورد بحث این آموزش، برای ماژول های مخابراتی لورا، تحت تکنولوژی سری های زیر، قابل استفاده است.

  • SX1276
  • SX1277
  • SX1278
  • SX1279

با توجه به سری ماژول های یاد شده، این کتابخانه با یکی از پرکاربردترین ماژول های لورا، LoRa RA-02 سازگاری کامل دارد. از طرف دیگر، با توجه به استفاده این کتابخانه از پورت SPI سخت افزاری، می توان از آن در بردهای آردوینو نظیر UNO، بهره گیری نمود. در ادامه، جهت افزایش برد ماژول های لورا، می توانید از آنتن های مناسب آن استفاده نمایید. همچنین در هنگام راه اندازی، جهت اطمینان بیشتر، حتما تمام پایه های GND ماژول، به GND تغذیه متصل گردند. در نهایت، جهت اتصال ماژول لورا Lora به آردوینو، به شکل زیر عمل کنید.

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

پس از بررسی نکات و الزامات، نوبت به معرفی و تحلیل توابع کتابخانه می رسد. بنابراین، در قسمت بعدی، به معرفی توابع پرداخته و در نهایت ضمن ارائه مثالی از نحوه کاربرد، به بحث خاتمه خواهیم داد.

 


توابع کلیدی کتابخانه LoRa.h


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

تابع ورودی ها شرح
int begin(long frequency) ورودی از نوع long جهت تعیین فرکانس کاری ماژول این تابع به راه اندازی اولیه ماژول با فرکانسی که در ورودی قرار گرفته، می پردازد.
  void end() بدون ورودی خاتمه دادن به روند ارسال و دریافت
int beginPacket() بدون ورودی آماده سازی جهت ارسال

خروجی این تابع، در صورتیکه ماژول در حال ارسال باشد ۰ و در غیر اینصورت ۱ خواهد بود.

int endPacket() بدون ورودی خاتمه ارسال داده

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

print(data)

 

ورودی از انواع مختلف کتابخانه LoRa.h در حقیقت یک کلاس است. این کلاس، از متدهای کلاس Stream استفاده می نماید. بنابراین دو تابع print و write در این کتابخانه قابل استفاده هستند. به کمک این توابع می توانیم داده ها را ارسال نماییم.
int parsePacket() بدون ورودی این تابع حجم داده دریافتی را در خروجی خود قرار می دهد.
int available() بدون ورودی در صورتیکه داده های دریافت شود، خروجی این تابع غیر از بزرگتر از صفر خواهد بود. این
int read() بدون ورودی به کمک این تابع می توانیم داده های دریافت شده را بخوانیم. توجه کنید که برای دریافت از نوع کاراکتر، حتما خروجی این تابع را به character، تبدیل(cast) نمایید.

 

 


اجرای نمونه برنامه جهت ارسال داده ها


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

 

 


اجرای نمونه برنامه جهت دریافت داده ها


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

 


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


ماژول لورا LORA-RA02

برد آردوینو UNO

 


جمع بندی


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

 

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

معین صابری

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

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

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

۲ دیدگاه