為5美元的ESP8266微控器安裝及建置Arduino腳本程式碼

四月 21, 2015
Facebook
Twitter
ESP8266微控器系列三篇文章的第二篇。
图片

支援ESP8266晶片和Esptool程式器的自定Arduino IDE軟體
上篇介紹了5ESP8266 WiFi微控以及剛發布最新版相容Arduino的開發環境,這篇我們就來動手測試一下吧!

安裝自訂的
Arduino IDE軟體非常的簡單,我使用的是Mac電腦,下載的是由GitHub提供的預建二進制版本。此版本能夠和你電腦中現有的Arduino開發環境相容,ESP8266型號也是一樣。目前我的電腦安裝了67個不同版本的開發環境,版本從1.0.x一直到最新的1.6.x都有。

雖然你也可以安裝一整個額外的開發環境,但其實沒必要,
最新1.6.x版本Arduino開發環境的亮點之一就是大大簡化了新增及管理開發步驟
图片

使用Arduino腳本程式碼和MOD-WIFI-ESP8266-DEV開發板讓LED燈閃爍。(照片來源:Sandeep Mistry)
安裝和之前版本同樣簡單,就跟Sandeep Mistry做的完全下載並將其中名為esp8266com的資料夾放進電腦中安裝Arduino sketchbook目錄下的hardware資料夾中。

ESP8266模組接線

图片

ESP-01模組排針區的接腳圖
正如上一篇提到的,ESP8266最常見的擴充板應該非ESP-01莫屬。不過可惜的是,ESP-01模組尾端有標準間隔的排針,該區塊對於麵包板的接腳配置來說相當不方便。因為這樣的配置使得模組無法直接插上麵包板,因此必須使用跳接線來解決這個問題。

接下來,你需要將VCC腳位連接到+3.3V電源,並且將GND腳位接地。板上的RX腳位必須連接到電腦上的TX腳位,而電腦上的RX腳位也必須連接到板上的TX腳位。

此外,為了讓開發板能夠運作,需要將
CH_PD腳位上拉至+3.3V,再將GPIO_0腳位下拉,並將板上的電源開啟,使ESP8266進入開機載入模式,進行腳本程式碼上傳。

有兩個最簡單的方法:其一是將開發板連接到電腦,如此一來即可將Arduino腳本程式碼載入ESP8266微控器。或者也可以使用像是FTDI Friend 的變壓板或是標準FTDI線。

图片

ESP-01已連接至FTDI變壓器。CH_PD腳位已上拉至+3.3V使開發板能夠運作,而GPIO_0腳位下拉至GND使韌體可以上傳
別忘了,如果你使用的是FTDI線,還必須再接上一個3.3V調節器,或是製作一個電阻分流器,因為FTDI線的電壓為5V,而ESP8266用的電壓只需3.3V
图片

ESP-01已接線完成,並已準備好連接至標準FTDI線。和上步驟相同-上拉CH_PD腳位使開發板能夠運作, 而GPIO_0腳位也已下拉至GND使韌體可以上傳。請注意+5V輸入和ESP-01板之間的3.3V調節器。
待腳本程式碼上傳完成後,必須將GPIO_0GND之間的跳接線移除,才能正確運作。

上傳腳本程式碼

這個專題中我們使用ESP8266來透過網路控制物品,正是一個典型的物聯網平臺。我們就先從使用網路讓LED閃爍來開始物聯網的體驗。畢竟如果可以成功控制LED燈,就能掌握大部分的應用了。
图片

將LED燈連接在ESP-01板上閒置的GPIO_2腳位
接著將LED燈接線在未使用的GPIO腳位上,也就是GPIO_2。再來,開啟Arduino IDE,選擇工具開發板選單(Tools → Boards menu)中的「Generic ESP8266 Board」,以及從工具連接埠選單 (Tools → Ports menu)中選擇控制板的序列埠。最後,從工具程式器選單 (Tools → Programmer menu)中選擇「esptool

