2017.03.24 星期五
許多文章都會提到ESP8266 對外部電源的要求是出名的嚴格(耗電),外部電源不稳定可能會造成ESP模組莫名其妙的Reset,因此我們要去思考要如何考慮一個問題,我們要使用什麼稳壓電路或稳壓IC才能提供足夠電壓、電流供電給ESP模組,另外除了ESP本身模組外我們的專案可能還有其他的傳感器也需要外部電源,例如我們設計一個IoT(物聯網)的專案時,你的偵側節點地理位置可能是置放在戶外,你要確保該裝置能持續的工作。因此我的IoT節點外部電源能夠維持多久,大約的功率消耗是多少?要使用什麼電池種類當做電源,多久要回收更換電池或再充電,需要設計太陽能自足充/供電嗎?這些問題將會使得電源設計變成了一個很大的研究問題。
就目前針對大部份的專案需求,通常至少需要二種電壓5V和3.3V,許多幑控制器或開發版需要5V例如像Arduino Uno、Raspberry,而有些傳感器卻是需要3.3V的工作電壓。另外則是工作電流的問題要提供多少的電源才足夠。我們的原則仍是使用最便宜但技術可行的解決方案去解決這個問題。
ESP8266模組使用者手册中有提到的一個ESP8266的耗電量平常是100mA,最多是200mA。電流消耗可能依工作型態不同而不同,例如在持續傳送資料時可能消耗電流從平圴值0-70mA,甚至於到200mA。
工作模式 |
平均值 |
峰值 |
持續傳送下 |
~70mA |
200mA |
正常型態下 |
~12mA |
200mA |
待機 |
<200uA |
|
資料來源:ESP8266 WiFi 模組用戶手册 V1.0 [1]
Espressif針對ESP8266模組的電源消耗作了一個統計,發現當ESP8266作Wi-Fi網路傳輸時會消耗比較多的電力。這個表格顯示當ESP8266模組使用802.11b 11Mbps資料傳輸時要消耗170mA的電力,而在Sleep模式消耗值大約在10mA~15mA,因此ES8266模組作資料傳輸時會比較耗電,如在執行程式或利用傳感器收集I/O資料會如上表所示平均值在~12mA之間。
是故,在設計專案時ESP8266模組專案時當系統處於無工作或閒置時應該設計讓晶片進入Sleep狀態,以節省電源。其實從微處理器工作負載量的角度而言,晶片90%的時間都是閒置的,因此當無工作或任務時ESP晶片應該要進入休眠模式以可以節省較多的電力。至於如何實作下次再寫一篇敍述或可參考這篇Espressif的技術文件-ESP8266 Low Power Solutions。
資料來源: Espressif - ESP8266 Power Consumption
問題(1):使用Arduino Uno版的3.3V輸出電源是否可以當做ESP8266的外部電源?
根據Arduino Uno的官方技術規格書中寫到3.3V的輸出電源只能提供50mA 的電流(DC Current for 3.3V Pin 50 mA),但是ESP8266的平常耗電量可能要0~100mA,因此感覺上這種的供電方式似乎是不太足夠的。但是有作者做過測試,利用這種方式跑測試資料,開Client模式傳資料時,整個板(USB電壓電流檢測器)最多寫吃100mA,沒出什麼問題,但是作者提到在作程式實作時會影響耗電,特別是在燒錄程式時,板子就會變得不穩定[2]。因此如我們從Arduino供電給ESP8266運作的技術文件上來看,實際上是不太足夠的,特別時在開發階段要燒錄資料或修改程式都會有問題,甚至於在執行階段要做資料傳輸工作電流有時是足夠、有時是不夠的,因此所以最好的方式還是要另接外部電源。否則在需要高電流的需求情況下,有可能燒毀Arduino Uno開發版。
問題(2): 許多USB to Serial 晶片(例如PL-2303HX晶片)會產出3.3V的DC,ESP8266模組是否可以使用這個3.3V的電壓 ?
許多教學網站皆會使用到USB to Serial 晶片(例如PL-2303HX晶片),該晶片會提供3.3V的直流電壓,有些網站會直接利用這個輸出接到ESP8266模組,並没有外接3.3V的電源,這是可行的嗎 ? 其實答案跟上面一樣,有些會成功,有時會有問題,為什麼? 因為這要看你給予ESP8266模組什麼樣的工作或任務,如僅使用在教學或技術展示使用,個人覺得或許可行,但在產品開發或專案執行可能是不恰當的。因為從FT2303 IC
內的技術規格書中提到在巾部線部內有個5 to 3.3V 的稳壓電路,3.3V的輸出電壓為3.0V~3.6V,平均輸出電壓是3.3V,但在輸出電流部份只有描述到5V輸出端最大電流為150mA,但没寫到3.3V輸出端的最大輸出電流是多少。那我們假設這晶片將可輸出最大輸出電流為150mA。因此我們可以結論如使用PL-2302晶片供電給ESP8266模組有些作業是可以,但有些作業可能會不稳定。
問題(3): USB to Serial 晶片的TX接脚是否可以直接連接到ESP8266模組的RX接脚 ?
根據FT2303 IC 內的技術規格書中的通訊接脚TX輸出是3.3V ,因此此脚直接連接到直接連接到ESP8266模組的RX接脚是没有問題的。但是如我們是使用Arduino來傳資料,將Arduino的TX(傳送資料)接脚直接連接到ESP8266的RX(接收資料)接脚,但Arduino 的TX接脚輸出壓為5V,但ESP8266的RX接脚為3.3V的輸入電壓,所以如用上圖的而Arduino TX0接ESP8266 RX可能會有燒毀ESP8266的可能性,因此建議使用二個電阻(1K及2K或10K及 20K)分壓,使5.5V的輸出電壓變成3.3V的電壓。而Arduino RX與ESP8266 TX不需要分壓電路,因為當TX為High電位(3.3V)時, Arduino的RX能偵測到這是高電位,所以不需要分壓電路 (更多資訊請參考ESP8266硬體連接這篇文章)。
問題(4): 什麼是較好的電源供應方式 ?
就目前針對大部份的專案需求,通常至少需要二種直流電壓5V和3.3V,許多幑控制器或開發版需要5V例如像Arduino Uno、Raspberry,而有些傳感器卻是需要3.3V的工作電壓。因此我們最好設計一個能同時提供雙電源的電路,也就是一個輸入源而輸出二個輸出源的供電方式,參考下面方式:
問題(4): 什麼是較好的電源供應來源 ?
就目前市面上的電源供應來源,大部份仍是使用電池為主,下表可參考各電池種類的工作電壓及容量,各種電池有不同的工作特性及優缺點,列出各種種類電池的用意在比較電容量,那一種較電池技術較適合你的專案計劃。有些電池可再充電重覆使用,有些電池需要經過穏壓電路後才可供電ESP8266模組。
電池種類 |
電壓 |
容量 |
數量 |
穏壓否 |
可充電否 |
鹼性電池 |
1.5V(AAA) |
1100-1300mAh |
2~3 |
是 |
否 |
1.5V(AA) |
1300-3500mAh |
2~3 |
是 |
否 |
|
9V(方形) |
200mAh |
1 |
是 |
否 |
|
鎳鎘電池 |
1.2V(AAA) |
200-320mAh |
3 |
是 |
可 |
1.2V(AA) |
600-1000mAh |
3 |
是 |
可 |
|
鎳氫電池 |
1.2V(AAA) |
800-1000mAh |
3 |
是 |
可 |
1.2V(AA) |
2000-2300mAh |
3 |
是 |
可 |
|
18650鋰聚電池 |
3.7V |
2000-2650mAh |
1 |
是 |
可 |
磷酸鐵鋰電池 |
3.2V(AAA) |
700mAh |
1 |
否 |
可 |
3.2V(18650) |
1100-1800mAh |
1 |
否 |
可 |
|
鉛酸電池 |
2.2V |
3-50Ah |
3 |
是 |
可 |
資料來源:#64 What is the Ideal Battery Technology to Power 3.3V Devices like the ESP8266?
有數個提供5V或3.3V穩壓IC的方案可供選擇,使用者應該考慮全部5V和3.3V的負載需求選擇適當的穩壓IC,輸出電流愈高,價錢當然就愈貴,要自行評估選擇。
- AMS1117 為可調整或固定輸出電壓3.3V的穩壓IC,輸入電壓範圍從4.8V~ 15V,可提供800mA的輸出電流。
- LD1117輸入電壓範圍從4.75V ~ 15V,可提供800mA的輸出電流。
- LMS7833輸入電壓範圍從3.3V ~ 18V,可提供1A的輸出電流,如整個專案需要3.3V負載很多,可以考慮使用這個輸出電流較大的IC。
- HT7833輸入電壓範圍從1.8V ~ 8V,可提供500mA的輸出電流。
- MIC5219輸入電壓範圍從2.5V ~ 12V,可提供500mA的輸出電流,雖然輸出電流没有前面大,但已經足夠應付ESP8266模組的最高需求電流200mA。
- LM317輸入電壓範圍從3V~40V直流電壓,輸出可提供1.5A的輸出電流。
以上這些穩壓IC有些是調整或固定輸出電壓,其實最重要的是穩壓IC的輸入耐壓範圍,這些大概都可耐壓12V以下的電壓,所以不管是 9V 方形電池, 還是 12V 23A 的 L1208 鹼性電池,或者12V鉛酸電池都可以作為其輸入來源。在露天都可找到 3.3V 與 5V 這兩種晶片,而且價格也很親民。為了增加電源穩定度通常都會在穩壓IC加上電容,這些要考就需要參考規格書才可以了,但我看很多教學網站直接也能成功,但端看你的使用目的而定了,教學實驗用或是專案產品設計用,重要的是使用這些穩壓IC就可以滿足你雙電源的需求了,不要因為電源的問題造成電話不稳定,有時做不出來花費很多時間和金錢但卻找不到原因。
參考資料
留言列表