2018年8月17日 星期五

用 Arduino Uno主板 編譯(燒錄) ESP8266 ESP-01(S)

相信網路上已經有一堆與本篇相同的文章
不過我還是要寫 就當作筆記吧~

很多文章都寫 ESP-01 就是要外接 3.3V 獨立電源??
(因為會電流不足 而導致無法驅動 等問題...)
可是 Arduino 主板明明就有提供 5V 跟 3.3V 為什麼不用呢?
所以本篇就來試試 直接使用 Arduino Uno本身提供的 3.3V 連接 ESP-01

Step 1. 清空Arduino Uno
因為要將 Arduino 板 當燒錄中介
所以燒錄一個空的Code 將裡面清空
void setup {}
void loop {}

Step 2. 安裝開發板
新版的ArdduinoIDE 已內建 ESP8266 Module (v1.8.6版)
若找不到就要去指定開發板管理員
首先到  檔案->偏好設定->額外的開發版管理員網址
填入 http://arduino.esp8266.com/stable/package_esp8266com_index.json
然後到  工具-> 開發版管理員 填入 ESP8266
就會看到esp8266 by ESP8266 Community 接著安裝
就可以在開發板選項中看到 ESP8266 這個系列了

Step 3. 選擇開發板
開發板 : Generic ESP8266 Module
Flash Mode : DIO
Flash Zize : 1M (512K SPIFFS)
序列埠 : Arduino Uno

Step 4. 將電路接上 ESP-01(S)
電路配置
ESP-01(S)
Arduino
3.3V <--> 3.3V
RST <--> 空接 (Option LowActive)
EN <--> 3.3V (WiFi HighActive)
TX <--> TX (pin1)
RX <--> RX (pin0)
IO0 <--> GND (燒錄 LowEnable)
IO2 <--> LED(+) (Normal High)
GND <--> GND
GND 10K歐姆 LED(-)



(此篇用Arduino 當燒錄中介 所以TX與RX 是直接對接)
IO0(GPIO0) 接GND後上電就會進入燒錄模式
燒錄完記得改為空接(工作模式)

Step 5. 燒錄測試
(*注意 燒錄後內建的AT command會被覆蓋掉 若有需要則需上官網下載重新燒入)
選擇 檔案 ->範例 -> Basics -> Blink

將腳位改為 2 (即IO2)
void setup() {
  pinMode(2, OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(2, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

然後按"上傳"
就開始燒錄Code了 當跑到 100% 後就燒錄完成了

之後不需接Arduino 只要 ESP-01 接3.3V就會看到 LED 一閃一閃的囉~