آردوینو Arduino Uno آموزش آردوینو آموزش رزبری پای پروژه رزبری پای

ارتباط رزبری پای با آردوینو از طریق شبکه بیسیم لورا Lora

lora-ra02-raspberry-pi-and-arduino-wireless-connection-digispark
نوشته شده توسط راضیه دست غیب

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

 


ماژول لورا Ra02


 Ra02 یا همان SX1278 یک ماژول ترنسیور وایرلس ۱۶ پایه ای لورا است. از طریق پروتکل SPI به سایر سخت افزارها از جمله آردوینو و رزبری پای متصل می‌شود. امکان انتقال دیتا به صورت wireless را برا ی آن‌ها فراهم می‌کند. از آنجا که تغذیه این ماژول ۳٫۳ ولت است و رزبری پای هم خروجی ۳٫۳ ولت دارد. امکان ارتباط فراهم است. بنابراین می توانیم بدون هیچ مشکلی این دو را ازطریق پروتکل SPI به یکدیگر متصل کنیم. قابلیت ارسال اطلاعات در باند رادیویی با مصرف انرزی کم و برد مسافتی زیادی را دارا میباشد.

 


اتصالات ماژول لورا LoRa


 اتصال ماژول لورا ra02 به رزبری پای Raspberry pi

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

اتصالات ماژول لورا به رزبری پای - Digispark

 

 

اتصالات پایه‌های ماژول لورا به رزبری پای Raspberry pi - دیجی اسپارک

 

اتصال ماژول لورا به برد آردوینو Arduino

اتصالات ماژول لورا به آردوینو - Digispark

 

 

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

 

بعد از این مراحل آنتن ۴۳۳Mhz یا سیم مسی به طول ۱۷ سانتی متر را به محل نصب آنتن لحیم می‌کنیم. سیم مسی به طول ۱۷ سانتی متر کار آنتن ۴۳۳ مگاهرتز را می‌کند. البته به این نکته توجه داشته باشید که لاک دوسر سیم را با سمباده یا وسیله‌ای دیگر بسابید که بتوانید لحیم کاری را انجام دهید. اگر در خصوص آنتن و روش انتخاب آن سوالی دارید، از طریق بخش نظرات همین آموزش مطرح کنید.

 


پکیج pylora و رزبری پای