接下來,選擇檔案範例→ESP8266WiFi選單 (File → Examples → ESP8266WiFi menu),然後載入「WiFiWebServer」腳本程式碼至編輯視窗。將程式碼內「ssid password的預留位置數值用WiFi網路的SSID和密碼取代,然後點擊上傳按鈕。

若操作正確,你將會看到「上傳中」(Uploading…)的訊息,稍待片刻後,訊息則會顯示「上傳完成」(Done uploading.)。如果出錯的話,檢查並確認CH_PD腳位已上拉,而GPIO_0腳位下拉。同時確認開發板已連接電源並處在開機載入模式,以及RX接至TX端、TX接至RX

接著打開序列監視器,移除GPIO_0腳位和GND之間的跳接線,再一次將電源連接至開發板上。這時如果沒有開發板沒有接上電源,就無法載入腳本程式碼。

若一切操作順利,將會看到以下指令內容:

Connecting to Wireless Network   
…….
WiFi connected   
Server started   
192.168.1.224  

這代表控制板已連接至網路,還可以看到和DCHP伺服器連線時,確認後的最終IP位址這項關鍵資訊。

現在你可直接使用瀏覽器並輸入http://gpio/1GPIO_2上拉,使LED燈開啟。或是輸入http://gpio/0GPIO_2下拉來關閉LED燈。這時如果你仍連接著序列主控臺,在嘗試打開LED燈時將會看到以下內容:

new client
GET /gpio/1 HTTP/1.1
Client disconnected
new client
GET /favicon.ico HTTP/1.1
invalid request    

在此可安心的略過「invalid request」的錯誤訊息,這只是瀏覽器要求其檢索網頁的圖示,沒有回應並無影響,但此時連接GPIO_2的LED應該是亮著的。再試看看能不能把它關掉。

成功了嗎?做得好!你已複製了Philips Hue燈泡90%的功能並建立了屬於你自己的第一個物聯網產品。

如果仔細看影片,可能會注意到我用的ESP-01板有點奇怪-我的ESP-01板沒有透過FTDI變壓器,或是標準的FTDI線連接。在這裡我用的是麵包板變壓器來取代。

為什麼要用ESP8266?

ESP8266便宜又好用,但相較之下Arduino的功能還是更為完備;例如ESP8266只有一個PWM腳位,而且我們在這裡使用的ESP-01擴充板還甚至會遮蓋到該腳位,所以需要找些其他方法-例如像Sandeep用來連接的Olimex,才能解決此問題。但以其5美元的價格來說是瑕不掩瑜。

5美元的價格來說,不用期望ESP8266Arduino一樣好,因為買一個Arduino控制板的錢就能買56ESP8266開發板了。

ESP8266的價格就跟那些多到像是用大砲發射後的感應器碎片一樣便宜」- 布萊恩傑普森(Brian Jepson

ESP8266正以迅雷不及掩耳的速度成為物聯網的主要平臺之一。其價格十分便宜且操作簡單、十分容易取得(這類東西都是),這是和先前產品一個很大的不同。

再者,相容於Arduino是一個顯著的變化,代表著這些快速增長但仍屬小眾的團體將平臺開放給了更大的群眾。忽然間知道如何操作開發板的人變多了,我相信不久後我們將會看到大量的專題和新產品的誕生。因為我們突然可以取得WiFi開發板,也知道如何操作它們,而且它們的價格便宜到即使拿去丟掉也不會心疼。

拿出你的烙鐵,然後買些開發板吧!我很期待看到你能做出新奇的東西!如果跟大砲有關更好。

此文章為三篇一系列介紹ESP8266微控器中的第二篇。第一篇介紹控制板,第三篇則為ESP-01擴充板建立麵包板變壓器


图片

ALASDAIR ALLAN
艾拉斯岱爾艾倫是科學家、作家、駭客與工匠,大部份時間都在思考物聯網的議題。他曾在舊金山的 Moscone 中心進行網狀網路計劃,引起參議院舉辦聽證會,並協助發現當時最遙遠的星體。


(譯:屠建明)
原文
Social media & sharing icons powered by UltimatelySocial