# ESP-01S (ESP8266)刷入MicroPython ###### tags: `IoT` 最近打算搞一點入門IoT的東西,頹廢如我已經不會Python以外的語言了,打算刷MicroPython來試試看。 ## 硬體準備 * ESP-01S (ESP8266) 由樂鑫生產的ESP8266晶片,Ai-Thinker製造的ESP-01S模組,在IoT界可謂無人不知、無人不曉的Wi-Fi模組。 ![](https://i.imgur.com/I1V33DS.jpg) > 圖中左邊賣的是副廠品,右邊的是Ai-Thinker生產的原廠貨,我用起來沒有差別。 * USB-to-Serial TTL線 燒錄韌體用,常見的晶片有PL2303、CH340晶片的接線 我這條是PL2303有Driver問題,後面敘述。 ![](https://i.imgur.com/NoXwESY.jpg) * 麵包板(+3.3V電源) ![](https://i.imgur.com/JI7jyLo.jpg) * 杜邦線數條 ## 解決PL2303HX在Windows 10無法使用的問題 :::info 參考自: * https://www.ez2o.com/Blog/Post/PL2303HX-Win8-Win8.1-Win10 * http://yhhuang1966.blogspot.com/2015/04/pl2303hx-usb-ttl.html * http://yhhuang1966.blogspot.com/2015/07/pl2303hx-win8.html ::: ### 無法使用的原因 PL2303HX插入Windows 10後,自動安裝的驅動程式會造成晶片無法使用,在裝置管理員中會看到錯誤訊息。 ![](https://i.imgur.com/xJtk2NI.jpg) 原因是買到的PL2303HX可能不是原廠的晶片,原廠原廠旺玖科技(Prolific)在新版本的驅動程式中直接封鎖了這些晶片,而Windows 10自動安裝的是被封鎖的驅動。 ### 解法 找2009年以前的老驅動,以手動安裝的方式,引導Windows 10安裝。 安裝完成後就可以正常使用了。 ![](https://i.imgur.com/XXMvY5R.png) ## 燒錄ESP-01S ESP-01S的工作電源是3.3V,直接接上PL2303的5V會燒掉,故需要外接麵包板電源。 部分PL2303會提供3.3V輸出,但燒錄ESP-01S時的電流較大,可以導致燒錄失敗,外接電源還是比較好。 ### 接線 ESP-01S * `3V3`: 接電源`3.3V` * `RST`: 空腳`Empty` * `EN`: 接電源`3.3V` * `TX`: 接PL2303`RX` * `RX`: 接PL2303`TX` * `IO0`: 接地`GND` * `IO2`: 空腳`Empty` * `GND`: 接地`GND` PL2303 * `VCC`: 空腳`Empty` * `TX`: 接ESP-01S`RX` * `RX`: 接ESP-01S`TX` * `GND`: 接地`GND` 接線圖 ![](https://i.imgur.com/EpgM9X1.png) 實際圖 ![](https://i.imgur.com/RWQPnEh.jpg) ### 燒錄 :::info 參考自: * https://docs.micropython.org/en/latest/esp8266/tutorial/index.html * http://yhhuang1966.blogspot.com/2017/04/esp-01-esp8266-micropython.html ::: 從MicroPython for ESP8266的官方文件中找到最新的MicroPython韌體,透過NodeMCU Team的Flasher刷入。 ESP-01有512K Flash跟1024K Flash的版本,所需的韌體不同,需要根據Flash Size下載。 > NodeMCU Flasher下載: https://github.com/nodemcu/nodemcu-flasher 開起Flasher,選擇接上ESP-01S的COM Port ![](https://i.imgur.com/5wzr1gl.png) 調整通訊速率為`115200`,調整Flash Size為`1024KByte(1MByte)`(符合ESP-01S) ![](https://i.imgur.com/iFOgpum.png) 按下Flash後就開始燒錄韌體了,可以在Log頁面看到燒錄的過程。 ![](https://i.imgur.com/TYQsraR.png) 有Mac address出現就是有成功抓到ESP8266晶片,等待左下角跳綠燈就完成了。 ![](https://i.imgur.com/cfscaSS.png) ## 測試 將麵包板電源關閉,ESP-01S的`IO0`與`EN`拔除,離開燒錄模式。 開啟Putty,Connection Type選擇Serial,調整Com Port與連線速率。 ![](https://i.imgur.com/DOc7nWI.png) 之後按下Open開啟 ![](https://i.imgur.com/AzTkOw5.png) 此時再將電源打開,Putty的畫面就會出現MicroPython了 ![](https://i.imgur.com/qKK0J9g.png) 輸入`help()`可以看到一些基本操作 ![](https://i.imgur.com/NrZ2Z2u.png) 搞定。