پکیج‌های پایتون زیادی با رزبری پای استفاده می‌شوند. به ویژه برای ایجاد (LPWAN  (low power wide area network که تعداد زیادی نود به یک گیت وی از جمله رزبری پای متصل می‌شوند. اما در این آموزش فقط ارتباط یک نود و گیت وی Gateway را توضیح می‌دهیم. در این پست تصمیم به استفاده از pylora package گرفتیم. ماژول‌های rpsreal LoRa Arduino و rpsreal LoRa Raspberry pi را دارد که در محیط‌های رزبری و آردوینو به کار می روند.

 


تنظیم محیط رزبری پای


همانطور که گفتیم ماژول لورا با پروتکل SPI به رزبری متصل می‌شود. برای همین قبل از نصب پکیج pylora package لازم است که SPI را به ترتیب زیر روی برد رزبری پای به حالت enable تبدیل کنیم. با putty به رزبری متصل می‌شویم و با دستور زیر وارد پنجره configuration می‌شویم. اگر روش برقراری این نوع ارتباط را نمیدانید، کافیست از طریق بخش نظرات همین آموزش سوالتان را مطرح بفرمایید.

Raspberry pi LoRa connection to Arduino-Digispark-3

 

تنظیمات محیط رزبری پای - Digispark

سپس گزینه Interfacing option را انتخاب کنید و SPI را فعال می‌کنیم. با این روش رابط SPi در برد رزبری پای Raspberry pi فعال می‌شود.

تنظیمات محیط رزبری پای - Digispark

 

تغییرات را ذخیره می‌کنیم  و اگر pip و python را روی رزبری نصب داشتیم؛ پکیج RPI GPIO را با دستور زیر نصب می‌کنیم.

نصب پکیج RPI GPIO برای ماژول لورا - digispark

 

همینطور پکیج SPI dev را نصب می کنیم spi dev برای راه اندازی پروتکل  spi استفاده می شود.

نصب پکیج SPI dev در رزبری پای برای ماژول لورا - Digispark

 

حالا پکیج pylora را نصب می کنیم. این پکیج ماژول‌های رادیویی مرتبط با Lora را به همراه دارد.

نصب پکیج pylora ماژول لورا در رزبری پای - دیجی اسپارک

 

با دستورات زیر پکیج‌های python rpi gpio و spidev را دانلود و نصب می‌کنیم.

ترمینال در محیط رزبری پای مانند تصویر زیر خواهد بود.

نصب پکیج python rpi gpio در رزبری پای برای لورا - دیجی اسپارک

نصب پکیج spidev در رزبری پای برای لورا - دیجی اسپارک

همچنین از ادرس git زیر کتابخانه pysx127 را clone می‌کنیم.

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

 

 


پروگرم کردن رزبری پای


برنامه پایتون ۳ را باز می‌کنیم. در IDE کدهای زیر را وارد می‌کنیم. به این نکته توجه کنید کتابخانه‌ها حتما در همان فابل کد پایتون، قرار گرفته باشند. برای سادگی کار فایل zip در کد پایتون به همراه کتابخانه‌های لازم را در پایان آموزش قرار داده‌ام. برنامه بسیار ساده است ابتدا باید ماژول لورا Lora را به نحوی تنظیم کنیم که در فرکانس ۴۳۳ مگاهرتز کار کند. سپس پکت‌های packet ارسال شده از نود را دریافت کند. طبق معمول ابتدا کتابخانه‌ها را import می‌کنیم.

کتابخانه time برای ایجاد delay به کار می‌رود. کتابخانه لورا برای ایجاد تنظیمات رادیویی و کتابخانه board.setup برای تنظیم برد است. در مرحله بعد یک کلاس پایتون به نام لورا ایجاد می‌کنیم، که دارای سه تابع init classs, start class و on_rx_done می‌باشد. حال تابع init ماژول لورا را در فرکانس ۴۳۳ مگاهرتز با پهنای باند ۱۲۵ کیلو هرتز و همچنین ماژول را در مود sleep تنظیم می‌کند. در این صورت مصرف انرژی کاهش پیدا می‌کند.

 

تابع start جایی است که ماژول را به عنوان تنظیم و RSSI و STATE و فرکانس کاری را مشخص می‌کنیم.

 

در تابع on_rx_done پکت‌هایی که دریافت کردیم را در متغیر payload ذخیره می‌کنیم. سپس از بافر rx عبور داده و flag را High می‌کنیم. سپس مقادیر دریافت شده را با utf_8 دیکد کرده تا برای کاربر قابل خواندن شوند.

 

و ادامه کدها به شرح زیر می‌باشد.

 

 


کدهای آردوینو ماژول Lora


کد کامل آردوینو برای ارتباط با رزبری پای با استفاده از ماژول لورا و کتابخانه

 

بخش کدهای آردوینو در فایل‌های zip به نام‌های radio_head_master و arduino code قرار گرفته‌اند.

 


کدهای پایتون در رزبری پای ماژول Lora


کد کامل رزبری پای برای ارتباط با آردوینو با استفاده از ماژول لورا به شرح زیر است.

 

 

بخش کدهای پایتون رزبری پای در فایل زیپ با عنوان raspberry pi lora code قرار گرفته‌اند. دانلود کدها

 

ارتباط بی سیم آردوینو با رزبری پای از طریق ماژول لورا - Digispark

 

خروجی نرم افزار پایتون پس از اجرای پروژه ارتباط لورا Lora مانند تصویر زیر خواهد بود.

ارتباط بی سیم آردوینو با رزبری پای از طریق ماژول لورا - Digispark

 

 


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


آردوینو ARDUINO UNO

برد رزبری پای Raspberry 3B+

ماژول ترنسیور وایرلس LORA-RA02 با برد کمکی

آنتن۴۳۳MHz یا سیم مسی به طول ۱۷ سانتی متر

 

 

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

 


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


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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

راضیه دست غیب

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

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

۲ دیدگاه

    • سلام وقتتون بخیر ,در کد پایتون که برای رزبری پای نوشتم یک سری توابع از کتابخونه sx127 اضافه شده اند(import شده) . کلا کتابخونه ها برای سادگی کار و کاهش حجم کد ها همه جا استفاده می شوند