はじめての 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 のプログラム方法と簡単な動作例を紹介しました。