اطلاعیه

Collapse
No announcement yet.

ارسال بیسیم دیتا

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

    ارسال بیسیم دیتا

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

    #2
    پاسخ : ارسال بیسیم دیتا

    ببخشید اومدم جواب بدم اشتباهی تشکر رو زدم . :redface: :icon_razz:
    بهتره از ماژول های RFM استفاده کنی . Half- Duplex هستش .
    فرق ما با جهان غرب در اینه که اونا هیچی نمیدونن! و تحقیق میکنند ولی ما همه چیزو می دونیم! و تحقیق برای ما معنی نداره!!!!!!!!!!!! .(از یه آدم اینکاره)

    دیدگاه


      #3
      پاسخ : ارسال بیسیم دیتا

      با تشکر فراوان
      یک کم در مورد این ماژولها و قیمتشون میشه توضیح بدین ؟

      دیدگاه


        #4
        پاسخ : ارسال بیسیم دیتا

        http://www.jk-sensor.com/default.asp...D-4543E4A4C86D
        در روزگاري كه لبخند آدم ها بخاطر شكست توست برخيز تا بگريزند. كورش كبير
        شاد بودن، تنها انتقامي است که ميتوان از زندگي گرفت. ارنستو چه گوارا

        دیدگاه


          #5
          پاسخ : ارسال بیسیم دیتا

          با تشکر
          اگر عملا با اینها کار کردین یه کم بیشتر در موردشون توضیح بدین چیزی که مشخصه spi کار می کنند ( البته در مورد rfm01 ) و البته تنها گیرنده است .
          میشه یک کم توضیحات بدین

          دیدگاه


            #6
            پاسخ : ارسال بیسیم دیتا

            سلام شاید یه کم استفاده از این rfm ها سخت باشه ؟؟ چرا از fm استفاده نمیکنید؟؟
            گر بر سر نفس خود امیری مردی
            گر بر دگران خورده نگیری مردی
            مردی نبود فتاده را پای زدن
            گر دست فتاده ای بگیری مردی

            دیدگاه


              #7
              پاسخ : ارسال بیسیم دیتا

              در مورد fm پیشنهادتون چه ماژولهایی هست .
              نمی خوام فرستنده های رایدیویی روش نویز بندازن

              دیدگاه


                #8
                پاسخ : ارسال بیسیم دیتا

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

                دیدگاه


                  #9
                  پاسخ : ارسال بیسیم دیتا

                  و البته در مورد fm ممکنه هر فرستنده رادیویی باعث بشه که من یکسری پارزیت دریافت کنم
                  من دنبال یک روش بهتر هستم
                  لطفا کمکم کنید

                  دیدگاه


                    #10
                    پاسخ : ارسال بیسیم دیتا

                    باید ببینی چی میخوای . مثلا

                    اگه کارت صنعتی نیست ( مثلادمای کاریت از 50 درجه بیشتر و از 10 درجه کمتر نمیشه ) همین RFMXX ها خوبن ولی اگه تلورانس دماییت بالاست دیگه باید دست تو جیبت کنی و ... .مثلا SIM20 بخری 20000 تومن .

                    اگه فاصله کم میخوای مثلا RFM12 جواب میده یا یهکم بیشتر RFM12BP و یا SIM20 .

                    اگه ارتباطت یه طرفست یه سری ماژول به دردت میخوره و اگه دوطرفه غیر همزمان یکی از ماژولای بالا .

                    RFM12 هیچ مشکلی نداره . من هم با CodeVision و هم با Bascom برنامشو نوشتم .
                    فرق ما با جهان غرب در اینه که اونا هیچی نمیدونن! و تحقیق میکنند ولی ما همه چیزو می دونیم! و تحقیق برای ما معنی نداره!!!!!!!!!!!! .(از یه آدم اینکاره)

                    دیدگاه


                      #11
                      پاسخ : ارسال بیسیم دیتا

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

                      دیدگاه


                        #12
                        پاسخ : ارسال بیسیم دیتا

                        ماژول RFM12 به این صورته که در هر لحظه یا فرستندس یا گیرنده . پس در طرف دیگه ماژول باید درحالت عکس قرار داده بشه تا ارتباط برقرار بشه .مثلا میتونی یکی رو به عنوان Master برنامه ریزی کنی : به این صورت که همواره در مد فرستنده باشه و دیتا رو به Slave (ها) بفرسته و زمانی که میخواد دیتایی از Slave (ها) دریافت کنه یه کد مشخص به اون بفرسته مبنی بر درخواست دیتا که با این دستور Slave به مد فرستنده رفته و Master هم آماده دریافت دیتا میشه . وبعد از پایان ، دوباره Master و Slave به حالت عادی خودشون بر میگردن .
                        فرق ما با جهان غرب در اینه که اونا هیچی نمیدونن! و تحقیق میکنند ولی ما همه چیزو می دونیم! و تحقیق برای ما معنی نداره!!!!!!!!!!!! .(از یه آدم اینکاره)

                        دیدگاه


                          #13
                          پاسخ : ارسال بیسیم دیتا

                          کارکرد با سیم مدار هم بصورت master و slave هستش و مشکلی از این بابت ندارم لطفا اگر شماتیکی یا نمونه برنامه ای برای کار کردن با اون دارین برام بفرستین .
                          راستی بردش چند متره ؟و قیمتش؟

                          دیدگاه


                            #14
                            پاسخ : ارسال بیسیم دیتا

                            توی اینجا http://www.hoperf.com/rf_fsk/rfm12.htm همه چیز رو گذاشته . کد نمونه هم گذاشته . البته دو-سه سال پیش که من بااین ماژول کار میکردم , توی همین سایت (سایت خود ماژول) یه سری PDF گذاشته بود که یه نمونه برنامه برای AVR هم توش بود . نامردا فایل PDF اش رو Lock کرده بودن ، یادمه نشستم همشو دوباره تایپ کردم . برنامه فرستندش رو هم به Bascom تبدیل کردم .این برنامه RX برای CodeVision هستش :
                            /*
                            ; copyright (c) 2006
                            ;Title RF12 RX simple example based on AVR C
                            ;Company: Hope microelectronic Co.,Ltd.
                            ;Author: Tank
                            ;Current version: v1.0
                            ;Date: 2006-11-17
                            ;processor ATMEGA48
                            ;Clock: 10MHz Crystal
                            ;Contact: +86-0755-86106557
                            ;E-MAIL: hopefsk@hoperf.com
                            Connections
                            ATMEGA48 SIDE RF12 SIDE
                            SCK--------------->SCK
                            MISO<---------------SDO
                            MOSI--------------->SDI
                            SS--------------->nSEL
                            PD4--------------->FSK/DATA
                            INT0<---------------nIRQ
                            PD6: LED GREEN
                            PD7: LED RED
                            */
                            #include <mega16.h>
                            #define DDR_IN 0
                            #define DDR_OUT 1
                            #define PORT_SEL PORTA
                            #define PIN_SEL PINA
                            #define DDR_SEL DDRA
                            #define PORT_SDI PORTA
                            #define PIN_SDI PINA
                            #define DDR_SDI DDRA
                            #define PORT_SCK PORTB
                            #define PIN_SCK PINB
                            #define DDR_SCK DDRB
                            #define PORT_SDO PORTB
                            #define PIN_SDO PINB
                            #define DDR_SDO DDRB
                            #define PORT_IRQ PORTD
                            #define PIN_IRQ PIND
                            #define DDR_IRQ DDRD
                            #define PORT_DATA PORTB
                            #define PIN_DATA PINB
                            #define DDR_DATA DDRB
                            #define PB7 7 //--\
                            #define PB6 6 // |
                            #define RFXX_SCK 1 // |
                            #define RFXX_SDO 0 // |RF_PORT
                            #define RFXX_SDI 0 // |
                            #define RFXX_SEL 1 // |
                            #define NC 1 // |
                            #define PB0 0 //--/
                            #define SEL_OUTPUT() DDR_SEL|= (1<<RFXX_SEL)
                            #define HI_SEL() PORT_SEL|= (1<<RFXX_SEL)
                            #define LOW_SEL() PORT_SEL&=~(1<<RFXX_SEL)
                            #define SDI_OUTPUT() DDR_SDI|= (1<<RFXX_SDI)
                            #define HI_SDI() PORT_SDI|= (1<<RFXX_SDI)
                            #define LOW_SDI() PORT_SDI&=~(1<<RFXX_SDI)
                            #define SDO_INPUT() DDR_SDO&= ~(1<<RFXX_SDO)
                            #define LOW_SDO() PORT_SDO&= (1<<RFXX_SDO)
                            #define SDO_HI() PIN_SDO&(1<<RFXX_SDO)
                            #define SCK_OUTPUT() DDR_SCK |= (1<<RFXX_SCK)
                            #define HI_SCK() PORT_SCK|= (1<<RFXX_SCK)
                            #define LOW_SCK() PORT_SCK&=~(1<<RFXX_SCK)
                            #define RF12_IRQ 2
                            #define IRQ_IN() DDR_IRQ &=~(1<<RF12_IRQ)
                            #define WAIT_IRQ_LOW() while(PIND&(1<<RF12_IRQ))
                            #define RF12_DATA 2 //PB2
                            #define DATA_OUT() DDR_DATA|=1<<RF12_DATA
                            #define HI_DATA() PORT_DATA|=1<<RF12_DATA
                            #define LEDG_OUTPUT() DDRD|=~(1<<6)
                            #define LEDR_OUTPUT() DDRD|=~(1<<7)
                            #define LEDG_ON() PORTD&=~(1<<6)
                            #define LEDG_OFF() PORTD|= (1<<6)
                            #define LEDR_ON() PORTD&=~(1<<7)
                            #define LEDR_OFF() PORTD|= (1<<7)
                            void RFXX_PORT_INIT(void){
                            HI_SEL();
                            HI_SDI();
                            LOW_SCK();
                            //SET nFFS pin HI when using FIFO
                            HI_DATA();
                            SEL_OUTPUT();
                            SDI_OUTPUT();
                            SDO_INPUT();
                            SCK_OUTPUT();
                            IRQ_IN();
                            DATA_OUT();
                            }
                            unsigned int RFXX_WRT_CMD(unsigned int aCmd){
                            unsigned char i;
                            unsigned int temp;
                            temp=0;
                            LOW_SCK();
                            LOW_SEL();
                            for(i=0;i<16;i++){
                            if(aCmd&0x8000){
                            HI_SDI();
                            }else{
                            LOW_SDI();
                            }
                            HI_SCK();
                            temp<<=1;
                            if(SDO_HI()){
                            temp|=0x0001;
                            }
                            LOW_SCK();
                            aCmd<<=1;
                            };
                            HI_SEL();
                            return(temp);
                            }
                            void RF12_INIT(void){
                            RFXX_WRT_CMD(0x80D7);//EL,EF,433band,11.5pF
                            RFXX_WRT_CMD(0x82D9);//!er,!ebb,ET,ES,EX,!eb,!ew,DC
                            RFXX_WRT_CMD(0xA640);//434MHz
                            RFXX_WRT_CMD(0xC647);//4.8kbps
                            RFXX_WRT_CMD(0x94A0);//VDI,FAST,134kHz,0dBm,-103dBm
                            RFXX_WRT_CMD(0xC2AC);//AL,!ml,DIG,DQD4
                            RFXX_WRT_CMD(0xCA81);//FIFO8,SYNC,!ff,DR
                            RFXX_WRT_CMD(0xC483);//@PWR,NO RSTRIC,!st,!fi,OE,EN
                            RFXX_WRT_CMD(0x9850);//!mp,90kHz,MAX OUT
                            RFXX_WRT_CMD(0xE000);//NOT USE
                            RFXX_WRT_CMD(0xC800);//NOT USE
                            RFXX_WRT_CMD(0xC040);//1.66MHz,2.2V
                            }
                            unsigned char RF12_RECV(void){
                            unsigned int FIFO_data;
                            WAIT_IRQ_LOW();
                            RFXX_WRT_CMD(0x0000);
                            FIFO_data=RFXX_WRT_CMD(0xB000);
                            return(FIFO_data&0x00FF);
                            }
                            void Delay_ms(unsigned char amS){
                            unsigned char i;
                            unsigned int j;
                            for(i=0;i<amS;i++)for(j=0;j<914;j++);
                            }
                            void main(void)
                            {
                            unsigned char i=0;
                            unsigned char ChkSum;
                            //POWER ON indication: both LEDR and LEDG blink 3 times
                            LEDG_OFF();
                            LEDR_OFF();
                            LEDG_OUTPUT();
                            LEDR_OUTPUT();
                            for(i=0;i<3;i++){
                            Delay_ms(200);
                            LEDG_ON();
                            LEDR_ON();
                            Delay_ms(200);
                            LEDG_OFF();
                            LEDR_OFF();
                            }
                            LEDG_OFF();
                            LEDR_OFF();
                            //Initialize command port
                            RFXX_PORT_INIT();
                            //Initialize RF12 chip
                            RF12_INIT();
                            //Init FIFO
                            RFXX_WRT_CMD(0xCA81);
                            while(1)
                            {
                            //Enable FIFO
                            RFXX_WRT_CMD(0xCA83);
                            ChkSum=0;
                            //Receive payload data
                            for(i=0;i<16;i++)
                            {
                            ChkSum+=RF12_RECV();
                            }
                            //Receive Check sum
                            i=RF12_RECV();
                            //Disable FIFO
                            RFXX_WRT_CMD(0xCA81);
                            //Package chkeck
                            if(ChkSum==i){
                            LEDG_ON();
                            Delay_ms(200);
                            LEDG_OFF();
                            }
                            }
                            }
                            فرق ما با جهان غرب در اینه که اونا هیچی نمیدونن! و تحقیق میکنند ولی ما همه چیزو می دونیم! و تحقیق برای ما معنی نداره!!!!!!!!!!!! .(از یه آدم اینکاره)

                            دیدگاه


                              #15
                              پاسخ : ارسال بیسیم دیتا

                              قیمتش رو هم میشه بفرمایید تا من یک زوجش رو بگیرم و امتحان کنم.

                              دیدگاه

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