<delect id="zp2xl"></delect>
  • 
    

    1. <var id="zp2xl"></var>


      上海皕科電子有限公司

      Shanghai Bitconn Electronic Co.,Ltd.

      公司介紹
      上海皕科電子有限公司是一家專業的芯片代理商和方案提供商??偛吭O在上海,是一家專業為中國電子企業提供單片機,無線RF,以太網IC及外圍器件、開發工具和相關應用解決方案的高新技術企業。公司的主要代理品牌有Digi、Wiznet、Xinnova,以及華虹MCU等。
        公司擁有優秀的銷售團隊和專業的研發部門,不但在品牌、價格、供貨、服務等方面領先業界,而且可為客戶提供及時、可行的技術支持和整體設計服務,滿足不同客戶多層次需求。

      美國DIGI公司的XBee模塊無線通訊實驗(轉載)

      發表時間:2015/03/13 00:00:00  瀏覽次數:8211  
      字體大小: 【小】 【中】 【大】

              Zigbee是一種短距離、低功耗的無線通信技術名稱。這一名稱來源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飛翔和“嗡嗡”(zig)地抖動翅膀的“舞蹈”來與同伴傳遞花粉所在方位信息,也就是說蜜蜂依靠這樣的方式構成了群體中的通信網絡。其特點是近距離、低復雜度、自組織、低功耗、低數據速率、低成本。主要適合用于自動控制和遠程控制領域,可以嵌入各種設備。簡而言 之,ZigBee就是一種便宜的,低功耗的近距離無線組網通訊技術。

          DIGI旗下的MaxStream公司是一家非常有名的無線通信元件制造商,其ZigBee產品上加了一個很貼切的名稱XBee,XBee小型但卻是一個功能完善的ZigBee收發器(即接收器/發射器),它是雙向操作,可交替地發射或接收數據(半雙工式)。

          DIGI提供有兩種版本,XBee和XBee PRO兩版本都是有相同的功能和引腳兼容,唯一的差異是發射功率,XBee為最大2mW,而XBeePRO則最大60mW。我這次實驗采用的是發射功率是1mW,傳輸距離為100米的XBee模塊,比較XBee PRO模塊肯定便宜些,也不耽誤體驗ZigBee技術??梢栽贒FRobot公司網站支付寶購買,網址:http://www.dfrobot.com.cn/。                 XBee/XBeePRO模塊是一款內置協議棧的ZigBee模塊,它通過串口使用AT命令集方式設置模塊的參數,并通過串口來實現數據的傳輸。為了縮短客戶的開發期,提供了X-CTU配置軟件,用它可以方便地配置XBee模塊的所有參數。    XBee模塊具有各個國家地區認證,在國外應用非常廣泛, 包括智能家居,遠程控制,無線抄表,傳感器,無線檢測,資產管理等,同時還有對應的iDigi平臺,提供各種常用的接入方式,更加方便遠程控制。

         XBee模塊與Arduino之間其實就是通過串行接口(即Tx和Rx引腳)進行通信。對于簡單的點對點通信來講,只需要通過串行接口向XBee模塊寫數據就可以實現數據的發送;當XBee模塊通過無線通道接收到數據時,通過讀串行接口可以很方便地獲得這些數據,使用方式和APC220以及DF-Bluetooth藍牙模塊雷同。用X-CTU軟件一次配置好參數后,兩個插上XBee模塊的Arduino控制器就可以像有線RS232串口通信一樣相互傳送數據了!那么如何配置XBee模塊參數?需要:一:安裝X-CTU軟件并更新為最新版;二、XBee適配器并安裝FIDI驅動。

           通過DIGI官方網址下載X-CTU軟件,網址:http://www.digi.com/support/productdetail?pid=3352&type=firmware。 
       
         DFRobot公司出品的XBee適配器驅動就是Arduino Duemilanove控制器的驅動,因為它們都是采用了FIDI USB驅動,如果您已經安裝了Arduino Duemilanove控制器的驅動,就不用安裝了,如果您使用的是Arduino UNO控制器,可以在Arduino官網下載一個Arduino 0018版編程軟件,它里面的drivers目錄里就可以找到這個驅動。如圖:(所有圖片雙擊,都可以放大看!
           PC機通過USB線直接與XBee適配器連接,方便對XBee模塊進行配置,把XBee模塊按照正確方向,插到XBee適配器上,然后,用USB電纜把XBee適配器與PC機連接好之后, 運行X-CTU軟件。
          首先我們在“PC Settings”中里選擇XBee適配器映射出來的串口通信端口(我實驗中映射出的串口號為COM4),并設置好波特率9600b/s等參數。XBee模塊出廠里默認的設置為9600,8N1。
       

          點擊“Test/Query”按鈕,測試XBee模塊是否能連接上。如果一切正常,我們將看到如下圖中的Com test對話框,會顯示模塊型號及版本號。

         測試通過后,轉到“Modem Configuration”選項。點擊“Download new versions...”按鈕,升級軟件(把所有殺毒軟件暫時退出)。

         先點擊“Modem Parameters and Firmware”中的“Read”按鈕讀出XBee模塊中的當前參數,接著在讀出的“Networking & Security”中將“Channel”設為“C”,將“PAN ID”設置為“1234”。

        在“Serial interfacing”的“Interface Data Rate”中,可以修改XBee的波特率,XBEE模塊默認波特率9600,可以不用修改,但我這次實驗還是把波特率從9600b/s改成了115200b/s。

        上述主要參數設置好后,點擊“Write”按鈕將參數寫到XBEE模塊中,這里只做一個最簡單的點對點網絡,所以只需利用XBee適配器,把2個XBee模塊的參數設置一致即可。

          這時如果您突然打算,把“Write”到XBee模塊中的參數再“Read”出來,會出現問題,因為您已經把XBee模塊的波特率設置為115200b/s,所以必須在X-CTU界面的“PC Settings”選項中把波特率從9600改為115200,才能“Read” 讀取XBee模塊參數。

         現在可以把兩個XBee模塊從適配器上拔下來,再插到Arduino控制板上的XBee V5傳感器擴展板的專門插槽里。

          OK,編寫一個串口通信程序,測試下XBee無線通信是否正常。測試結果,當然沒問題。

         這個無線通信實驗較簡單,就是:按下與Arduino主機連接的亮燈按鈕或者關燈按鈕,通過無線通訊,控制Arduino從機上的LED燈亮滅。

          注意:下載程序到Arduino控制器時,不要把XBee模塊插在Arduino控制器的傳感器擴展板V5上,程序下載完再把它插上去。

      主機程序:

      int button_open =4;//開燈按鈕連在數字端口4
      int button_close =5; //關燈按鈕連在數字端口5
      char flag;//定義“向從機發送LED燈亮滅標志”的變量
      void setup()
      {
        pinMode(button_open, INPUT); //設置按鈕為輸入模式
        pinMode(button_close, INPUT);
        Serial.begin(115200);//啟動串口通信,波特率為115200b/s
      }
      void loop()
      {
        //如果亮燈按鈕按下同時關燈按鈕松開
        if( digitalRead(button_open)==LOW&&digitalRead(button_close)==HIGH)
        {
          flag='a';
          Serial.print(flag);//向從機發送燈亮標志
        }
       //如果關燈按鈕按下同時亮燈按鈕松開
       if(digitalRead(button_close)==LOW&&digitalRead(button_open)==HIGH)
        { 
          flag='b';
          Serial.print(flag);//向從機發送燈滅標志
        }
        delay(20);//延時,等待數據發送成功
      }
       
      從機程序:
      int ledpin=9;//LED燈連在數字端口9
      int val;   //定義“接受主機發來的LED燈亮滅標志”的變量
      void setup()
      {
        pinMode(ledpin,OUTPUT);//設置LED燈為輸出模式
        digitalWrite(ledpin,HIGH);//初始化使LED燈熄滅
        Serial.begin(115200);//啟動串口通信,波特率為115200b/s
      }
      void loop()
      {
        if(Serial.available()>0) //查詢串口有無數據
        {
              val=Serial.read();//讀取主機發送的數據
              if(val=='a')//如果主機發送字符'a',則點亮LED
              {
                digitalWrite(ledpin,LOW);//LED燈點亮          
              }
              if(val=='b')//如果主機發送字符'b',則熄滅LED
              {
                digitalWrite(ledpin,HIGH);//LED燈熄滅           
              }
        }     
      }
          這次無線通訊實驗采用的是1mW的XBee模塊,所以對電源要求不高,如果采用發射功率60mW,傳輸距離1600米的XBee PRO模塊,耗電也相對大些,直接用USB供電就有點小牛拉大車的感覺,所以建議使用外部供電,保證模塊能正常工作。
      文章評論
      發表評論:(匿名發表無需登錄,已登錄用戶可直接發表。) 登錄狀態: 未登錄,點擊登錄
      上海皕科電子有限公司 版權所有
      地址:上海市閔行區都園路4288號D區220室
      電話:021-54852770
      郵件:sales@bitconn.com
       
      中文字幕久久精品波多野结百度|精品无码一区二区|亚洲永久精品ww47cos|国产精品久久久久精品三级卜

      <delect id="zp2xl"></delect>
    2. 
      

      1. <var id="zp2xl"></var>