智慧家庭的核心技術為網際網路,而連上網路最簡單的解決方案便是無線網路,所以如何讓Ameba來連接上網際網路,可說是一件非常重要的事,所幸Ameba開發板本身就內含WiFi無線網路模組,連網是一件非常簡單的事,本文要告訴讀者,如何簡單、快速、有效的連上網際網路。
Ameba WiFi功能
Ameba開發板是一塊支援Wi-Fi的微型化模組(RTL8711AF and RTL8195AM),內建 ARM Cortex-M3 CPU、記憶體,同時還配置了完整的無線網路協議,包含SSL硬體加速電路以及UART、 I2C、 SPI、PWM 、高速的 SDIO 接口......等各式序列介面,如下圖所示:
Ameba開發板核心晶片-RTL8195AM規格
Ameba使用RTL8195AM為開發板核心晶片,其基本規格如下:
- 32-bit 166MHz ARM Cortex-M3 CPU
- 內建低功耗 802.11 b/g/n 2.4G 無線 Wi-Fi
- 內建NFC
- 介面支援:GPIO / PWM / SPI / I2C / ADC / DAC / UART
- Crypto HW engine:可做硬體加解密,支援 MD5/ SHA-1 / SHA2-256 / DES / 3DES / AES
- IC 本身有 512K RAM,另外模組包含 2M SDRAM / 16M bit flash
Ameba開發板規格
Ameba開發板具有強大的功能,內含WiFi上網的功能,功能十分完備,其下為開發板的基本規格:
- 與Arduino UNO開發版相容,可支援大多數 Arduino 擴充板(Shield):如 DfRobot 的 LCD Keypad shield......等等
- 含一個 NXP LPC11U35 cortex-M0 IC,具備下列功能
- 不須使用 JLINK 可直接透過 USB傳入程式image檔
- 不須使用USB序列傳輸線,UART即可使用將訊息傳給開發用的電腦
Mac Address介紹
在許多無線網路的地方,由於安全性、保密性的因素,會採用權限管理,而最簡單、有效的方式,就是使用網路裝置的MAC Address,一般稱為「MAC」,每一個網路介面卡都有一個獨一無二的識別碼,這個識別碼是由六組16進位數字組成的物理位置(Physical Address),也稱為MAC(Media Access Control)Address。
這個位址分為兩個部分,前三組數字為Manufacture ID,就是廠商ID,後三組數字為Card ID,就是網路卡卡號,透過這兩組ID,我們可以在實體上區分每一張網路卡,理論上,全世界沒有兩張卡的MAC Address是相同的。
基於這個物理位址,就可以在網路上區分每一個裝置(電腦或網路產品),將資料傳輸到正確的位址而不會搞混,其中,MAC Address 是 12 碼的 16 進位數字,每兩個數字中間就會有「-」或「:」間隔,例如:00-F1-EE-50-DC-92。
取得網路MAC資料
第一步就是要教讀者如何取得MAC資料,我們將Ameba開發板的驅動程式安裝好後,打開Ameba開發板的開發工具「Sketch IDE整合開發軟體」,撰寫一段程式,就可以透過Ameba Wifi模組取得MAC資料,取得之MAC資料測試程式如下表所示:
取得MAC資料測試程式(CheckMac)
#include
uint8_t MacData;
String MacAddress ;
void setup() {
MacAddress = GetWifiMac() ;
ShowMac() ;
}
void loop() { // run over and over
}
void ShowMac()
{
Serial.print("MAC:");
Serial.print(MacAddress);
Serial.print("\n");
}
String GetWifiMac()
{
String tt ;
String t1,t2,t3,t4,t5,t6 ;
WiFi.status(); //this method must be used for get MAC
WiFi.macAddress(MacData);
Serial.print("Mac:");
Serial.print(MacData,HEX) ;
Serial.print("/");
Serial.print(MacData,HEX) ;
Serial.print("/");
Serial.print(MacData,HEX) ;
Serial.print("/");
Serial.print(MacData,HEX) ;
Serial.print("/");
Serial.print(MacData,HEX) ;
Serial.print("/");
Serial.print(MacData,HEX) ;
Serial.print("~");
t1 = print2HEX((int)MacData);
t2 = print2HEX((int)MacData);
t3 = print2HEX((int)MacData);
t4 = print2HEX((int)MacData);
t5 = print2HEX((int)MacData);
t6 = print2HEX((int)MacData);
tt = (t1+t2+t3+t4+t5+t6) ;
Serial.print(tt);
Serial.print("\n");
return tt ;
}
String print2HEX(int number) {
String ttt ;
if (number >= 0 && number < 16)
{
ttt = String("0") + String(number,HEX);
}
else
{
ttt = String(number,HEX);
}
return ttt ;
}
如下圖所示,讀者可以看到本次實驗,取得MAC資料測試程式結果畫面:
只需不到短短一分鐘... 輸入您的信箱與ID註冊即可享有一切福利! 免費電子報 會員搶先看 主題訂閱 好文收藏會員福利