2023-02-01

將 Sketch 上載到 ESP01S

ESP8266 及 Rapsberry Pi Pico W 都具備 WiFi功能,可以簡單地建立無線伺服器,自製IOT服務
但如果微控制器不需要同時控制大量工具,使用 ESP8266 或 Raspberry Pi Pico W 體積及成本則比較大
如果想製作成本又低體積又細小的 IOT服務,可以改用同樣是 ESP8266系列的 ESP01S
ESP01S 使用 ESP8266EX ,同樣屬於 ESP8266系列
不過 ESP8266EX晶片體積 比 標準的 ESP8266晶片體積更細小
能更節省空間及減少耗電量,適合細小專案

外觀

見下文
ESP01S 正面

見下文
使用 ESP8266EX晶片

見下文
TM25008A晶片,無法找到資料表
不過根據 ESP01S 的設計,該位置的晶片是 512KB 或 1024KB 的 快閃記憶體

見下文
26MHz 晶體振盪器

見下文
ESP01S 背面
標示引腳的用途

引腳

編號 引腳 方向 功能
1 GND 接地
2 IO2 輸入輸出 第2數碼引腳,電路板LED,低電壓亮著
3 IO0 輸入輸出 第0數碼引腳,懸空或接駁到高電壓為執行模式;接地為編程模式
4 IO3 / RX 輸入輸出 / RX輸入 第3數碼引腳,編程模式時為 UART 的 RX引腳
5 IO1 / TX 輸入輸出 / TX輸出 第1數碼引腳,編程模式時為 UART 的 TX引腳
6 EN 輸入 啟動晶片,高電壓有效
7 RST 輸入 重新啟動裝置
8 VCC 支援 3.0V 至 3.6V 供電

轉接器

見下文
見下文
見下文
由於 ESP01S 引腳的排列並不方便麵包板使用
因此在下使用 長腳引腳座 當作轉接器

見下文
見下文
見下文
見下文
長腳引腳座比較有彈性,能稍微彎曲變形

雖然 ESP01S 與 NodeMCU 同屬於 ESP8266系列,但 ESP01S 不具備 USB訊號轉換晶片
因此必須借助外部燒錄器才能將程式燒錄到 ESP01S 上執行

使用FT232RL

將 Sketch 上載到 ESP01S 最直接的方法是使用 FT232RL
如同使用 FT232RL 上載 Sketch 到 ATmega328P 相同

見下文
由於 ESP01S 只接受 3V 至 3.6V ,超過 3.6V 會損壞 ESP01S
FTDI 的 FT232RL 提供 3.3V 及 5V 的切換器,使用 TTL介面 時,必須使用 3.3V

線路原型
見下文
由於 ESP01S 並不能方便是安裝在麵包板上,因此在設計線路原型時亦沒有安置在麵包板上

實際線路
見下文
見下文
見下文
實際線路

由於 ESP01S 區分
  • 執行模式:重置時, IO0 懸空接駁高電壓
  • 編程模式:重置時, IO0 接地
因此線路設計上,提供 切換器 方便切換操作模式

測試
見下文
使用編程模式,才能將 Sketch 上載到 ESP01S

在下使用 Arduino IDE 編寫 Sketch
由於步驟與 ESP8266 NodeMCU 完全相同,因此在下不重覆內容
請參考 使用 ESP8266 NodeMCU 連接 WiFi 及建立 HTTP伺服器 遙距控制電子裝置

見下文
上載 Sketch 後,需要手動將切換回 執行模式
將 IO2引腳 懸空 後,再將 RST引腳 接駁到接地再懸空 ,令 ESP01S 重置

自製轉接器

由於 ESP01S 不方便在麵包板上使用,每次都要接駁長腳引腳座,還要接駁一堆跳線才能使用,在下覺得非常麻煩
而在下剛好有一塊用剩的萬用電路板,因此打算自製 ESP01S 的轉接器

