文章更新時間︰2015/05/31 18:04
文章更新次數︰2
一、前言
花了3千塊買了一塊官方的WiFi Shield板子,原以為好日子就此開始,
疏不知用板子對外發岀request時,
居然一直回應我connected failed.
查了一下才知道因為原廠的firmware過舊(v.1.0.0),
解決辦法有︰
1.不更新韌體,繼續研用舊版v1.0.0搭配Arduino IDE 1.0.2對外連線(請參考Ken Yang部落格)
2.更新WiFi Shield的韌體讓最新版Arduino IDE 1.6.4能順利對外連線
查看韌體版本可透過以下語法
Serial.begin(9600);
Serial.println(WiFi.firmwareVersion());
記得include SPI.h 和 WiFi.h 兩個類別!
這裡我就來實作更新韌體的部份!
二、文章開始
依照官方的教學的說明,
在更新韌體進板子前,
請務必將WiFi Shield從Arduino板子上拔除!
步驟1 安裝MacPorts
MacPorts 是一個用於編譯、安裝與管理 Mac OS X 中各類開放原始碼軟體的工具,其由開放原始碼社群負責主導與開發,
透過這個工具可以簡化安裝軟體的編譯工作,
並且可以自動處理套件相依性問題,
概念上很類似 Linux 的 apt 與 yum,
只要下達一些簡單的指令就可以輕鬆安裝各種軟體。
(以上解釋來至CTW論壇)
到MacPorts官網依照你的Mac OS版本下載相對應的安裝檔案。
步驟2 更新MacPorts至最新版
進入終端機裡,輸入以下指令$sudo port selfupdate
步驟3 下載DFU Programmer
DFU(Device Firmware Update) Programmer這套軟體被Arduino專門用來更體韌體專用,因此,
我們透過MacPorts將DFU Programmer軟體下載下來。
語法是
$sudo port install dfu-programmer
下載下來後,請確保是最新版本。
語法如下
$sudo port upgrade outdated
※請確認安裝完的DFU Programmer版本在v0.5.4(含)或之後。
步驟4 下載或在電腦中找岀最新的韌體檔
如果要下載最新版的WiFi軔體,可以到GitHub下載(wifishield整個目錄便是)。或者,也會直接放在最新版的Arduino application裡。
1.使用Finder開啟應用程式資料夾
2.對Arduino.app點擊滑鼠右鍵選擇「顯示套件內容」
3.我的wifishield韌體資料夾路徑是在
/Applications/Arduino/Arduino164.app/Contents/Java/hardware/arduino/avr/firmwares/wifishield/
步驟5 執行腳本檔以利燒錄韌體至板子中
官方有替Linux或Mac版本的使用者寫一套自動化安裝流程,語法的存放路徑在剛才目錄中的底下目錄scripts裡
分別可看到有2個檔案
ArduinoWifiShield_upgrade_mac.sh(Mac專用)
或
ArduinoWifiShield_upgrade.sh(Linux專用)
因為腳本檔是用DFU-Programmer寫起來的,
因此只要剛才DFU-Programmer在v0.5.4以後,
就可以開始接下來的步驟!
為了讓WiFi Shield進入programming mode,
需使用Jumper將J3連結點串聯起來。
將Jumper拔起來並完整的接上2根排針以進入Programming mode模式 |
接著在終端機裡執行剛才的腳本檔
我下的語法如下
$sudo sh /Applications/Arduino/Arduino164.app/Contents/Java/hardware/arduino/avr/firmwares/wifishield/scripts/ArduinoWifiShield_upgrade_mac.sh -a /Applications/Arduino/Arduino164.app/Contents/Java -f shield
順利的話,就能看到韌體更新成功視窗了。
最後記得將Jumper拔掉並按下板子上的RESET鍵,
整個韌體更新的動作就完成囉!
查看一下,
WiFi firmware的版本已更新至最新v1.1.0無誤。
使用client.connect(server, 80)對Google發岀一次頁面request,
也不會再遇到connect failed了!
三、其它
如果有使用Webduino Library,
與Arduino IDE 1.6.4匹配的Webduino版本是1.7。
四、結論
更新完WiFi Shield firmware後,接下來做些什麼呢?
嗯⋯跟我一起玩微智能家居吧!
相關連結
1. Ken Yang的部落格2. Arduino官方
3. 國外一篇更新韌體的部落格教學