最近由Making Things Talk (2nd Edition)這本書Chapter 6. Wireless Communication的章節中,發現了以這個Shield作為WiFi通訊功能的說明,內容附有照片與程式庫運用範例,應該是由Arduino原廠所提供的測試板,剛好可以初灠一下這個即將上市的官版無線網路介面擴充板的功能。
根據書中的內容, WiFi Shield與Ethernet Shield有相同的Network Stack,程式庫也一樣具備了Server、Client等Class定義。因此,就如同當初在Maker Fair中對Arduino WiFi Shield描述的一樣,對於原來在Ethernet環境所開發的程式碼,只需稍微修改一下,就可以移轉至WiFi無線網路環境中運作。
根據書中的內容, WiFi Shield與Ethernet Shield有相同的Network Stack,程式庫也一樣具備了Server、Client等Class定義。因此,就如同當初在Maker Fair中對Arduino WiFi Shield描述的一樣,對於原來在Ethernet環境所開發的程式碼,只需稍微修改一下,就可以移轉至WiFi無線網路環境中運作。
而WiFi shield連接Arduino也與Ethernet Shield一樣使用SPI介面,並提供有:WEP(含:40-bit與128-bit兩種)、WPA、WPA2等加密方式。
以上這些都是由書中所提到的,並非Arduino正式釋出的最終規格。
API功能
書中的程式範例,說明了部份的API功能。在程式庫方面,Arduino sketch與使用Ethernet
Shield時一樣,也需要Include <SPI.h>,同時新增了一個WiFi Shield使用的程式庫<WiFi.h>。
依據書中的說明,WiFi.h同樣定義有Server、Client等class,而在Arduino 1.0新增的DHCP、DNS、UDP等功能也都可以使用。
書中的程式範例,說明了部份的API功能。在程式庫方面,Arduino sketch與使用Ethernet
Shield時一樣,也需要Include <SPI.h>,同時新增了一個WiFi Shield使用的程式庫<WiFi.h>。
依據書中的說明,WiFi.h同樣定義有Server、Client等class,而在Arduino 1.0新增的DHCP、DNS、UDP等功能也都可以使用。
在網路初始化程序,在Ethernet.h,至少須提供MAC address作為網路設定:
Ethernet.begin(mac);其餘的IP、Gateway、subnet等可以由dhcp取得。
至於WiFi.h則至少須提供SSID以及加密資訊作為初始化設定:
WiFi.begin(ssid, key);而同樣也可以由dhcp來取得IP。
至於WiFi.h則至少須提供SSID以及加密資訊作為初始化設定:
WiFi.begin(ssid, key);而同樣也可以由dhcp來取得IP。
無線網路診斷
在使用電腦或手持裝置的無線網路介面時,都會有提供查詢網路狀態的功能,而WiFi.h也具有診斷網路狀態的工具,以下是書中的範例程式。
在使用電腦或手持裝置的無線網路介面時,都會有提供查詢網路狀態的功能,而WiFi.h也具有診斷網路狀態的工具,以下是書中的範例程式。
l 掃瞄並列示鄰近無線網路的SSIDbyte numSSID = WiFi.scanNetwork(); // Scan nearby networks
for (int cnt=0; cnt<numSSID; cnt++) {
Serial.print(cnt);
Serial.print(“. Network: “);
Serial.println(WiFi.SSID(cnt)); // Print network name
}
for (int cnt=0; cnt<numSSID; cnt++) {
Serial.print(cnt);
Serial.print(“. Network: “);
Serial.println(WiFi.SSID(cnt)); // Print network name
}
l 顯示信號強度
long rssi = WiFi.RSSI();
Serial.print(“RSSI: “);
Serial.println(rssi);
long rssi = WiFi.RSSI();
Serial.print(“RSSI: “);
Serial.println(rssi);
沒有留言:
張貼留言