首頁 > 評測 > 網(wǎng)絡觸手可及,然而仍然是差評 --Arduino MKR WiFi 1010開發(fā)板評測

網(wǎng)絡觸手可及,然而仍然是差評 --Arduino MKR WiFi 1010開發(fā)板評測

開發(fā)板   網(wǎng)絡   Arduino   MKR   WiFi   1010   
  • 作者:SATURN
  • 來源:21ic
  • [導讀]
  • Arduino MKR WiFi 1010開發(fā)板將MCU與WiFi/BLE模塊結(jié)合起來,提供了快速接入網(wǎng)絡的功能,簡化了一般用戶的操作步驟,確實非常實用。另一方面,ESP32的模塊目前還只提供了WiFi的配置功能,而BLE則被忽略了,有點可惜,雖則用戶可以借助官方提供的工具來自行處理BLE相關的操作,這樣一來,門檻顯著提升,差評!

Arduino家族正變得越來越龐大!

目前的Arduino硬件已形成了清晰的產(chǎn)品線,從入門級的UHO、NANO,到增強特性的產(chǎn)品如MEGA,再到IoT系列的YUN及TIAN等,滿足了不同水平的用戶需求。入門者可以從UNO開始,掌握了基本的電子小應用開發(fā)后,可以逐步過渡到增強型產(chǎn)品應用中,再進一步,就可以開始嘗試IoT類型的產(chǎn)品應用了。也可以這么說,正是Arduino,見證了菜鳥的成長!

Arduino MKR WiFi 1010隸屬Arduino IoT系列產(chǎn)品,板載一顆來自U-BLOX的ESP32模塊,提供了IEEE 802.11 b/g/n無線連接能力,除此之外,Arduino MKR WiFi 1010還包含一顆自SAMD21的微處理器,二者共同構(gòu)成了Arduino MKR WiFi 1010的核心硬件,給廣大Arduino用戶帶來了更好的開發(fā)體驗。

rId21.jpg

Arduino MKR系列產(chǎn)品相對于經(jīng)典的UNO來說,體積更加小巧,同時在接口及布局方面也做了調(diào)整,新用戶也許得花點時間來熟悉新的GPIO接口布局,但也僅限于此。因為不管是哪一款Arduino開發(fā)板,其開發(fā)流程,API接口等都保持了基本的一致,Arduino  MKR WiFi 1010開發(fā)板也不例外,在熟悉了基本的硬件接口后,用戶可以很快的進入到開發(fā)的角色中來。

rId22.jpg

開發(fā)板上負責無線通信的模塊型號為U-BLOX NINA-W102,其內(nèi)部核心為ESP32,其內(nèi)部框圖如下

rId23.png

U-BLOX NINA-W102的主要特性如下

• Wi-Fi 802.11b/g/n

• Dual-mode Bluetooth v4.2

• 封裝尺寸小

• 4Mbit/16MBit的SRAM/FLASH存儲器

該模塊在Arduino MKR WiFi 1010上的主要功能是連接網(wǎng)絡,另外該模塊雖然具備WiFi及BLE 4通信功能,目前還只提供WiFi通信功能,至于BLE的功能,目前在Arduino環(huán)境下還不能使用。

開發(fā)板上的另一顆芯片是SAMD21,開發(fā)板主要的外高接口都是從該芯片引出,關于GPIO接口對應關系,請參考官方原理圖。

rId24.jpg

其實對于Arduino用戶來說,很多情況下我們只關心每個GPIO引腳提供了哪些具體的功能,比如GPIO、PWM、AD/DA等,關于這些接口,都可以在開發(fā)板的背面,直接從PCB絲印上獲取第一手資料,如上圖所示。

開發(fā)環(huán)境當然首選Arduino IDE,這個IDE雖然雖然經(jīng)典,但是界面很復古,一些實用的功能如代碼提示及補全功能至今也還沒有,不過勝在簡單,對于大部分用戶來說,足夠了。

首先是安裝開發(fā)板硬件支持平臺,如下

rId25.png

這部分是主要針對SAMD21微處理器,這是一款基于ARM Cortex=M0+的32位處理器,Arduino MKR系列產(chǎn)品大部分使用該處理器,另外像ARDUINO YUN及TIAN等高端產(chǎn)品也使用了該處理器。

至于無線部分的庫,則需要安裝WiFiNINA庫來進行處理,如下

rId26.png

安裝好這兩個庫之后,就可以愉快的開始體驗網(wǎng)絡編程了。

我們打開WiFiNINA庫自帶的WiFiWebServer示例程序來體驗下網(wǎng)絡編程的快捷特性。打開工程文件后,需要修改代碼中關于本地無線路由器的配置,參考代碼如下

char ssid[] = SECRET_SSID; // your network SSID (name)

char pass[] = SECRET_PASS; // your network password

接下來開始編譯并上傳代碼到開發(fā)板,這一過程和其它的Arduino開發(fā)板并無兩樣。

接下來在串口監(jiān)視器中可以看到如下信息

rId27.png

表明開發(fā)板和本地無線路由器已建立了連接,設備也通過DHCP方式獲取到了適當?shù)腎P地址,同時Web Server已開始正常工作,這一點我們可以通過打開瀏覽器來進行驗證。

rId28.png

這是瀏覽器中得到的結(jié)果,很簡陋,但是至少工作了!

如果要打造一個基于Web Server的簡單應用,例如顯示采集的溫度信息,以這個為藍本,加上適當?shù)耐庠O操作代碼,很快就可以做出令人滿意的小產(chǎn)品。如果還想進一步的美化,那么,你需要一個HTML的參考設計,來幫你將作品進一步完善。

然而令人遺憾的是,目前開發(fā)板的BLE功能還沒有開放出來,如果我們想要使用BLE功能怎么辦呢?辦法當然是有的,只不過恐怕步驟要麻煩一點。既然無線模塊就是ESP32,當然也可以使用ESP32的工具來對之編程并按照我們的意愿來工作。不過這樣的話,你需要對ESP32的SDK有一定程度的了解。

不像一般的ESP32模塊,開發(fā)板并沒有引出該模塊的編程接口,所以我們首先得讓ESP32模塊能接收來自上位機的編程數(shù)據(jù),在WiFiNINA庫里有個程序,可以將來自串口的數(shù)據(jù)寫入到ESP32模塊中,從而實現(xiàn)固件編程的需求。

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論