はじめての ESP-01 プログラミング

ここでは ESP8266 のバリエーションの中でも特に ESP-01 の使い方について説明します。

ESP-01 は AI-Thinker 社が開発した小型の Wifi モジュールです。

Espressif 社の Wifi モジュールである ESP8266 を装備していて、サイズは 14.3mm × 24.8mm です。

このページでは ESP-01 の最初のプロジェクトとして、LED を点滅させるだけの簡単な例を用いて説明します。

ESP-01 の利用方法

ESP-01 は次のように 8 本のピンがあります。動作電圧は 3.3V です。

起動モードは GPIO0 と GPIO2 によって決まります。

プログラム時は GPIO0 を LOW、GPIO2 を HIGH にしてブートします。

CH_PD、RST は基本的に常に両方共プルアップしておきます。RST は GND レベルにするとリセットになります。これは通常動作時も同様です。

通常動作時は GPIO0 と GPIO2 を共に HIGH にして起動します。

通常動作時には TX と RX はそれぞれ GPIO の 1 番、3番として使えます。

ESP-01 へのプログラムのアップロード

PC 上の Arduino IDE からプログラムを ESP-01 にアップロードする時は、 FT232RL FTDI USBーTTL シリアル変換アダプタを使うのが便利です。

アダプタの利用には FTDI の VCP (仮想 COM ポート) ドライバーまたは D2XX ダイレクトドライバーが必要です。通常は VCP ドライバーを使います。

最新の Linux では VCP ドライバーはカーネルに既に組み込まれています。アダプタを接続した時に /dev/ttyUSBx としてみえるのが VCP です。

尚、Linux でドライバーの確認をするには、アダプタを USB に接続した上で次のコマンドを実行します。

$dmesg | grep FTDI

"FTDI USB Serial Device converter detected " などと表示されるはずです。

また USB のパーミッションも必要に応じて設定します。Linux (Ubuntu) の場合、既定で次のコマンドです。

$ sudo usermod -a -G dialout $USER

ESP-01 の動作電圧は 3.3V なので、アダプタのジャンパー設定で 3.3V にしてください。

Arduino IDE でのボード設定及びその他の設定は次の設定で成功しました。

ボードの設定で ESP8266 が表示されない場合は、「Arduino IDE を用いて ESP8266 (NodeMCU) で開発を行う環境設定」を参考に、ボードマネージャの設定を行ってください。

実行例 LED の点滅

それではここで、簡単な動作例として LED を点滅させるプログラムを記述します。

ここでは GPIO1 (TX) をデジタル出力にピンモードを設定し、1 秒間隔で HIGH と LOW を繰り替えしています。

void setup() {
  pinMode(1, OUTPUT);
}

void loop() {
  digitalWrite(1, HIGH);
  delay(1000);
  digitalWrite(1, LOW);
  delay(1000);
}

ブレッドボードに接続して、3.3V の別途電圧源に接続して動作確認しました。

点滅の消灯時時の写真になってしまいましたが、LED は点滅しています。

尚、私のテスト時はアップロード時のボーレート設定で 9600 bps としたとき、アップロードに失敗したらしく、点滅しないことがありました。 その時は点灯のまま。特にエラーメッセージも表示されませんでしたが、Arduino IDE のアップロードのインジケータが 100% となりませんでした。 同様の問題が発生した時はボーレート設定を変えて試す等するとよいかもしれません。

以上で ESP-01 のプログラム方法と簡単な動作例を紹介しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 基礎からの IoT 入門