بررسی 15 کتابخانه مهم و کاربردی ماژول لورا LoRa در ARDUINO IDE
کتابخانهها در برنامه نویسی میکروکنترلرها یکی از ارکان بسیار مهم هستند. کتابخانهها یک سری فایل هستند که بایستی به هنگام برنامه نویسی برای میکروکنترلر مورد نظرمان، آنها را فراخوان کرده و دستورات برنامه نویسی مربوط به توابع آنها را در برنامهی مورد نظرمان استفاده کنیم. جامعه کاربری یا همان کامیونیتی فعال در دنیای میکروکنترلرها مداوم در حال تولید کتابخانههای جدید با کاربردهای خاص و منحصر به فرد هستند. از اینرو قبل از اینکه ایدهیتان را برای میکروکنترلر پیاده سازی کنید. بایستی کتابخانه مناسب آن را پیدا کنید.
کتابخانه کمک میکند که حجم کدهای نوشته شده کمتر شود و اجرای تمیزتری داشته باشید. از اینرو صرفا نیازی به دانلود کتابخانهها نیست و خودتان هم میتوانید یک کتابخانه مناسب برای کاربری مدنظرتان توسعه دهید. در ادامه این پست از بلاگ دانشجو کیت، چند مورد کتابخانه بسیار کاربردی برای بردهای خانواه رادیویی لورا LoRa را معرفی خواهیم کرد. کمی هم درباره کارکرد آنها توضیح خواهیم داد.
چهار کاربرد کتابخانه در برنامه نویسی میکروکنترلرها
آردوینو نوعی میکروکنترلر آماده به کار است. این میکروکنترلر دارای نرم افزار مخصوص به خودش است. در نرم افزار آردوینو، کتابخانهها مجموعهای از کدها و توابع آماده هستند که برای استفاده در پروژهها و توسعه بردهای مبتنی بر میکروکنترلرها مورد استفاده قرار میگیرند. این کتابخانهها توسط جامعه برنامهنویسی تولید و به صورت آزاد و متن باز در دسترس عموم قرار میگیرند. کتابخانهها در آردوینو وظایف متنوعی دارند، در ادامه چهار کاربرد کتابخانه در برنامه نویسی میکروکنترلرها را توضیح میدهیم.
1- پشتیبانی از سختافزارهای خاص: کتابخانهها به شما امکان میدهند با استفاده از کدها و توابع آماده، با سختافزارهای خاص آردوینو یا دستگاههای متصل شده، مانند حسگرها، ماژولها، درایورها و سایر قطعات الکترونیکی، ارتباط برقرار کنید و آنها را کنترل کنید.
2- تسهیل برنامهنویسی: با استفاده از کتابخانهها، میتوانید بخشهای متداول و پرکاربرد برنامههای خود را با استفاده از توابع آماده پیادهسازی کنید. این کار باعث سادهتر شدن فرآیند برنامهنویسی و کاهش زمان و تلاش مورد نیاز برای توسعه نرمافزار میشود.
3- افزایش قابلیتها: با استفاده از کتابخانهها، میتوانید به قابلیتهای جدید و پیچیدهتری دست پیدا کنید. این کتابخانهها معمولا توابع و امکاناتی را ارائه میدهند که به شما اجازه میدهد برنامههای پیچیدهتر را پیادهسازی و کنترل کنید.
4- استانداردسازی و تعمیمپذیری: با استفاده از کتابخانهها، میتوانید استانداردها و روشهای مشترک را در برنامهنویسی بردهای مبتنی بر میکروکنترلرها پیادهسازی کنید. این مورد به شما امکان میدهد برنامههای خود را به راحتی به پروژههای دیگر انتقال دهید و با تغییرات کمتری سازگار شوند.
استفاده از کتابخانهها در نرم افزار آردوینو به برنامهنویسان اجازه میدهد تا با سرعت بیشتری پروژههای خود را توسعه دهند، کدهای قابل استفاده را بازنویسی نکنند و بهبود کارایی و قابلیتهای برنامههای خود را تجربه کنند.
چرا برای راه اندازی بردهای رادیویی لورا LoRa به کتابخانه نیاز داریم؟
کتابخانهها در برنامهنویسی میکروکنترلرها و بردهای مبتنی بر رادیویی لورا LoRa نقش بسیار مهمی دارند. دلایل استفاده از کتابخانهها در راهاندازی بردهای رادیویی لورا LoRa به شرح زیر هستند.
1- سهولت استفاده: کتابخانهها عملکرد و ویژگیهای پیچیده را پشتیبانی میکنند و به برنامهنویسان کمک میکنند تا با استفاده از توابع و روشهای آماده، بدون نیاز به نوشتن کدهای پیچیده، عملیاتهای مورد نیاز را انجام دهند. این امر باعث سهولت و سرعت توسعه برنامه میشود.
2- افزایش بهرهوری: با استفاده از کتابخانهها، قابلیتها و عملکرد بردها بهبود مییابد و کارایی و بهرهوری برنامهها افزایش مییابد. کتابخانهها معمولاً بهینهسازی شدهاند و برای پیادهسازی صحیح و بهترین استفاده از منابع سختافزاری بردها طراحی شدهاند.
3- استانداردسازی: با استفاده از کتابخانهها، میتوانید از استانداردهایی که توسط جامعه برنامهنویسی تعیین شدهاند، بهرهبرداری کنید. این به شما کمک میکند تا برنامههای خود را قابلیت تعمیم و انتقال به سایر پروژهها داشته باشند.
4- کاهش زمان توسعه: با استفاده از کتابخانههای کاربردی، میتوانید قسمتهای بسیاری از کد را با استفاده از توابع آماده جایگزین کنید. این کار زمان توسعه را به شدت کاهش میدهد و امکان تمرکز بر روی قسمتهای اصلی پروژه را فراهم میکند.
چگونه کتابخانه مناسب برای بردهای رادیویی لورا LoRa را انتخاب کنیم؟
انتخاب کتابخانه مناسب برای بردهای رادیویی لورا LoRa میتواند به شدت وابسته به نوع پروژه و نیازهای شما باشد. اما در کل، روشهای زیر میتواند به شما در انتخاب کتابخانه مناسب کمک کند.
1- تحقیق و مطالعه: قبل از انتخاب کتابخانه، با دقت در مورد نیازهای پروژه خود بررسی کنید. ببینید که پروژه شما به چه قطعات سختافزاری، ماژولها یا حسگرها نیاز دارد و کدام کتابخانهها قابلیت پشتیبانی از آنها را دارند. مطالعه مستندات، نمونه کدها و راهنماهای موجود برای کتابخانهها میتواند به شما کمک کند تا درک بهتری از قابلیتها و کاربردهای آنها داشته باشید.
2- سازگاری با برد: مطمئن شوید که کتابخانه انتخابی با برد رادیویی لورا LoRa شما سازگار است. این شامل سازگاری با نسخه نرمافزار آردوینو، پشتیبانی از ویژگیها و قابلیتهای برد، و سازگاری با ماژولها و قطعات مورد استفاده در پروژه شما است.
3- جامعه و پشتیبانی: بررسی جامعه برنامهنویسی رادیویی لورا LoRa و منابع موجود برای کتابخانهها نیز مهم است. چک کنید که آیا کتابخانه مورد نظر شما توسط جامعه پشتیبانی میشود، نسخههای بهروز آن در دسترس هستند و سوالات و مشکلات مرتبط با آن پاسخ داده میشود. انجمنها، وبسایتها، گیتهاب و منابع آموزشی معتبر میتوانند منابع خوبی برای جستجو و مطالعه باشند.
4- آزمایش و ارزیابی: قبل از استفاده نهایی، توصیه میشود کتابخانه را در یک پروژه آزمایشی ساده تست کنید. این به شما امکان میدهد تا عملکرد و قابلیتهای کتابخانه را در عمل تجربه کنید و مطمئن شوید که به نیازهای پروژه شما پاسخ میدهد.
با توجه به این روشها و با مطالعه، آزمایش و ارزیابی کتابخانهها، شما میتوانید کتابخانهای را پیدا کنید که همه نیازهای پروژه رادیویی لورا LoRa شما پاسخ میدهد.
معرفی 15 ماژول پرکاربرد مبتنی بر مدولاسیون لورا LoRa
چندین نوع ماژول رادیویی LoRa وجود دارند که به طور گسترده در صنعت اینترنت اشیا (IoT) استفاده میشوند. در ادامه چند نمونه از ماژولهای پرکاربرد لورا را معرفی خواهیم کرد.
- ماژول HopeRF RFM95/RFM96: این ماژولها از تراشه Semtech SX1276/SX1278 برای انتقال دادهها با فرکانسهای مختلف در باندهای مختلف LoRa استفاده میکنند.
- ماژول Dorji DRF1278F: این ماژول از تراشه SX1278 استفاده میکند و برای برقراری ارتباط بیسیم در فرکانس 433 مگاهرتز استفاده میشود.
- ماژول Dragino LoRa Shield: این شیلد مخصوص بردهای آردوینو است و از تراشه SX1272/SX1276 برای ارتباطات LoRa استفاده میکند.
- ماژول Pycom LoPy: این ماژول دارای قابلیت ارسال و دریافت داده با استفاده از LoRa و تراشه SX1272 است و همچنین از Wi-Fi و بلوتوث همزمان پشتیبانی میکند.
- ماژول RAK Wireless RAK811: این ماژول از تراشه SX1276 استفاده میکند و دارای ویژگیهایی مانند کنترل قدرت ارسال و پشتیبانی از رابطهای UART و I2C است.
- ماژول Semtech SX1272/SX1276: این تراشهها از سمتک سازنده تکنولوژی LoRa را فراهم میکنند و در ماژولها و دستگاههای مختلفی استفاده میشوند.
- ماژول Microchip RN2483/RN2903: این ماژولها از تراشه RN2483 و RN2903 از شرکت Microchip استفاده میکنند و امکان ارسال و دریافت دادهها در فرکانس 868 مگاهرتز یا 915 مگاهرتز را فراهم میکنند.
- ماژول Laird RM1xx: این سری از ماژولها از تراشه Semtech SX1272/SX1276 و تراشههای دیگری که به طور معمول در تکنولوژی LoRa استفاده میشوند، استفاده میکنند. آنها از باندهای فرکانسی مختلفی پشتیبانی میکنند و امکاناتی مانند رابطهای UART و SPI را فراهم میکنند.
- ماژول Multitech mDot: این ماژولها از تراشه Semtech SX1272 استفاده میکنند و قابلیت اتصال به شبکههای LoRaWAN را دارند. آنها برای ارتباطات IoT و انتقال دادهها در فاصلههای بلند استفاده میشوند.
- ماژول IMST iM880A/iM980A: این سری از ماژولها از تراشههای SX1272 و SX1276 استفاده میکنند و برای استفاده در برنامههای صنعتی و IoT مناسب هستند. آنها از باندهای فرکانسی مختلفی پشتیبانی میکنند و دارای رابطهای SPI و UART هستند.
- ماژول Pycom LoPy4: این ماژول از تراشه Semtech SX1276 و ESP32 استفاده میکند. علاوه بر پشتیبانی از فناوری LoRa، این ماژول از Wi-Fi، بلوتوث و LoRaWAN نیز پشتیبانی میکند.
- ماژول Murata CMWX1ZZABZ: این ماژول از تراشه Semtech SX1276 و ماژول STM32L0 استفاده میکند. دارای قابلیت اتصال به شبکههای LoRaWAN است و برای انتقال دادهها در فاصلههای بلند و با مصرف انرژی پایین مناسب است.
- ماژول Adafruit Feather M0 RFM9x: این ماژول از تراشه SX1276 استفاده میکند و با بردهای Adafruit Feather M0 سازگار است. دارای رابطهای SPI و UART است و قابلیت اتصال به شبکههای LoRaWAN را دارد.
- ماژول Dragino LoRa/GPS Shield: این شیلد مخصوص بردهای آردوینو است و از تراشه SX1272 استفاده میکند. به همراه ماژول GPS جهت پشتیبانی از ردیابی مکانی نیز قابل استفاده است.
- ماژول RisingHF RHF0M301: این ماژول از تراشه SX1278 استفاده میکند و قابلیت اتصال به شبکههای LoRaWAN را دارد. دارای رابطهای SPI و UART است و برای کاربردهای صنعتی و IoT مناسب است.
این موارد تعدادی از ماژولهای رادیویی LoRa هستند که در بازار موجود هستند. همانند قبل، باید به توجه داشته باشید که با پیشرفت تکنولوژی و رشد صنعت، ماژولهای جدیدتری نیز ممکن است در آینده عرضه شوند. همچنین، شرکتهای مختلف دیگر هم ممکن است ماژولهای LoRa خاص خود را تولید کنند. بنابراین، برای یافتن ماژولی که به نیازهای خاص شما بیشتر پاسخ میدهد، بهتر است با تحقیقات و مطالعه بیشتر درباره تولیدکنندگان مختلف و ویژگیهای آنها ادامه دهید.
بررسی 15 کتابخانه LoRa در آردوینو
در ادامه، برای ماژولهای رادیویی LoRa که پیشتر معرفی کردیم. تعدادی از کتابخانههای کاربردی و مناسب در آردوینو را بررسی میکنیم.
- کتابخانه RadioHead: کتابخانه RadioHead شامل توابعی برای ارتباط با ماژولهای HopeRF RFM95/RFM96 است. این کتابخانه را میتوانید از اینجا دانلود کنید.
- کتابخانه RadioLib: کتابخانه RadioLib از Dorji DRF1278F پشتیبانی میکند و ویژگیهای مختلفی را فراهم میکند. میتوانید این کتابخانه را از اینجا دریافت کنید.
- کتابخانه Dragino: خود شرکت Dragino کتابخانههای آردوینو را برای این شیلد ارائه میدهد. شما میتوانید آنها را از سایت رسمی Dragino دانلود کنید. لینک دانلود کتابخانه
- کتابخانه Pycom LoRa: این کتابخانه توسط خود شرکت Pycom توسعه داده شده است و برای اتصال و ارتباط با ماژولهای LoPy استفاده میشود. میتوانید این کتابخانه را از اینجا دریافت کنید.
- کتابخانه RAK811: شرکت RAK Wireless کتابخانه RAK811 را برای این ماژول ارائه میدهد. شما میتوانید آن را از سایت رسمی RAK Wireless دریافت کنید. لینک دانلود کتابخانه
- کتابخانه RadioLib: این کتابخانه که قبلاً معرفی شد، از تراشههای Semtech SX1272 و SX1276 پشتیبانی میکند. میتوانید آن را از اینجا دریافت کنید.
- کتابخانه TheThingsNetwork: از کتابخانه TTNLMIC برای ارتباط با ماژولهای Microchip RN2483 و RN2903 استفاده میکند. میتوانید آن را از اینجا دریافت کنید.
- کتابخانه Laird Connectivity: خود شرکت Laird Connectivity کتابخانههای مربوط به ماژولهای Laird RM1xx را ارائه میدهد. میتوانید آنها را از سایت رسمی Laird Connectivity دریافت کنید. لینک دانلود کتابخانه
- کتابخانه mDot Library: شرکت Multitech کتابخانه mDot را برای ماژولهای mDot ارائه میدهد. میتوانید آن را از سایت رسمی Multitech دریافت کنید.
- کتابخانه LMIC-Arduino: کتابخانه LMIC-Arduino پشتیبانی از تراشههای iM880A و iM980A را فراهم میکند. میتوانید آن را از اینجا دریافت کنید.
- کتابخانه I-CUBE-LRWAN: شرکت STMicroelectronics کتابخانه I-CUBE-LRWAN را برای ماژولهای LoRaWAN ارائه میدهد. میتوانید آن را از سایت رسمی STMicroelectronics دریافت کنید. لینک دانلود کتابخانه
- کتابخانه IBM LMIC framework: کتابخانه IBM LMIC framework برای توسعه بر روی ماژولهای LoRaWAN مناسب است. میتوانید آن را از گیتهاب IBM دریافت کنید. لینک دانلود کتابخانه
- کتابخانه Adafruit RFM9x: کتابخانه Adafruit RFM9x از ماژولهای RFM9x FeatherWing پشتیبانی میکند. میتوانید آن را از سایت Adafruit Industries دریافت کنید. لینک دانلود کتابخانه
- کتابخانه Heltec ESP32 LoRa: شرکت Heltec Automation کتابخانه Heltec ESP32 LoRa را برای ماژولهای ESP32 LoRa ارائه میدهد. میتوانید آن را از گیتهاب Heltec Automation دریافت کنید.
- کتابخانه Waspmote: شرکت Libelium کتابخانه Waspmote را برای ماژولهای Waspmote ارائه میدهد. میتوانید آن را از سایت رسمی Libelium دریافت کنید.
این موارد تعدادی از کتابخانههای آردوینو برای ماژولهای رادیویی LoRa هستند که در بازار موجود هستند. لطفا توجه داشته باشید که این لیست ممکن است ناقص باشد و همچنین بهتر است همواره به منابع رسمی تولیدکننده و منابع مرجع مراجعه کنید تا کتابخانههای بهروزتر و پشتیبانی شده را بیابید. هر کدام از این کتابخانهها دستورات منحصر به فرد خودشان را دارند.
بررسی چند نمونه دستورهای مهم کتابخانه LoRa
1- کتابخانه RadioHead: یک کتابخانه قدرتمند و گسترده برای کنترل ماژولهای رادیویی LoRa و سایر ماژولهای رادیویی است. این کتابخانه قابلیت ارسال و دریافت پیامها را فراهم میکند و دستورات مهمی برای تنظیمات و ارتباط با ماژولها را در اختیار برنامهنویس قرار میدهد. دستورات مهم این کتابخانه به شرح زیر هستند.
- RH_RF95(uint8_t slaveSelectPin, uint8_t interruptPin): ساخت نمونه از کلاس RH_RF95 برای ارتباط با ماژول RF95 (ماژول LoRa)
- init(): مقداردهی اولیه ماژول
- send(uint8_t* data, uint8_t len): ارسال یک بسته داده به ماژول
- available(): بررسی وجود داده در صف دریافتی
- recv(uint8_t* data, uint8_t* len): دریافت بسته داده از ماژول
- setFrequency(float frequency): تنظیم فرکانس مورد نظر
- setTxPower(int8_t power, bool useRFO): تنظیم قدرت انتقال
2- کتابخانه RadioLib: یک کتابخانه متن باز برای برنامه نویسی دستگاههای LoRa با استفاده از پلتفرم Arduino است. این کتابخانه امکان کنترل ماژولهای LoRa را فراهم میکند و عملیات ارسال و دریافت دادهها را ساده میکند. دستورات مهم کتابخانه RadioLib به شرح زیر هستند.
- begin(uint32_t frequency, float txPower, float signalBandwidth, uint8_t spreadingFactor, uint8_t codingRate, uint8_t syncWord, uint8_t preambleLength): شروع کار با ماژول LoRa با تنظیمات فرکانس، قدرت انتقال، پهنای باند سیگنال، spreading factor، coding rate، sync word و طول preamble مورد نظر
- setFrequency(uint32_t frequency): تنظیم فرکانس ماژول LoRa
- setTxPower(float txPower): تنظیم قدرت انتقال ماژول LoRa
- setSpreadingFactor(uint8_t spreadingFactor): تنظیم spreading factor ماژول LoRa
- setCodingRate(uint8_t codingRate): تنظیم coding rate ماژول LoRa
- setSignalBandwidth(float signalBandwidth): تنظیم پهنای باند سیگنال ماژول LoRa
- setSyncWord(uint8_t syncWord): تنظیم sync word ماژول LoRa
- setPreambleLength(uint16_t preambleLength): تنظیم طول preamble ماژول LoRa
- transmit(uint8_t* data, uint8_t size): ارسال داده به شبکه LoRa
- receive(): دریافت داده از شبکه LoRa
- available(): بررسی وجود داده جدید برای دریافت
- getSNR(): دریافت Signal-to-Noise Ratio (SNR)
- getRSSI(): دریافت Received Signal Strength Indicator (RSSI)
- sleep(): وارد حالت خواب ماژول LoRa
- wakeup(): بیدار کردن ماژول LoRa از حالت خواب
3- کتابخانه Dragino: برای کنترل ماژولهای LoRa تولید شده توسط شرکت Dragino استفاده میشود. این کتابخانه قابلیت اتصال به شبکه LoRaWAN و ارسال و دریافت پیامها را فراهم میکند. دستورات مهم این کتابخانه به شرح زیر هستند.
- void setup(): مقداردهی اولیه کتابخانه و تنظیمات مورد نیاز
- void sendPacket(uint8_t* data, uint8_t len): ارسال یک بسته داده به شبکه LoRaWAN
- void onReceive(int packetSize): فراخوانی وقتی یک بسته داده دریافت میشود.
- void sleep(): وارد حالت خواب ماژول میشود.
- void wakeup(): بیدار کردن ماژول از حالت خواب
4- کتابخانه Pycom LoRa: برای کنترل ماژولهای LoRa تولید شده توسط Pycom استفاده میشود. این کتابخانه قابلیت اتصال به شبکه LoRaWAN و ارسال و دریافت پیامها را فراهم میکند. دستورات مهم این کتابخانه به شرح زیر هستند.
- LoRa(mode=LoRa.LORA, region=LoRa.EU868): ساخت نمونه از کلاس LoRa برای ارتباط با ماژول LoRa
- join(activation=LoRa.ABP, auth=(dev_addr, nwk_swkey, app_swkey)): عضویت در شبکه LoRaWAN
- tx_unconfirmed(port, data, len): ارسال پیام به سرور LoRaWAN
- rx(timeout): دریافت پیام از شبکه LoRaWAN
5- کتابخانه RAK811: برای کنترل ماژولهای LoRa تولید شده توسط RAK Wireless استفاده میشود. این کتابخانه قابلیت اتصال به شبکه LoRaWAN و ارسال و دریافت پیامها را فراهم میکند. دستورات مهم این کتابخانه به شرح زیر هستند.
- RAK811_init(): مقداردهی اولیه کتابخانه و تنظیمات مورد نیاز
- RAK811_joinOTAA(app_eui, app_key): عضویت در شبکه LoRaWAN با استفاده از OTAA
- RAK811_joinABP(dev_addr, nwks_key, apps_key): عضویت در شبکه LoRaWAN با استفاده از ABP
- RAK811_send(str): ارسال پیام به سرور LoRaWAN
- RAK811_recv(timeout): دریافت پیام از شبکه LoRaWAN
6- کتابخانه TheThingsNetwork: کتابخانه TheThingsNetwork (TTN) برای ارتباط با شبکه LoRaWAN از طریق تراکنشهای بستهبندی (packet-based transactions) استفاده میشود. این کتابخانه امکان ارسال و دریافت پیامها از طریق سرورهای TTN را فراهم میکند. دستورات مهم این کتابخانه به شرح زیر هستند.
- ttn_provision(dev_eui, app_eui, app_key): پیکربندی کتابخانه برای ارتباط با شبکه LoRaWAN
- ttn_sendBytes(port, payload, length, confirm=False): ارسال بایتها به سرور TTN
- ttn_receiveBytes(port): دریافت بایتها از سرور TTN
7- کتابخانه Laird Connectivity: برای کنترل ماژولهای LoRa تولید شده توسط Laird Connectivity استفاده میشود. این کتابخانه قابلیت ارسال و دریافت پیامها را فراهم میکند و دستورات مهمی برای تنظیمات و ارتباط با ماژولها را در اختیار برنامهنویس قرار میدهد. دستورات مهم این کتابخانه به شرح زیر هستند.
- void setup(): مقداردهی اولیه کتابخانه و تنظیمات مورد نیاز
- void send(uint8_t* data, uint8_t len): ارسال یک بسته داده به ماژول
- void receive(): دریافت بسته داده از ماژول
- void setFrequency(float frequency): تنظیم فرکانس مورد نظر
- void setTxPower(int8_t power): تنظیم قدرت انتقال
- void sleep(): وارد حالت خواب ماژول میشود.
- void wakeup(): بیدار کردن ماژول از حالت خواب
لطفاً توجه داشته باشید که دستورات مهم و توضیحات فوق تنها یک نمونه از دستورات موجود در هر کتابخانه هستند و برای استفاده کامل و صحیح، باید مستندات رسمی هر کتابخانه را مطالعه کنید.
قابلیت شبکه مش Mesh با ماژولهای لورا LoRa
شبکهبندی مش (Mesh Networking) یک ساختار شبکه است که در آن دستگاهها به صورت مستقیم با یکدیگر ارتباط برقرار میکنند و بستهها را از طریق چندین همسایه به مقصد مورد نظر هدایت میکنند. در این ساختار، هر دستگاه میتواند به عنوان روتر (Router) عمل کند و بستهها را به سایر دستگاهها منتقل کند. معمولا، ماژولهای رادیویی LoRa به صورت پیشفرض قابلیت شبکهبندی مش را ندارند، زیرا مبتنی بر معماری ستارهای هستند. در این معماری، دستگاهها ارتباط خود را با یک ترمینال یا گیتوی (Gateway) برقرار میکنند و اطلاعات را از طریق گیتوی به شبکه اینترنت منتقل میکنند.
اما در برخی حالات، میتوان با استفاده از نرمافزارها و کتابخانههای مشابه، شبکهبندی مش را بر روی ماژولهای LoRa پیادهسازی کرد. این کتابخانهها و نرمافزارها اغلب از طریق پروتکلهای مخصوصی مانند LoRa Mesh یا LoRa Alliance عمل میکنند.
با استفاده از شبکهبندی مش در ماژولهای LoRa، دستگاهها میتوانند مستقیما با یکدیگر ارتباط برقرار کنند و بستهها را از طریق همسایههای خود به مقصد هدایت کنند. این باعث افزایش پوشش شبکه، بهبود قابلیت اطمینان و ایجاد ارتباطات مستقیم بین دستگاهها میشود. بنابراین، اگر به دنبال پیادهسازی شبکهبندی مش در ماژولهای LoRa هستید، باید از کتابخانهها و نرمافزارهایی که این قابلیت را پشتیبانی میکنند، استفاده کنید. این نرمافزارها و کتابخانهها معمولاً امکاناتی مانند مدیریت روتینگ، ایجاد توپولوژی شبکه، ارسال پیامها به صورت چندگانه و مدیریت خودکار شبکه را فراهم میکنند.
کتابخانه های مناسب ساخت شبکه مش با لورا
برخی از کتابخانههای معروف و پرکاربرد برای پیادهسازی شبکهبندی مش در ماژولهای LoRa به شرح زیر هستند.
- LoRa Mesh by Electronic Cats: یک کتابخانه منبع باز که برای پیادهسازی شبکهبندی مش در ماژولهای LoRa طراحی شده است. میتوانید آن را از سایت رسمی Electronic Cats دریافت کنید.
- LoRa Mesh by Johan Stokking: کتابخانهای که بر پایه نرمافزار The Things Network (TTN) طراحی شده است و قابلیت شبکهبندی مش را در ماژولهای LoRa فراهم میکند. میتوانید آن را از سایت رسمی Johan Stokking دریافت کنید.
- RadioHead Library: این کتابخانه از نسخه 1.62 به بعد، قابلیت ایجاد شبکهبندی مش در ماژولهای LoRa را پشتیبانی میکند. میتوانید آن را از سایت رسمی RadioHead دریافت کنید.
- LoRaNow Library: یک کتابخانه کوچک که از شبکهبندی مش در ماژولهای LoRa پشتیبانی میکند و برای ارتباط مستقیم بین دستگاهها به کار میرود. میتوانید آن را از سایت رسمی LoRaNow دریافت کنید.
لطفاً توجه داشته باشید که بررسی و انتخاب کتابخانههای مشابه به منظور پیادهسازی شبکهبندی مش در ماژولهای LoRa، نیازمند مطالعه و تحقیق بیشتر است. همچنین، همواره مراجعه به منابع رسمی هر کتابخانه و مطالعه مستندات و مثالهای آنها میتواند بهترین راهنمایی برای استفاده از آنها باشد.
جمع بندی
ماژولهای لورا LoRa به عنوان یکی از زیرساختهای مهم در ایجاد اینترنت اشیا هستند. این ماژولها انواع مختلفی دارند و رنج مسافتی متفاوتی را ارایه میکنند. در این پست سعی کردیم چند مدل از ماژول رادیویی با مدولاسیون LoRa را بررسی و توضیح دادیم. هر مورد از این ماژولها کتابخانههای کاربردی و منحصر به فردی هم دارند. سعی کردیم که این موارد را هم توضیح دهیم. برخی از دستورها و فانکشنهای مربوطه برای این کتابخانهها را هم برسی کردیم. در پایان دقت داشته باشید که این موارد ممکن است بسیار متنوع و متفاوت باشند.
همچنین بررسی دقیق و علمی مهندسی این موراد از موضوع یک بلاگ فروشگاهی خارج است. همچنین دقت داشته باشید که تراشههای LoRa نسخههای مختلفی دارند که هر کدام براساس استانداردها و قوانین خاصی طراحی و تولید میشوند. ما در تلاش هستیم که دانش کاربران فارسی زبان را در راستای سخت افزارهای IoT ارتقا دهیم. بنابراین اگر این پست برای شما مفید بود و به اطلاعاتتان اضافه کرد، حتما لینک آموزش را با دیگران به اشتراک بگذارید.