この記事は ESP8266 GPIO のガイドです: ピンアウト図、その機能と使用方法。
ESP8266 12-E チップには 17 本の GPIO ピンが付属しています。 このガイドでは、ESP8266 GPIO の正しい使用方法を学び、プロジェクトに最適なピンを使用することで、何時間もイライラする必要はありません。
ESP8266 12-Eチップのピン配置
次の図は、ESP8266 12-Eチップのピン配置を表しています。
注意: すべての GPIO がすべての開発ボードでアクセスできるわけではありませんが、各 GPIO は使用している開発ボードにかかわらず同じ方法で機能します。 ESP8266を使い始めたばかりであれば、当社のガイドを読むことをお勧めします。
現在、ESP8266チップを搭載したさまざまな開発ボードがありますが、アクセス可能なGPIOの数、サイズ、フォームファクターなどが異なっています。 これらのボードの比較は、こちらのガイドをご覧ください。 ESP8266 Wi-Fi 開発ボードの比較
ESP8266-01 ピンアウト
ESP8266-01 ボードを使用する場合、次の GPIO 図を参考にすることができます。
ESP8266 12-E NodeMCU Kit
ESP8266 12-E NodeMCU キットのピンアウト図は、以下のとおりです。
ESP8266 ピン配置図の PDF をダウンロードする
ESP8266 ピン配置図をダウンロードして印刷できるので、常に横に置いておくことができます:
PDF ピン配置図のダウンロード ”
ESP8266 Peripherals
ESP8266 周辺機器には以下が含まれます。
- 17 GPIO
- SPI
- I2C (ソフトウェアで実装)
- I2S DMA
- UART
- 10->
- SATA
- I2S
- I1Sインタフェースbit ADC
Best Pins to Use – ESP8266
ESP8266 について注意すべき点は、GPIO 番号とボード シルクスクリーンのラベルが一致しないことです。 例えば、D0はGPIO16に対応し、D1はGPIO5に対応します。
次の表は、シルクスクリーンのラベルとGPIO番号の対応、およびプロジェクトで使用するのに最適なピンと注意が必要なピンを示しています
緑でハイライトされているピンは、使用してもかまいません。 黄色で表示されているピンは、使用しても問題ありませんが、主に起動時に予期せぬ動作をする可能性があるので注意が必要です。 赤色で表示されているピンは、入出力として使用することをお勧めしません。
Label GPIO Input Output Notes D0 Output Label Label Output InputGPIO16 割り込みなし PWM、I2Cサポートなし 起動時HIGH
ディープスリープからの起動に使用D1 の場合
GPIO5 OK SCL(I2C)としてよく使われる D2 GPIO4 OK OK SDA (I2C) として使用されることが多い D3 GPIO0 pull up OK FLASH ボタンに接続されている。 6007> D4 GPIO2 pull up OK 起動時HIGH
オンボードLEDに接続した場合、起動に失敗します。 LOWにするとブート失敗D5 GPIO14 OK SPI (SCLK) D6 GTPIO12 ok ok spi (miso) d7 gpio13 ok ok spi (mosi) D8 GPIO15 GNDにプル OK SPI (CS)
HIGHにプルするとブートに失敗RX GPIO3 OK RX端子 ブート時HIGH TX GPIO1端子 OK ブート時HIGH
デバッグ用出力。 LOW にプルするとブート失敗A0 ADC0 アナログ入力 X ESP8266 GPIO およびその機能についてより詳細な分析を続けるには、続きをお読みください。
フラッシュ チップに接続された GPIO
GPIO6 ~ GPIO11 は通常、ESP8266 ボードのフラッシュ チップに接続されています。 そのため、これらのピンの使用は推奨されません。
Pins used during Boot
ESP8266は、いくつかのピンがLOWまたはHIGHにプルされると、ブートできないようにすることができます。 以下のリストは、BOOT時の以下のピンの状態を示しています:
- GPIO16: BOOT時にピンはHIGH
- GPIO0: LOW
- プルされるとブート失敗 GPIO2: BOOT時にピンはHIGH、 LOW
- プルされるとブート失敗 GPIO15: HIGH
- GPIO3: GPIO1: BOOT時にHigh、LOWにするとブート失敗 GPIO10: BOOT時にHigh
- GPIO9: BOOT時にHigh
Pins HIGH at Boot
特定のピンは3.を出力することがあります。ESP8266の起動時に3Vの信号を出力するピンがあります。 これは、それらのGPIOにリレーやその他の周辺機器を接続している場合、問題となることがあります。 以下のGPIOは、ブート時にHIGH信号を出力します。
- GPIO16
- GPIO3
- GPIO1
- GPIO10
- GPIO9
さらに、GPIO5とGPIO4を除く他のGPIOは、ブートに低電圧信号を出すことがあり、これらがトランジスタまたはリレーに接続している場合問題が生じることがあります。
GPIO4とGPIO5は、リレーを動作させたい場合、最も安全に使用できるGPIOです。 そのGPIOはADC0と呼ばれ、通常シルクスクリーン上でA0とマークされています。
ESP8266のベアチップを使用している場合、ADC0ピンの最大入力電圧は0~1Vです。 ESP8266 12-E NodeMCUキットのような開発ボードを使用している場合、これらのボードには内部分圧器が含まれているので、電圧入力範囲は0~3.3Vです。
以下のガイドで、ESP8266でアナログ読み取りを使用する方法を学ぶことができます。
- ESP8266 ADC – Read Analog Values with Arduino IDE, MicroPython and Lua
オンボード LED
ESP8266 開発ボードのほとんどは、LEDを内蔵しています。 このLEDは通常GPIO2に接続されています。
LEDは倒立論理で動作します。 HIGH信号を送ると消灯し、LOW信号を送ると点灯します。
RST Pin
RSTピンがLOWになると、ESP8266はリセットされます。 これは、オンボードのRESETボタンを押すのと同じです。
GPIO0
GPIO0をLOWにするとESP8266をブートローダモードに設定します。 これは、オンボードのFLASH/BOOTボタンを押すのと同じです。
GPIO16
GPIO16 は ESP8266 を深い睡眠から覚めるために使用することが可能です。 ESP8266をディープスリープから目覚めさせるには、GPIO16をRSTピンに接続する必要があります。 ESP8266をディープスリープモードにする方法:
- ESP8266 Deep Sleep with Arduino IDE
- ESP8266 Deep Sleep with MicroPython
I2C
ESP8266にはハードウェアI2Cピンがありませんが、ソフトウェアで実装することが可能です。 そのため、任意のGPIOをI2Cとして使用することができます。 通常、以下のGPIOがI2Cピンとして使用されます:
- GPIO5: SCL
- GPIO4: SDA
SPI
ESP8266でSPIとして使用されているピンは以下の通りです。
- GPIO12: MISO
- GPIO13: MOSI
- GPIO14: SCLK
- GPIO15: CS
PWM Pins
ESP8266 ではすべての I/O ピンでソフトウェア PWM が可能です。 GPIO0~GPIO16です。 ESP8266のPWM信号の分解能は10ビットです。
- ESP8266 PWM with Arduino IDE
- ESP8266 PWM with MicroPython
Interrupt Pins
ESP8266はGPIO16以外のGPIOで割り込みをサポートしています。
- ESP8266 Interrupts and Timers with Arduino IDE
Wrapping Up
ESP8266 GPIOに関するこのガイドがお役に立てば幸いです。 ESP8266 GPIO の適切な使用方法についてヒントがある場合は、下にコメントを書いてください。
ESP32 GPIO 用の同様のガイドも用意していますので、そちらもお読みください。
もしあなたが ESP8266 を使い始めたのなら、私たちはあなたが興味を持つかもしれない素晴らしいコンテンツを用意しています。
- ESP8266 を使用したホーム オートメーション(コース)
- ESP8266 を始める
- 30+ ESP8266 プロジェクトとチュートリアル
- ESP8266 Web Server Tutorial
- ESP32 vs ESP8266 – Pros and Cons
お読みいただきありがとうございました。