最初在下只是想製作方便 ESP01S 安裝到麵包板上的轉接器,網上很多 ESP01 的教學都會製作類似既轉接器
不過在下覺得仍然需要接駁大量線路很麻煩,因此製作能夠安裝 ESP01S 及 FT232RL 方便上載 Sketch 的轉接器

見下文
線路原型,非常混亂

見下文
見下文
電路板設計,比線路原型清晰一點

非常擠逼的設計,是因為在下的萬用電路板只剩下 5列11欄

見下文
自製電路板 正面,還算清楚乾淨

見下文
自製電路板 背面,大量跳線焊接到引腳,比原型設計更混亂

見下文
FT232RL-TTL 連接器
由於不需要使用 CTS引腳 ,因此沒有跳線焊接到 CTS引腳

見下文
ESP01S 連接器

見下文
將 ESP01S 及 FT232RL 安裝到 自製轉接器

見下文
安裝在 自製轉接器 的 ESP01S

見下文
安裝在 自製轉接器 的 FT232RL
由於不需要使用 DTR引腳 ,因此沒有引腳座連接到 DTR引腳

見下文
按壓按鈕 連接到 ESP01S 的 RST 及 GND ,按下按壓按鈕會重新啟動 ESP01S
切換器 COM引腳 連接到 ESP01S 的 IO0 , T1引腳 懸空(執行模式), T2引腳 連接到 GND(編程模式)

見下文
使用 FT232RL 上載 Sketch 到 ESP01S

使用Arduino

Arduino 能夠成為 USB to TTL 轉換器 ,將 Sketch 上載到 ESP01S

線路原型
見下文
與使用 FT232RL 上載 Sketch 到 Atmega328P 非常相似

實際線路
見下文
見下文
Arduino Nano 與 ESP01S 連接的情況

見下文
在 Arduino 的 RST引腳 及 GND引腳 連接 10uF電解電容
Arduino引腳 ESP01S引腳 其他零件
10uF電解電容引腳
3V3 3V3
GND GND GND
TX/D0 RX
RX/D1 TX
RST VCC

見下文
使用 TTL介面 ,方便辨認引腳用途

見下文
必須接駁 3.3V 輸出至 ESP01S,否則電壓過高會損壞 ESP8266EX

測試
見下文
使用 Arduino Nano 上載 Sketch 到 ESP01S

補充資料

見下文
由於長腳引腳座會回彈,ESP01S 無法完全安裝到長腳引腳座
如果不製作轉接板,不要強行將 ESP01S 完全安裝到長腳引腳座,避免弄斷長腳引腳座

零件清單

名稱 數量
ESP01S 1
FT232RL 1
按鈕按鈕 1
切換器 1
8孔長引腳座 2
跳線 大約10條
USB Type-A 轉 Mini USB-Type B 傳輸線 1

總結

在下最初以為 ESP01S 只是 WiFi模組 ,讓其他微控制器使用並提供 WiFi功能
但原來 ESP01S 本身都是 微控制器 ,能夠獨立運作,能夠更方便製作獨立運作的 IOT裝置

雖然 ESP01S 引腳控制上只有 2支引腳 可以使用
但實際上 TX 及 RX 原本分別是 IO1 及 IO3 ,因此總共 4支引腳 能夠自由使用
如果原生引腳不夠,亦可以直接從 ESP8266EX 的引腳焊接跳線
不過要從由於 ESP8266EX 很細小,而且零件距離近,引導出引腳要非常小心

自製轉接板總共花了 4小時設計及製作
在只有 0.55平方寸 的空間上焊接 13條跳線 絕對是挑戰耐性及手眼協調
最後能夠正確地完成任務

網上很多使用 Arduino 將 Sketch 上載到 ESP01S 的教學,但在下都無法成功
由於亦沒有實際、具體的解決方法,通常指重覆嘗試上載,便會完成
即使有教學影片沒有上載 Sketch 的關鍵情況
最後在下就是覺得與使用 FT232RL 將 Sketch 上載到 ATmega328P 非常相似
因此將 10uF電解電容 安裝到 Arduino 的 RST引腳,最後成功

參考資料

沒有留言 :

張貼留言