اطلاعیه

Collapse
No announcement yet.

ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

    ماژول انتقال بیسیم اطلاعات nRF24L01
    ماژول فرستنده و گیرنده رادیویی +nRF24L01 از جدیدترین فرستنده و گیرنده 2.4 گیگاهرتزی شرکت Nordic Semiconductor یعنی چیپ +nRF24L01 استفاده می کند. فرکانس این آی سی برای دریافت و ارسال رادیویی اطلاعات باند 2.4 گیگاهرتز بوده و مشخصات بسیار جدیدی دارد. این آی سی تمامی مشخصات و مزایای آی سی سری قبل خود یعنی nRF24L01A را داراست. بعلاوه pipeline و بافرهای اضافی، و همچنین ارسال مجدد اتوماتیک، از قابلیتهای اضافه شده در این سری از آی سی های RF است.

    توجه: در سری پلاس «+» از این آی سی ها یعنی +nRF24L01 شرکت Nordic مشخصاتی مانند برد، حساسیت و نرخ تبادل اطلاعات را نسبت به محصول سری قبل یعنی nRF24L01 ارتقاء داده است. با این حال دستورات کنترلی یا Command های این سری با سری قبل یکی بوده و تغییری نداشته است.

    مشخصات:
    • آنتن 2.4 گیگاهرتز روی بورد
    • برد 100 متر
    • نرخ تبادل اطلاعات قابل تنظیم از 250 کیلوبیت تا 2 مگابیت بر ثانیه
    • Auto Acknowledge
    • Re-Transmit Auto
    • Multiceiver با 6 دیتاپایپ
    • دارای 32 بایت FIFO بصورت مجزا برای TX و RX
    • پایه های ورودی با تحمل ولتاژ 5 ولت
    • قابلیت تنظیم کانال ارتباطی از 2400 مگاهرتز تا 2525 مگاهرتز (125کانال قابل انتخاب)
    • حداقل نیاز به قطعات جانبی جهت راه اندازی
    • ترتیب پایه ها :VCC ، CE ، CSN ، SCK ، MOSI ، MISO ، IRQ

    شماتیک مدار:

    مثال آردوینو:

    کد HTML:
    /*
     # Be name Khoda!
     # A Mirf example to test the latency between two Ardunio.
    
     # Company    : AftabRayaneh
     # Website    : http://shop.aftabrayaneh.com
     # Developers : Reza Najafi, Elham Rasekh
     # Date       : 09.09.2013
     # Version    : 3.0
     
     * Pins:
     * Hardware SPI:
     * MISO -> 12
     * MOSI -> 11
     * SCK -> 13
     *
     * Configurable:
     * CE -> 8
     * CSN -> 7
     */
    
    #include <SPI.h>
    #include <Mirf.h>
    #include <nRF24L01.h>
    #include <MirfHardwareSpiDriver.h>
    
    const int MAX_BUFFER_LEN = 16;
    String Receive_Address = "clie1"; //A name that is dedicated to this station; MAX is 5 Char.
    String Send_Address = "clie2";    //A name that is dedicated to another station; MAX is 5 Char. 
    
    String strMirfBuffer="";
    byte Transfer_Lock=0;
    
    void setup()
    {  
      Serial.begin(9600); 
      Setup_Mirf(); // initializing overall needed...  
      sendData("TALK"); 
    }
    
    void loop()
    {
      if (!Mirf.isSending())
         check_MirfBuffer();  
      read_SerialBuffer();
    } 
    
    //This function checks mirf data availability. if data is available, put it in the buffer and generates an event.
    void check_MirfBuffer()
    {
      if (Mirf.dataReady())
      { 
        while(Mirf.dataReady())
        {
          int  tmp_index=0;
          byte tmp_buffer[4]={0};
          Mirf.getData(tmp_buffer);  
          while(tmp_buffer[tmp_index] && tmp_index<4 )
          {
            strMirfBuffer = strMirfBuffer + char(tmp_buffer[tmp_index]);
            tmp_index++;
          }
          if (strMirfBuffer.length() >= MAX_BUFFER_LEN ) 
            buffer_ready();     
         
          if (!Mirf.dataReady())
            delay(2);     
        }
      }
      else if (strMirfBuffer.length()>0 )   
        buffer_ready();   
    }
    
    //This function sends a 4 byte packet
    void sendPacket(char packet[5])
    {   
      Mirf.send((byte *)packet);
      while(Mirf.isSending());
    }
    
    //This function sends data 
    void sendData(String strData)
    {
      int StrLen=0;
      String tmp_Str="";
      Serial.print("sending data: ");
      Serial.print(strData);
      Transfer_Lock=1;
      StrLen=strData.length();
      Serial.print(" : ");
      Serial.println(StrLen);
      
      //parsing the data to 4 character packets (byte *)packet
      while (StrLen>0)
      {
        char tmp_Char[5]={0};
        if(StrLen>4)
        {
          tmp_Str=strData.substring(0,4);
          strData=strData.substring(4);
        }
        else
        {
          tmp_Str=strData;
          strData="";
        }
        tmp_Str.toCharArray(tmp_Char, 5);;
        sendPacket(tmp_Char); 
        StrLen=strData.length();    
      }  
      Transfer_Lock=0;
    }
    
    //This function parses received commands from another nrfs.
    void buffer_ready()
    {  
      if (strMirfBuffer == "TALK")
      {
        sendData("HURRAY !");
        Serial.println("Talking...");  
      }   
      //and parse other commands so on ...
      else 
      {
        Serial.print("<");
        Serial.print(strMirfBuffer);
        Serial.println(">");
      }
      clear_buffer(); 
    }
    
    //This function forms a buffer of serial data and send it
    void read_SerialBuffer()
    {
      if(Serial.available())
      {
        char CharData;
        String StrSerialBuffer=""; 
        
        while (Serial.available() && StrSerialBuffer.length() < MAX_BUFFER_LEN ) 
        {      
          CharData=Serial.read();
          StrSerialBuffer=StrSerialBuffer + CharData;   
          if (!Serial.available())
             delay(1);       
        }      
         while (Transfer_Lock); //wait for transfer process     
          
         sendData(StrSerialBuffer);    
      }
    }
    
    //This function initializes overall needed for wireless communication
    void Setup_Mirf() 
    {
      char Receive_Adr_Char[6];
      char Send_Adr_Char[6];
      Receive_Address.toCharArray(Receive_Adr_Char, 6); 
      Send_Address.toCharArray(Send_Adr_Char, 6); 
    
      Mirf.spi = &MirfHardwareSpi;
      Mirf.init();
      Mirf.setRADDR((byte *)Receive_Adr_Char);
      Mirf.setTADDR((byte *)Send_Adr_Char);
      Mirf.payload = sizeof(unsigned long);
      Mirf.config();
    
      //reg - Start  
      byte rf_setup = 0;
      Mirf.readRegister( RF_SETUP, &rf_setup, sizeof(rf_setup) );
    
      if (rf_setup != 0)   
        Serial.println("Beginning ... "); 
      else
      {
        Serial.println( "Wireless did not initialize!" );
        while (rf_setup==0);       
      }
      delay(100);
    }
    
    //This function clears the buffer
    void clear_buffer ()
    {
      strMirfBuffer="";
    }
    لینک دانلود پروژه

    #2
    پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

    سلام
    استاد گرامی روز بخیر
    از اینکه این موضوع را شروع کردید بسیار خوشحال شدم.
    چند وقتیه میخوام یه مدار بسازم که اطلاعات یک سنسور رو که یک موج تقریبا سینوسی هست و الان با سیم ارسال میشه رو بصورت بیسیم ارسال و دریافت کنم
    میشه لطفا راهنمایی بفرمایید؟

    دیدگاه


      #3
      پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

      سلام
      پردازنده مورد استفاده ؟
      خصوصیات موج سینوسی اندازه گیری شده ؟ البته در صورتی که الان مشکلی باهاش ندارین اطلاعاتش مورد نیاز نیس چون هدف بی سیم کردن ارتباطه :دی
      و اینکه چه کمکی می خواین تا در حد توان راهنماییتون کنم.
      چرا ناراحتی پاتریک!
      + امروز ی بچه دیدم سرچهارراه گل میفروخت
      - از دیدنش ناراحت شدی؟
      + نه
      پس چی ناراحتت کرده
      + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
      ------------------------------------------------------------------------------------------------------
      تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
      ------------------------------------------------------------------------------------------------------
      محصولات

      دیدگاه


        #4
        پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

        ضمن تشکر
        من کار با آردوینو رو تازه شروع کردم و نیاز به راهنمایی کلی دارم
        البته اولین مشکل تبدیل A to D هست که آیا اصلا لازمه یا نه ؟و اگر لازمه چطور؟
        آیا ماژولی هست که به تبدیل نیاز نباشه؟

        دیدگاه


          #5
          پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

          سلام
          شما باید اول بدونید A2D یعنی چی و چه کاری انجام میده. بعد از این می تونید تشخیص بدین که ایا در پروژه نیازه استفاده بشه یا نه.
          توصیه می کنم قبل از شروع کار با هر میکروکنترلری یا بردهای بر مبنای پردازنده ابتدا در مورد امکانات و نحوه عملکرد بخش ها اطلاعاتی رو داشته باشید.
          چرا ناراحتی پاتریک!
          + امروز ی بچه دیدم سرچهارراه گل میفروخت
          - از دیدنش ناراحت شدی؟
          + نه
          پس چی ناراحتت کرده
          + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
          ------------------------------------------------------------------------------------------------------
          تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
          ------------------------------------------------------------------------------------------------------
          محصولات

          دیدگاه


            #6
            پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

            سلام مجدد،
            با عرض پوزش از وقفه حاصله
            تا اونجایی که یادمه A2D تبدیل سیگنال یا داده آنالوگ به داده دیجیتاله که طبعا آنالوگ تغییرات پیوسته دامنه ولتاژیک نقطه از مدار به نقطه دیگر که معمولا GND است اما داده دیجیتال ماکزیمم ،مینیمم مقدار ولتاژ یک یا چند نقطه از مدار نسبت به GND است.
            اما سوال من این است که آیا اصلا تفکر اولیه این طرح درسته یا نه یعنی اصلا روشی که پیش گرفته ایم درس است یا نه؟که از تبدیل A به D و سپس ارسال مثلا توسط nrf یا فرستنده دیگری مثل بلوتوث انجام بشه؟
            آیا میشه ارسال دیتا A رو ساده تر و با ثبات و... به روش دیگری با استفاده از مثلا ماژول فرستده و گیرنده FM یا ... انجام داد؟ یا نه و فقط راهش تبدیل هست؟

            دیدگاه


              #7
              پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

              سلام استاد آراسته،
              خبری نشد؟
              من همچنان منتظر توضیحات شما هستم.

              دیدگاه


                #8
                پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

                ببینید دوست عزیز هنوز توضیحات شما گنگه. من می خوام بدونم کلیت پروژه چیه ؟ چیا رو استفاده می کنید در پروژه و چه هدفی رو پیش گرفتین؟
                شما به اینا جواب بدین تا من بدونم چطور راهنمااییتون کنم.
                چرا ناراحتی پاتریک!
                + امروز ی بچه دیدم سرچهارراه گل میفروخت
                - از دیدنش ناراحت شدی؟
                + نه
                پس چی ناراحتت کرده
                + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                ------------------------------------------------------------------------------------------------------
                تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                ------------------------------------------------------------------------------------------------------
                محصولات

                دیدگاه


                  #9
                  پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

                  چشم استاد گرامی،
                  همون اول که سوالم رو مطرح کردم توضیحات زیر رو نوشته بودم ولی الان که گشتم متاسفانه چیزی پیدا نکردم!حق با شماست و اینهم توضیحات:
                  -ارتباط یکطرفه و بدون نیاز به تایید دریافت میباشد
                  -ارسال موج شبه سینوسی که از یک سنسور پیزو تحت فشار متغیر خارج میشه
                  -این ارتباط الان توسط دو رشته سیم با جریان بسیار کم انجام میشه
                  -محدوده فرکانسی موج بین 10hz تا 1khz
                  -دامنه موج حداکثر 1Vpp
                  -فاصله فرستنده با گیرنده بین 3متر الی 10 متر
                  -شکل موج دارای انحنا هایی است که دریافت آنها برای گیرنده مهم است
                  - شکل موج پیوسته تکرار و ارسال میشود
                  -دریافت نمونه هایی از موج در 1 الی چند ثانیه (مثلا 10 ثانیه) نیز مشکل گشاست و نیازی به دریافت تمامی امواج بصورت پیوسته و دایم نمیباشد
                  -محدودیت مکان وتغذیه در فرستنده داریم (در حد امکان مدار ریز و مصرف باطری کم باشد
                  -در گیرنده وسعت عمل بیشتر و تغذیه مناسب موجود است
                  -دید مستقیم بین فرستنده و گیرنده وجود ندارد
                  -محیط کاری دستگاه فضای تعمیرگاهی و نیز محوطه عمومی و کنار خیابان است
                  امیدوارم توضیحات کافی باشد

                  دیدگاه


                    #10
                    پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

                    سلام استادسوران آراسته
                    خبری نشد استاد ؟
                    نکنه توضیحاتی که دادم گنگ یا ناقص بوده؟

                    دیدگاه


                      #11
                      پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

                      به گفته بعضی از کاربران برد این ماژول ها بیش از 5 متر نیست
                      من چند تا از همین ماژول ها رو دارم و با بسکام نتونستم راه اندازیش کنم و بیخیال شدم چون برد 5 متر بدردم نمیخوره
                      آیا چنین است؟؟؟

                      دیدگاه


                        #12
                        پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

                        سلام آقای RahimEdison برد 5 متر هم کار ما رو راه میندازه لطفا اگه میشه ادامه بدید و بیشتر توضیح بدید.

                        دیدگاه


                          #13
                          پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

                          سلام وقت بخیر از این ماژول میشه برای مسافت های طولانی چندین کیلومتری استفاده کرد
                          و اگر نه لطفا بفرمایید برای ارتباطات کیلومتری چه راهکاری هست

                          دیدگاه


                            #14
                            پاسخ : ماژول انتقال بیسیم اطلاعات +nrf24l01 ( فرکانس 2.4g )

                            نوشته اصلی توسط leylijoon نمایش پست ها
                            سلام وقت بخیر از این ماژول میشه برای مسافت های طولانی چندین کیلومتری استفاده کرد
                            و اگر نه لطفا بفرمایید برای ارتباطات کیلومتری چه راهکاری هست
                            نه نمیشه بین 20 تا 200 بسته به ماژول و تقویت کننده و تنظیمات.

                            LORA رو بررسی کنید. لورا (اسم یه روش مدولیشنه) برای همین کاربردها ساخته شده. تئوریک تا بیش از 20 کیلومتر رنج داره و شبکه های لوراون، با چند تا نود میتونن یه شهر بزرگ رو پوشش بدن. در عوض نرخ انتقال داده شون کمه.
                            چیپ هایی که تو بازار هست فک کنم SX1278 هستن. این آموزش + راهنمایی رو هم ببینید :

                            https://www.deviceplus.com/how-tos/arduino-guide/arduino-long-range-communication-tutorial-loralib-library/
                            Si vis pacem, para bellum

                            دیدگاه

                            لطفا صبر کنید...
                            X