網頁

製作ESP8266-01燒錄器並透過Blynk APP點亮LED燈



暨上一篇利用NodeMCU透過Blynk APP建立雲端開關點亮LED燈的文章後,這次我想來介紹一下如何利用Blynk這個APP點亮ESP8266-01S控制板上的LED燈(GPIO02腳位),如果還沒有建立好開發環境的人一定要先去把上面的文章看完,建立好整個開發環境再來看這篇。

如果是使用ESP8266-01模組(差了一個S),因為板子上的兩顆LED燈一顆是POWER另外一顆是TX(請參考此文章),因此要點亮LED燈就必須要另外再外接LED燈(參考此圖),而我的ESP8266-01S上面唯一的一顆LED燈是連接到GPIO02腳位上,所以可以直接應用。

會寫這篇文章的原因主要是因為,許多人並沒有NodeMCU這一塊板子,而ESP8266-01算是蠻多人都會購買的一塊無線模組,同時在價格上比較低廉一些,唯一要說的缺點就是它所引出的IO腳實在太少(僅GPIO0與GPIO02),所以在使用上比起NodeMCU使用的ESP8266-12E晶片接口少上很多。(不過如果只是要做一個簡單的開關動作,倒是低成本的好選擇)

基本上要使用這個ESP8266-01S無線模組來運行Blynk,除了在Arduino IDE上的開發板選擇為Generic ESP8266 Module之外,其它的步驟都與上面那篇文章一樣。但是這塊模組並不像NodeMCU那樣內建能直接接上USB進行燒錄,所以我們必須要在找一塊USB轉ESP8266 WIFI模組來作為USB的通訊晶片。

這塊轉換模組我覺得買的相當的值得,主要是因為ESP8266使用的是3.3V的工作電壓,因此要使用USB TTL的話還要進行電位的轉換,同時還要確保外部供電的穩定性,因為ESP8266在燒錄時如果電壓不穩非常非常非常容易失敗(切身的經驗)。所以說這個模組買了之後就可以省去接一堆線的問題。但如果手邊真的沒有這個模組,可以參考這篇文章的接線,MicroPython on ESP8266 (一) : 燒錄韌體



當初聽人家說在ESP8266燒錄時,除了GPIO0要接地之外,CH_PD腳也要接上高電位才能成功燒錄,於是我就用洞洞板做了一塊轉換模組,讓CH_PD接高電位然後GPIO0有一個指撥開關可以選擇是否進入燒錄模式,還順便裝了一顆RESET的按鈕。



所以它實際在使用時會長得像這樣。



不對!!這樣也未免太醜了吧,而且跟另外接線比根本就沒有比較好啊,是在玩疊疊樂嗎。因此我必須要試著精簡這個轉換板,不然這樣子使用真的太不方便了。

經過測試我發現RESER按鈕並沒有必要,只要重上電或燒錄完成都會自己RESET,而CH_PD我沒有接上高電位一樣能成功進行燒錄,這樣子我只需要把USB轉ESP8266 WIFI模組上面裝一顆GPIO0與GND的按鈕就可以了,在要進入燒錄模式時按下後在上電,一般運行模式則直接插上就能使用。



GPIO0與GND的間隔剛好是一顆輕觸按鈕的腳距,因此我把它輕輕的焊上去之後再把底下用保麗龍膠黏起來就可以了,這樣比起剛剛疊床架屋的轉換板好太多了。



而燒錄的過程都跟NodeMCU一樣,不知道的趕快再看一下這篇文章NodeMCU透過Blynk APP建立雲端開關點亮LED燈

在程式碼的範例的部分選取檔案→範例→Blynk→Boards WiFi→ESP8266 Standalone(獨立運行模式),接著一樣輸入Blynk APP專案內的AuthToken,以及裝置位置的WiFi名稱、密碼就可以進行燒錄了。而開發板的部分選擇Generic ESP8266 Module,其它的什麼Flash Mode、Flash Size等等我倒是沒有更動就能夠成功燒錄,這部分我之後還需要再深入了解才行。

 

在燒錄前有一個非常重要的事情要提醒,在準備燒錄ESP8266-01S之前,插上去上電的當下一定要按住那顆按鈕使得GPIO0與GND相通,因為ESP8266是在上電時偵測GPIO0的狀態決定是運行模式或是燒錄模式,只要在插下去的當下按住按鈕,就可以讓ESP8266進行燒錄模式了(不用一直按著)。



完成燒錄後不需要重插USB,因為它會在燒錄完成後自己RESET,此時因為按鈕沒有導通所以自動進入運行模式。此時開啟Blynk APP,接著按下專案的執行按鈕確認ESP8266模組有無成功上線,有的話應該會出現Online Since的字樣。



確定開發板上線後再新增一個Button的工具,並且使用GP2的腳位,這樣就能成功的開關板子上的燈號了。



這個燒錄器的按鈕裝上去之後,要用來燒錄AT mod、NodeMCU、Arduino SDK、MicroPython、CircuitPython等等其它的韌體都是沒有問題的,在玩ESP8266晶片前一定要先建立好燒錄的環境,先把硬體的部分都弄好才能心無旁鶩的研究它的韌體部分。

這篇文章寫完之後,我之後Blynk的文章都還是會以NodeMCU為主,畢竟它是基於ESP8266-12E的晶片,接口數以及燒錄都方便許多,比較適合在學習的時候使用。

有興趣的也來玩玩看Blynk這套雲端開發平台吧!