Arduino是一個開源電子原型設計平臺,專門針對接收來自傳感器的輸入進行了優化。這使其成為開發無線網關的絕佳平臺。通過以太網連接,網關可用于將傳感器和執行器連接到互聯網,用于智能手機和平板電腦上的應用。可以為這些平臺開發應用程序,然后利用來自網絡的數據并從世界任何地方遠程控制執行器。
廣泛的可用開源軟件為構建項目提供了寶貴的資源。它基于靈活、易于使用的硬件和軟件,面向設計師、愛好者和任何對創建交互式環境感興趣的人。
有多種 Arduino 板可供使用,均使用 Arduino 編程語言。這是基于Wiring的,它具有與 C++ 相同的語法和庫,但進行了簡化和修改。為了使語言易于使用,有 Arduino 開發環境,它基于基于 Java 的 Processing 開源 IDE。開發可以在作為 Windows、Mac OSX 或 Linux 下的主機的 PC 或 Mac 上完成,也可以在開發板上完成。網關軟件可以使用 Arduino 編程語言和工具在 Linux 上開發。
Arduino納米board 是一個小型、完整且適用于面包板的電路板,基于用于 Arduino Nano 3.0 的 ATmega328 處理器或用于 Arduino Nano 2.x 系列的 ATmega168。它只缺少一個直流電源插孔,并且可以使用 Mini-B USB 電纜而不是標準電纜。Nano 由 Gravitech 設計并生產。16 MHz 處理器在建議的 7-12 V 輸入電壓下運行,并具有 14 個數字 I/O 引腳,每個引腳的直流電流為 40 mA,可用于為無線模塊供電。
ATmega168 版本中有 16 KB 的閃存或 ATmega328 中有 32 KB 的閃存,其中 2 KB 由引導加載程序使用。同樣,ATmega168 有 1 KB 的 SRAM 和 512 字節的 EEPROM,或者 ATmega328 有 2 KB 的 SRAM 和 1 KB 的 EEPROM。
Arduino 板的價值在于業余愛好者開發的一系列開源軟件,以及硬件的靈活性。制造商提供電路布局,并且很容易為無線功能構建附加卡或屏蔽。可以制造或購買無線屏蔽以在設計中添加無線鏈接。
Linux 上的 Arduino IDE Arduino
最常見的開發平臺是 Linux,它同樣是開源的。需要一些額外的程序,這取決于正在使用的 Linux 發行版。
關鍵工具是 Arduino IDE 1.0.1,因為它使用內部預構建 GCC(GNU Compiler Collection)編譯器。這不包括所有工具鏈問題,并包括 Java 運行時包 6 或 7 -nopenjdk-7-jre 或 oracle JRE 7。Arduino
軟件下載包括兩個附加依賴項的自定義版本:
RXTX,一個 Java 和本地庫,用于與 Arduino 板等串行設備進行通信
avrdude,一個將程序上傳到 AVR 微控制器的應用程序(就像 Arduino 板上的那些)
Arduino 附帶的 avrdude 進行了修改,以確保在上傳之前 Arduino 板的自動重置功能正常(否則上傳將失敗)。Arduino 版本的源代碼也可以在開源存儲庫 GitHub 上找到。
Arduino 附帶的 RXTX 已修改為支持 /dev/ttyACM 形式的設備,這些設備由 Arduino Uno 和 Mega 2560 板使用。這些使用 ATmega8U2 而不是 FTDI 芯片進行 USB 串行通信。
無線屏蔽
XBee?屏蔽允許 Arduino 板使用 ZigBee? 進行無線通信。它可以在室內 100 英尺或室外 300 英尺(通過視距)進行通信。擴展板的簡單性意味著它可以用作串行或 USB 替代品來創建簡單的無線點對點連接,或者使用命令模式它可以配置為各種廣播和網狀網絡選項作為無線網關。屏蔽層將 XBee 的每個引腳連接到通孔焊盤,還提供母排針以供數字引腳 2 至 7 和模擬輸入使用,這些引腳被屏蔽層覆蓋。數字引腳 8 至 13 不受屏蔽層的阻礙,因此它們可以使用板上本身的接頭。
XBee 擴展板有兩個跳線,用于確定微控制器(ATmega8 或 ATmega168)和 Arduino 板上的 FTDI USB 轉串行芯片之間的串行通信。跳線位于 XBee 位置時,XBee 模塊的 DOUT 引腳連接到微控制器的 RX 引腳,DIN 連接到 TX。
需要正確配置多個參數才能使兩個模塊相互通信(盡管使用默認設置,所有模塊都應該能夠相互通信)。它們需要在同一網絡上,由 ID 參數設置。模塊需要在同一通道上,由 CH 參數設置。最后,模塊的目標地址(DH 和 DL 參數)確定其網絡和通道上的哪些模塊將接收其傳輸的數據。這可以通過幾種方式發生:
如果模塊DH 為0 且DL 小于0xFFFF(即16 位),則該模塊發送的數據將被任何16 位地址MY 參數等于DL 的模塊接收。
如果 DH 為 0 且 DL 等于 0xFFFF,則模塊的傳輸將被所有模塊以廣播模式接收。
如果DH 不為零,或者DL 大于0xFFFF,則傳輸只會被序列號等于發送模塊目的地址的模塊接收,即點對點連接。
但是,這種地址匹配只會發生在同一網絡和通道上的模塊之間。如果兩個模塊位于不同的網絡或通道上,則無論其地址如何,它們都無法通信。開發板和擴展板可以立即協同工作,但有時可能需要通過 Arduino 開發板上運行的代碼配置 XBee 模塊。這需要開關處于 Micro 位置并使模塊進入配置模式,它需要三個加號:+++ 并且需要至少一秒鐘之前和之后沒有其他字符發送到模塊。 請注意,這包括換行符或回車符。設置配置模式后,模塊將返回兩個字符“OK”,然后是回車。
Send Command ? ? ? Expected Response
+++ OK《CR》
一旦進入配置模式,就可以使用 AT 命令來控制模塊。命令字符串的格式為 ATxx(其中 xx 是設置的名稱)。要讀取設置的當前值,請發送命令字符串,后跟回車符。要將新值寫入設置,請發送命令字符串,緊隨其后的是新設置(中間沒有空格或換行符),然后是回車符。例如,要讀取模塊的網絡 ID(確定它將與哪些其他 XBee 模塊通信),請使用“ATID”命令: 更改模塊的網絡 ID: 檢查設置是否生效:
Send Command ? ? ? ? Expected Response
ATID 3332《CR》
Send Command ? ? ? ? Expected Response
ATID3331 OK《CR》
Send Command ? ? ? ? Expected Response
ATID 3331《CR》
除非將更改寫入非易失性存儲器,否則它們只會在模塊斷電之前生效。要永久保存更改,請以相同方式使用 ATWR 命令: 要將模塊重置為出廠設置,請使用 ATRE 命令: 請注意,與其他命令一樣,除非您使用 ATWR 命令,否則重置不會是永久的。 Laird Embedded Wireless Solutions的 Arduino ModFLEX 擴展板使用 SiFLEX02,將高性能 802.15.4 無線電和微控制器結合在具有成本效益的預認證封裝中,其中 I/O 連接器與 Arduino 開源平臺兼容。
Send Command ? ? ? ? Expected Response
ATWR OK《CR》
Send Command ? ? ? ? Expected Response
ATRE OK《CR》
該模塊具有一個 900 MHz DSSS 收發器、帶有射頻放大器電路的 Atmel 無線電和一個 Atmel ATRXMEGA 微控制器,為其提供與主板相同的環境。它預裝了一個運行在 Atmel 802.15.4 MAC 之上的主機串行接口。該擴展板具有完整的調試和編程功能,可以開發自定義應用程序,ZigBee 堆棧或 MAC 可以輕松加載到模塊上以創建自定義網絡。
該模塊具有 250 mW 的輸出功率,可提供 2 英里的視線范圍以及 1 Mbps 的射頻數據速率。
其他無線拓撲通過使用 面包板原型系統
,可以使用獨立的無線模塊為 Arduino 板構建屏蔽。 這允許使用其他設備來創建屏蔽來處理其他拓撲,例如 Wi-Fi。
Microchip 的RN-171 模塊是一個獨立的完整 TCP/IP 無線網絡模塊,可與原型板一起使用以提供 Wi-Fi 連接。由于外形小巧且功耗極低,RN-171 非常適合移動無線應用,例如 Arduino 擴展板。
圖 :Microchip Wi-Fi 模塊。
它集成了 2.4 GHz 無線電、TCP/IP 堆棧、實時時鐘、加密加速器、電源管理和模擬傳感器接口。該模塊預裝了固件,以簡化集成并最大限度地減少應用程序的開發。在最簡單的配置中,硬件只需要四個連接(PWR、TX、RX 和 GND)來創建無線數據連接。RN-171 還包括一個內置的 HTML 客戶端,可自動將串行 UART 數據或傳感器數據發布到 Web 服務器。
其他拓撲包括用于連接機器對機器 (M2M) 網絡的藍牙?。Laird Technologies 無線M2M
AC4490 900 MHz 無線電模塊使用經過現場驗證的 FHSS 技術取代工業環境中數英里的電纜,無需額外的站點許可。該模塊包括抗干擾功能,可與其他網絡協同工作,同時保持數據完整性。它可以通過原型面包板使用 12 針接頭連接到 Arduino 板。
AC4490 的特性包括插入式安裝、許多即時控制命令,以及用作直接電纜替代品的能力,無需特殊的主機軟件進行通信。所有的跳頻、同步和射頻系統數據傳輸/接收均由模塊執行。
該無線電模塊可以實現超過 20 英里的開放場范圍,在 900 MHz 頻段具有高傳播,并包括 1 W 功率傳輸選項和接收鏈中的靈敏低噪聲放大器。它支持單播(一對一尋址)和廣播(一對多尋址)模式,以及帶有硬件和/或軟件 ACK 指示的確認模式 (ACK) API,以確保已接收到數據。還有一個單信標模式和一個動態無線電數據表,可保留多達 12 個無線電模塊的數據。
互聯網連接
構建無線網關的另一面是將其連接到互聯網,使用以太網屏蔽很簡單,特別是如果它可以使用以太網供電 (PoE) 技術。Arduino ETH 盾牌包括一個 PoE 模塊,并允許 Arduino 板使用以太網庫連接到 LAN。它包括一個帶有有源電壓轉換器和板載復位控制器的微型 SD 卡連接器,并且可以通過以太網供電。
結論
將 Nano 等低成本處理器板與 XBee 等無線屏蔽相結合,創建了易于開發的無線控制器。添加具有自身電源的以太網屏蔽使組合成為無線網關,將模塊、傳感器和執行器連接到互聯網,以便智能手機和平板電腦等設備可以控制它們。Arduino IDE 提供了強大的開發環境,并且項目的開源性質允許輕松獲取庫和代碼并用于構建網關。
評論
查看更多