使用TTL RS232(PL2303HX)上傳程式碼至ESP8266 NodeMCU
17 Apr 2022 - Gengar
使用TTL RS232(PL2303HX)上傳程式碼至ESP8266 NodeMCU
一般來說要上傳程式碼至ESP8266 NodeMCU可以直接利用他的micro usb接口即可做到,但是當usb接口壞掉不能使用或是要直接寫入ESP8266的時候要怎麼辦呢?
這個時候就可以利用他的RX跟TX這兩個GPIO把程式碼給上傳進去。步驟很簡單:1. 把線路接好 2. 如同正常上傳Arduino程式碼
需要準備的東西有
-
ESP8266 NodeMCU
-
USB to TTL module (市面上有很多款,任意一款都適用。這邊我們是用PL2303HX,不過如果是WIN8以後的windos版本就需要額外安裝驅動,驅動的部分可以在微軟的論壇找到)
接著開始來上傳程式碼,步驟如下
-
把線路如下圖接起來,要特別注意RX跟TX是相互接的,接錯可能會燒掉板子
TTL to USB module ESP8266 5V Vin GND GND RX TX TX RX -
利用Arduino上傳程式碼,這個步驟如果上傳失敗有兩個可能的原因
-
PL2303HX或是其他TTL to USB module的驅動沒灌好,可以到windows的設定->裝置管理員(Device Manager)->連接阜(Ports)看接上USB後是否有被正常的偵測到
-
板子處於讀取狀態非寫入狀態,這個時候就需要按下FLASH+RST鈕後放開讓他進入寫入狀態,正確地按下並放開後應該會看到LED閃一下。如果板子上沒有那兩個按鈕的話就需要用FLASH+RST的GPIO讓他進入寫入狀態。
-
最後這邊提供一個測試用的程式碼(這在Arduino的ESP8266範例裡面可以找到原始的程式碼)
// Edited by Gengar
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // 設定板子上的LED_BUILTIN作為output
}
void loop() {
digitalWrite(LED_BUILTIN, LOW); // LED on (ESP這塊板子上的LED on要設定低電位)
delay(1000); // 保持LED on一秒
digitalWrite(LED_BUILTIN, HIGH); // LED off
delay(2000); // 保持LED off兩秒
}