スマートホームで使える賢いIoT機器といえば、WiFiやBluetoothなどで無線接続できる製品が一般的です。Arduinoを使えば賢い機器を安価に作れますが、無線接続が不得手です。とはいえLinuxを搭載する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で開発するためのライブラリを紹介しています。
ここにある、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チカ)を書きます。このESP32開発ボードには、2番ピンに接続した青色LEDが搭載されています。これを点滅させます。以下のプログラムをArduino IDEに書き込みます。setup()で2番ピンを出力に設定し、loop()で2番ピンを1秒ごとにHIGH, LOWに設定しています。
const int LED=2;
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}
コンパイルしてダウンロードすると、搭載されているLEDが点滅しました。
ESP32開発ボードはどこで買える
国内ならばスイッチサイエンスで売ってます。送料別2,200円くらいです。今時のType-Cになっていてなかなか良いです。(追記:現在品切れになってました)
AliExpressなら送料込みで600円程度です。海外製品ですが技適マークが刻印されているので安心です。こちらにもType-Cバージョンがあります。
Amazonでも送料税込み800円で売ってました。配送も早くて良さそうです。これもType-Cになってますね。今までAliExpressで購入していたのですが、写真を見る限り同じ部品配置なので、問題なく使えると思います。
まとめ
ESP32開発ボードをArduinoからプログラミングできるように設定しました。これでHomeKitから動作する電子回路をDIYしていきます。ESP32でDIYする詳細は、以下をご覧ください。
ArduinoとESP32
コメント