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