[IoT] PlatformIO を使って ESP8266 を OTA できるまでの手順おさらい

PlatformIO を使って ESP8266 を OTA できるようにするまでの手順をおさらいします

環境&対象

以下の環境で動作確認を行なっています。

  • macOS Big Sur 11.1
  • Visual Stduio Code 1.52.1
  • PlatformIO Core:5.0.3 Home:3.3.1
  • NodeMCU 1.0

OTA で ESP8266 のアップデート

Web 検索で うまく見つからなかったので改めて書いてみました。

環境セットアップ

Visual Studio Code 上に PlatformIO を セットアップしていることを想定してます。

ESP32 向けですが、以下の記事にまとめてます。
[IoT] VisualStudio + PlatformIO + ESP32 での環境構築

PlatformIO で プロジェクト作成

PlatformIO の Home から、”+ New Project” を押下し、Name に適当な名前を設定後、Board で “NodeMCU 1.0(ESP-12E Module)” を選択します。

Framework は Arduino が自動で選択されるのでそのままにして、”Finish” を押下します。

環境の動作確認:L チカ動作

まずは、環境がセットアップできていることを確認します。

以下のコードを書き込めることを確認してみます。main.cpp にまるっとコピーして、書き込んでみます。

コード

いわゆる Lチカ です。

このコードが書き込めて、ボード上の青い LED が1秒ごとに点滅すれば、環境セットアップができていることがわかります。

OTA コードの書き込み

Arduino 環境では、[ファイル]-[スケッチ例]-[ArduinoOTA]-[BasicOTA] とすることで、サンプルを参照することができます。

まるっと PlatformIO の main.c にコピーしてきます。 自分のネットワークに接続できるように STASSID と STAPSK を適宜変更してください。

コード

モニタースピード設定

そのままでは、PlatformIO 上で モニターできません。

ログにも表示されてますが、PlatformIO では、デフォルト 9600 らしいので、これをコード上に指定している 115200 にする必要があります。

プロジェクトに含まれる platform.ini ファイルで設定を追加・変更します。

以下のように行を追加します。

コード

この状態でも、OTA による更新ができるのですが、ESP8266 の起動時に設定された IP を記録しておかないといけません。

少し不便なので、IP 固定で起動するように変更します。

IP アドレス指定

Main.cpp のコードを 以下のように修正することで、IP アドレス指定で起動することができます。

指定したい IP アドレスや、Gateway の IP アドレス等 は、環境に合わせて設定してください。

コード

上記のコードをコンパイルし、upload して以下のような表示が出れば成功です。

コード

この IP は固定のため、これ以降は この IP アドレスの機器をアップデートするように 設定していきます。

OTA upload 設定

Platform.ini のファイルに以下を追加することで、シリアルポート経由のアップロードではなく、IP 指定の OTA アップデートとなります。

コード

OTA のために、残しておかなければいけないコード

現時点でのほとんどのコードは、WIFI 設定や OTA 設定のためのコードなので 自分のプログラムを追加していく際に消してはいけません。

言い換えると、消してしまっても構わないのは、Lチカのためのコードだけです。

まとめ:ESP8266 を PlatformIO 環境で OTA するまでの手順

ESP8266 を PlatformIO 環境で OTA するまでの手順
  • ESP8266 向けの環境を PlatformIO 上で構築する
  • Arduino 環境から、OTA コードを持ってくる
  • シリアルモニタのスピードを設定する
  • (必要であれば)IP指定する
  • PlatformIO 上で OTA を使った upload を設定する

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

コメントを残す

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