ویژگی های ماژول فرستنده گیرنده LORA RA-02
در بسیاری از مواقع نیاز است که تجهیزات الکترونیکی به صورت بی سیم به یکدیگر متصل شوند. در این مواقع از تجهیزات Radio Frequency یا به اختصار RF استفاده میشود. RF ها شامل تمامی امواج رادیویی هستند که با توجه به فرکانس و دامنه میتوانند فاصلههای مختلفی را طی کنند و به گیرنده برسند.
LoRa، یک فناوری محبوب است که هم برای پروژههای IOT که دارای ارتباطات برد بلند و گسترده هستند، مناسب است و هم یک ماژول توسعه یافته تکنولوژی Ai-Thinker است که تولیدکننده سریهای محبوب ESP32 میباشد. این ماژول کاربردی بر پایه تراشه SX1278 است و دارای فرکانس کاری 433 مگاهرتز میباشد.
این ماژول شامل UART ،GPIO ،LoRA Radio layer، رابطهای SPI و I2C و … است. میکروکنترلر با استفاده از UART با فرستنده LoRa برای کنترل و مانیتور کردن برنامهها با هم در ارتباط هستند. ماژول لورا از طریق پروتکل SPI قابل اتصال به بردهایی نظیر ESP32 و رزبری پای میباشد.
جهت دریافت دیتاشیت LORA اینجا کلیک کنید.
RA-02 Module Datasheet
معرفی پایه ها (Pinout) ماژول LORA
ماژول LORA دارای 16 پایه به شرح زیر است:
- 3V: تغذیه ماژول
- GND: زمین
- MOSI: خط دریافتی اطلاعات برای پروتکل SPI
- MISO: خط ارسالی اطلاعات برای پروتکل SPI
- SCK: همزمان سازی برای پروتکل SPI
- NSS: انتخاب ماژول برای پروتکل SPI
- RESET: ریست ماژول
- DIO0: خط دیتا 0 ماژول
- DIO1: خط دیتا 1 ماژول
- DIO2: خط دیتا 2 ماژول
- DIO3: خط دیتا 3 ماژول
- DIO4: خط دیتا 4 ماژول
- DIO5: خط دیتا 5 ماژول
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی ماژول LORA با ESP32
گام اول: سیم بندی
هر یک از دو ماژول LORA را مطابق مدار زیر، به یک ESP32 وصل کنید.
گام دوم: نصب کتابخانه
کتابخانه زیر را بر روی آردوینوی خود نصب کنید.
توجه
اگر نیاز به راهنمایی بیشتر برای نصب کتابخانه بر روی آردوینو دارید، می توانید به آموزش نصب کتابخانه بر آردوینو مراجعه کنید.
گام سوم: کد
کد زیر را بر روی ESP32 خود در سمت گیرنده آپلود کنید.
/*
Create on March 17, 2021
Create by MohammedDamirchi base of https://github.com/sandeepmistry/arduino-LoRa
Home
*/
#include <SPI.h>
#include <LoRa.h>
#define ss 15
#define rst 4
#define dio0 2
void setup() {
Serial.begin(9600);
while (!Serial);
delay(500);
Serial.println("LoRa Receiver");
LoRa.setPins(ss, rst, dio0);
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
Serial.println("Starting LoRa failed!");
}
void loop() {
// try to parse packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// received a packet
Serial.print("Received packet '");
// read packet
while (LoRa.available()) {
Serial.print((char)LoRa.read());
}
// print RSSI of packet
Serial.print("' with RSSI ");
Serial.println(LoRa.packetRssi());
}
}
کد زیر را بر روی ESP32 خود در سمت فرستنده آپلود کنید.
#include <SPI.h>
#include <LoRa.h>
int counter = 0;
#define ss 15
#define rst 4
#define dio0 2
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Sender");
LoRa.setPins(ss, rst, dio0);
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop() {
Serial.print("Sending packet: ");
Serial.println(counter);
// send packet
LoRa.beginPacket();
LoRa.print("hello ");
LoRa.print(counter);
LoRa.endPacket();
counter++;
delay(1000);
}
این کد جهت تست ارتباط مابین لورا ها میباشد.
سریال مانیتور ESP32 سمت گیرنده را باز کنید. اطلاعات زیر را مشاهده میکنید.
Comments (14)
سلام. لطفا یک پروژه برای کنترل پایه های esp32 درست کنید!
سلام.
برد ESP32 انواع پایههای مختلف برای کاربردهای مختلف داره. برای انواع کاربردهای برد ESP32 هم آموزشهای مختلفی تو سایت وجود داره. برای نمونه میتونید از آموزشهای زیر کمک بگیرید.
https://thecaferobot.com/learn/full-guide-to-esp32-pinout-reference-what-gpio-pins-should-we-use/
https://thecaferobot.com/learn/getting-started-with-the-esp32-development-board/
البته منظورم این بود که چطور میشه با Lora پایه های ماژول ESP رو از راه دور کنترل کرد؟ مثلا یه لامپی رو روشن و خاموش کرد!
سلام
میتونید توسط این آموزش ارتباط بین دو ماژول ESP32 رو برقرار کنید. در ادامه هم یک مقدار خاص رو در کد گیرنده تعیین کنید که در صورتی که اون مقدار دریافت شد، پایهای HIGH و یا LOW بشه. این کار رو میتونید به کمک یک if statement انجام بدید. در این صورت با ارسال اون مقدار خاص توسط ESP فرستنده میتونید پایه مورد نظر در ESP گیرنده رو کنترل کنید.
خیلی ممنون.
با سلام چگونه پس از نصب لورا رویی ESP32اردینو به ان متصل کنم و متور هارو کنترل کنم و بتونم سنسور هایی مختلف عدهاشو بخونم به گوشی متصلش کنم لطفا کمک کنید
سلام
شما از طریق بلوتوث یا wifi خود esp32 دیتا رو از گوشی به برد میفرستید و سپس از برد فرستند لورا با تابع Lora.printمیتونید مقادیر مورد نظرتون رو ارسال کنید
و در کد گیرنده هم از تابع LoRa.read() برای دریافت دیتا استفاده کنید
حالا دیگه با دیتای مورد نظر هر کاری میتونید انجام بدید و مثلا همون موتور ها رو دورش رو کنترل کنید.
سلام
میشه برای کنترل پهپاد از این ماژول استفاده کرد؟؟
سلام
مهندس جان این ماژول بی سیم با فرکانس 433 مگاهرتزه برای کنترل از دور همه چی میشه استفاده کرد
حالا فرق نمیکنه میخواد روشن و خاموش کردن یه لامپ باشه یا پرواز دادن یه ربات
سلام
چرا مهندس ! فرق بین روشن خاموش کردن چراغ و کنترل یه ربات پرنده!! احتمالا نتونید برای کنترل پهباد از این ماژول استفاده کنید بیت ریت پاینی داره
سلام
آیا امکان تغییر فرکانس هم وجود دارد؟
مثلا اگر من فرکانس 150 مگا هرتز رو بخوام تنظیم کم علاوه بر نرم افزار نیاز هست سخت افزار هم تغییر کند؟
با سلام
در وحله اول بر روی ماژول نوشته شده است که چه بازه فرکانسی رو ساپورت میکند. هماهن طور که بر روی ماژول مشاهده میکنید نوشته شده است410-525 که نشانه این فرکانس می باشد.
از سوی دیگر دستور فرکانس فقط این بازه را پشتیبانی میکند. frequency in Hz (433E6, 868E6, 915E6) که می توانید از کتابخانه مربوطه مشاهده کنید.
برای اینکه فرکانس های غیر عرف رو داشته باشید باید دستگاه گیرنده خاط اون مورد را طراحی کنید مانند گیرنده/فرستنده های RF 433 و 315 که ساده ترین نوع گیرنده و فرستنده هستند.
به این موضوع نیز باید توجه داشته باشید که بعضی از فرکانس ها مجاز هستند و بعضی غیر مجاز و درصورتی که بر روی آن ها قرار بگیرید پیگرد قانونی دارند. و این مورد برای هر کشور متفاوت می باشد.
سلام مهندس
فرمایش شما کاملا درسته…
فرکانسی که میخوام استفاده کنم مجاز هست.
چون هسته خود ماژول فرکانس 137 تا 1020 مگا هرتز پشتیانی میکنه پس سخت افزار هست که باید تغییر بدم. و یه تغییرات جزیی در نرم افزار…
شما اطلاعاتی دارید که چطوری باید سلف و خازنهای بین ماژول تا آنتن رو طراحی کنم که مثلا فرکانس 150 مگا هرتز رو داشته باشم.
ممنون
سلام
آیا میشه ماژول رو در مد مدولاسیون GFSK استفاده کرد؟
داخل دیتاشیت چیزی ننوشته فقط در مورد دو مدولاسیون FSK و OOK صحبت شده؟؟ در صورتی که این GMSK هم پشتیبانی میکنه!!!!!