Smart HomeをDIYする

Apple HomeKit は対応製品が少なくて高価なのでHomebridgeでがんばります

Arduino IDEでEPS32をプログラミング

ESP32開発用モジュール

スマートホームで使える賢いIoT機器といえば、WiFiBluetoothなどで無線接続できる製品が一般的です。Arduinoを使えば賢い機器を安価に作れますが、無線接続が不得手です。とはいえRaspberry Piでは役不足な場面が多いです。無線接続できてちょっとしたプログラムが簡単にできるお手軽なマイコンボードが欲しいところです。そこでESP-WROOM-32 (ESP32)というチップに目をつけました。このチップに、USBシリアル変換回路、5V-3.3V変換回路などを追加した開発ボードが、送料込み数百円で入手可能です。スマートホームDIYするのにうってつけだと思います。

ESP32は、色々な方法でプログラミングができるようですが、お手軽なArduino IDEを使いました。この記事では、Arduino IDEでLEDを点滅させるLチカプログラムが書けるところまで試します。

Arduino IDEをESP32対応させる

まずは、通常のArduino IDEをESP32対応させます。ArduinoのサイトからダウンロードしたばかりのArduino IDEは、Arduinoにしか対応していません。「ツール」「ボード」メニューを選んでもArduinoシリーズしか出てきません。

このメニューから「ボードマネージャ...」を選ぶと対応ボードを増やすことができます。でも、検索窓にespと入れてもESP32関係のものは現れません。

そこで、こちらのサイトを開きます。ここでは、ESP32をArduinoで開発するためのライブラリを紹介しています。

docs.espressif.com

ここにある、URLが重要です。安定版の配布リンクには、

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

と書かれてます。この文字列をコピーします(横にコピーボタンがあります)。

次に、Arduino IDEのPreferences...メニューを選びます。すると設定ウィンドウが開きますが、その中に「追加のボードマネージャのURL 」という項目があります。ここに先ほどのURLをペーストします。

これでボードマネージャにesp32の選択肢が現れます。インストールボタンを押して、これをインストールします。

すると、「ツール」「ボード」メニューにESP32 Arduinoという項目が現れます。

たくさん選択肢があって迷うところです。実は、ESP32で始まるメニューのいくつかで開発可能ですが、おそらくはESP32 Dev Moduleが一番適切な選択だと思います。これを選んでおきます。

Lチカプログラムを書く

次に、LEDをチカチカ点滅させるプログラム(Lチカ)を書きます。13番ピンにLEDを接続して使うことにしました。以下のプログラムをArduino IDEに書き込みます。解説の必要も無いプログラムだとは思いますが、setup()で13番ピンを出力に設定し、loop()で13番ピンを1秒ごとにHIGH, LOWに設定しています。

const int LED=13;

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

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

コンパイルしてダウンロードすると、13番に接続したLEDが点滅しました。

ESP32開発ボードはどこで買える

国内ならばスイッチサイエンスで売ってます。送料別2,200円くらいです。今時のType-Cになっていてなかなか良いです。

www.switch-science.com

AliExpressなら送料込みで700円以下です。海外製品ですが技適マークが刻印されているので安心です。

ja.aliexpress.com

Amazonでも1000円程度で売ってました。翌日配送なのでこちらの方が良いかもです。今回実験したボードはAliExpressで購入したのですが、写真を見る限り同じ部品配置なので、問題なく使えると思います。