1、ESP8266 子產品
目前市面上有關ESP8266模組有很多的種類,但是都是使用的樂鑫公司開發的ESP8266的wifi模組,而且種類也很多。從網上搜尋就可以看到很多不同的種類,常見的有以下幾種:
1.1、D1 開發闆
D1 WiFi開發闆的設計上和Arduino UNO R3開發闆做到了相容,ESP8266的11個IO引腳也都在闆子預留出來,它的外形如下:
1.2、Mini 開發闆
還有內建了序列槽自動下載下傳電路的更小尺寸的Mini版本,如下:
1.3、NodeMcu開發闆
當然目前市面上最常見的就是NodeMcu開發闆了,它內建了序列槽自動下載下傳電路,IO也都通過排針引出,價格也不貴,算是很物美價廉的了。如下:
2、ESP8266到底是個啥?
ESP8266 是一款超低功耗的UART-WiFi 透傳子產品,具備 GPIO、I2C、ADC、SPI、PWM 等功能。總的來說,ESP8266 是一個高性能的無線SOC,它的内部內建有超低功耗的32位微型MCU(單片機),主頻支援80MHZ和160MHz,甚至能夠跑 RTOS。
它的特性如下:
1)主頻支援80MHz和160MHZ;
2)支援RTOS的使用;
3)160KB的SRAM(64KB IRAM + 96KB DRAM);
4)内置10bit高精度ADC;
5)内置TCP/IP協定棧;
6)支援AT遠端更新、雲端OTA更新;
7)支援STA、AP、STA+AP的工作模式;
8)支援Smart Config功能(包括Android和ISO裝置);
9)有IO引腳,支援HSPI、UART、I2C、I2S、PWM、GPIO等常用外設功能;
10)支援一鍵配網、SDK二次開發
3、NodeMcu 開發闆
目前市面上能夠見到ESP8266的NodeMcu開發闆,wifi模組都是使用的ESP8266,不同的地方就在于闆載上的usb轉TTL的晶片,常見的有:CH340、CP2102、CH9102等轉換晶片,最終實作的功能都一樣,就是轉換晶片不同而已。
它的闆載引腳名和ESP8266的晶片引腳編号對應如下圖:
注意:要注意區分GPIO編号與NodeMCU開發闆引腳名的差別。差別如下:
1)GPIO編号指的是ESP8266晶片的引腳編号,如上圖所示的 “GPIO + 數字” 的方式來表示表示,共有GPIO0 - GPIO16。
2)引腳名指的是NodeMcu開發闆上的絲印文字,比如:D0、D1、A0…等這些 。
3.1、ESP8266的引腳功能表
GPIO | 功能 | 電平狀态 | 備注 |
引導模式選擇 | 3.3V | ||
1 | TX0 | / | 序列槽0通訊(發送) |
2 | 引導模式選擇 TX1 | 3.3V | 啟動時不能接地,啟動時發送調試資訊; 序列槽1通訊(發送) |
3 | RX0 | / | 序列槽0通訊(接收) |
4 | SDA (I²C) | / | / |
5 | SCL (I²C) | / | / |
6 - 11 | 連接配接閃存 | / | 最好不要做普通GPIO使用 |
12 | MISO (SPI) | / | / |
13 | MOSI (SPI) | / | / |
14 | SCK (SPI) | / | / |
15 | SS (SPI) | 0V | 上拉電阻不可用 |
16 | 睡眠喚醒 | / | 無上拉電阻,僅有下拉電阻,連接配接 RST 引腳可實作睡眠喚醒 |
3.2、引腳使用中需要注意的地方
3.2.1、有效可用引腳
ESP8266晶片有17個GPIO引腳,它們分别是 GPIO0~GPIO16。在這些引腳中 GPIO6~GPIO11已經被用于連接配接開發闆的閃存(Flash Memory),如果項目中使用GPIO6~GPIO11的話,會導緻NodeMCU開發闆無法正常工作,是以建議不要使用GPIO6~GPIO11。
總而言之,出去用于連接配接閃存的引腳,實際可用的引腳就隻有11個。
3.2.2、引腳電壓電流
NodeMCU開發闆引腳所能承受的的輸入輸出電壓限制是3.3 V。如果向引腳施加超過3.3V以上的電壓就有可能對ESP8266晶片造成損壞。以此同時,這些引腳的最大輸出電流是12mA。
3.2.3、引腳的上下拉電阻
GPIO 0-15引腳都配有内置上拉電阻。GPIO16 引腳配有内置下拉電阻。
3.2.4、ADC模拟輸入
ESP8266 隻有一個模拟輸入引腳,該引腳可以将引腳上的模拟電壓數值轉化為數字量,并且此引腳可以讀取的模拟電壓值為 0 – 1.0V。
是以必須注意:ESP8266 晶片模拟輸入引腳連接配接在1.0V以上電壓可能損壞ESP8266晶片。
3.2.5、UART 串行通信端口
ESP8266 有兩組串行通信端口,分别如下:
1)串行端口0(UART0)使用GPIO1和GPIO3引腳。其中GPIO1引腳是TX0,GPIO3是RX0。
2)串行端口1(UART1)使用GPIO2和GPIO8引腳。其中GPIO2引腳是TX1,GPIO8是RX1。
特别注意:由于GPIO8被用于連接配接閃存晶片,是以RX1實際上不能再使用,串行端口1隻能使用GPIO2來向外發送串行資料。