[IoT] NodeMCU-32S 開発環境セットアップ

     

TAGS:

⌛️ 2 min.
ESP32 ボードに HomeSpan を載せて、HomeKit device を作る方法を説明します。まずは、環境セットアップです。

環境&対象

使用ボード: 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” ボタンを押すと、コンパイル完了後、ボードにアップロードします。

comple_upload

ボード上の 青い LED が点滅を繰り返すようになれば 書き込み成功です。

デバッグ

コードを書いていると、変数の内容等を確認したくなることがよくあります。

通常の開発であれば 変数の内容を print して確認しますが、組み込みでは print 先が存在しません。

本格的な開発であれば ICE 等を使用すると思いますが、そんな予算(?) はないので、簡易デバッグの方法を紹介します。

シリアルモニタです。

setup で通信速度指定で 初期化し、必要な箇所で println するとシリアルモニタに表示されます。

シリアルモニタ

以下のように、シリアルモニタを開くことができます。

serialmonitor

サンプルコード

シリアルモニタに出力するように 以下のように、コードを修正しました。

#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 ボードの環境セットアップを説明しました。

NodeMCU-32S ボードの環境セットアップ
  • Visual Studio Code + PlatformIO がおすすめ
  • NodeMCU-32S の 青いLED は、GPIO2 に接続されている
  • 簡易デバッグには Serial Monitor

説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。

おすすめ

ESP32

ワンチップで WIFI につながると、ちょっとしたことを気軽に試せます。

以前は、ESP8266 でしたが、後継マイコンである ESP32 は、値段がそれほど 変わらないのに、ずいぶん スペックアップしているので、おすすめです。

Amazon 等探すといろいろ見つかりますが、以下が安い気がします。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です