Sponsor Link
環境&対象
使用ボード: NodeMCU-32S
環境: Visual Studio Code 1.77.3 + PlatformIO Core: 6.1.6 Home: 3.4.3
使用PC: macOS Ventura(intel)
Visual Studio Code や PlatformIO については、過去記事を参照ください。
[IoT] NodeMCU-32S 開発環境セットアップ
HomeSpan
ESP32 ベースのボードを簡単に HomeKit デバイスにすることができるライブラリです。
github は こちら
github のページには、Arduino IDE ベースの説明がされていますが、Visual Source Code + PlatformIO でも使用できます。
HomeSpan の機能を使って、OTA(OverTheAir アップデート)もできるので、合わせて設定していきます。
プロジェクト作成
最初に、ボードに合わせて プロジェクトを作成します。
New Folder
PlatformIO の Libraries で “HomeSpan” を検索すると見つかりますので、いま作成したプロジェクトに追加します。
記事作成時点の HomeSpan のバージョンは、1.7.2 でした。
HomeSpan 初期化コード
書き込み
OTAを設定しますが、最初は、シリアル(USB) 接続での書き込みが必要です。
サンプルコード (Lチカ)
簡単なコードで、開発環境含め 動作確認してみます。
Lチカ
NodeMCU-S32 では、ボード上に2つの LED が搭載されていて、1つは、通電状態を表す 赤い LED です。
ボード上には、もう1つ 青い LED も搭載されているので、その LED を点滅させてみます。
ボード上の 青い LED は、GPIO2 に接続されているので、その PIN に対して操作を行うことで点滅させます。
Arduino 環境では、setup 関数が呼ばれた後、loop 関数が繰り返し呼ばれます。
setup で、GPIO2 – pin を出力モードに変更しています。
その後、loop 内で、HIGH と LOW を 500ms 毎に切り替えるというコードです。
#include
#define LED_PIN 2
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}
コンパイル/upload
サンプルコードを main.cpp 上にコピペし、”Upload” ボタンを押すと、コンパイル完了後、ボードにアップロードします。
ボード上の 青い LED が点滅を繰り返すようになれば 書き込み成功です。
デバッグ
コードを書いていると、変数の内容等を確認したくなることがよくあります。
通常の開発であれば 変数の内容を print して確認しますが、組み込みでは print 先が存在しません。
本格的な開発であれば ICE 等を使用すると思いますが、そんな予算(?) はないので、簡易デバッグの方法を紹介します。
シリアルモニタです。
setup で通信速度指定で 初期化し、必要な箇所で println するとシリアルモニタに表示されます。
シリアルモニタ
以下のように、シリアルモニタを開くことができます。
サンプルコード
シリアルモニタに出力するように 以下のように、コードを修正しました。
#include
#define LED_PIN 2
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
Serial.println("HIGH");
delay(500);
digitalWrite(LED_PIN, LOW);
Serial.println("LOW");
delay(500);
}
先ほどと同様に、uploadしてみると、シリアルモニタには、以下のように表示されます。
--- Terminal on /dev/cu.usbserial-0001 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
clock div:ff0030,len:1184
load:0x40078000,len:13192
load:0x40080400,len:3028
entry 0x400805e4
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
....
...
.
上記では、単に HIGH, LOW と表示しただけですが、文字列を表示しているだけなので、変数の内容等も表示することができます。
まとめ
NodeMCU-32S ボードの環境セットアップを説明しました。
- Visual Studio Code + PlatformIO がおすすめ
- NodeMCU-32S の 青いLED は、GPIO2 に接続されている
- 簡易デバッグには Serial Monitor
説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。
おすすめ
ESP32
ワンチップで WIFI につながると、ちょっとしたことを気軽に試せます。
以前は、ESP8266 でしたが、後継マイコンである ESP32 は、値段がそれほど 変わらないのに、ずいぶん スペックアップしているので、おすすめです。
Amazon 等探すといろいろ見つかりますが、以下が安い気がします。
Sponsor Link