IoT システムに関するソフトウエアは組込 MCU のファームウエアからクラウドを制御するソフトウエアまで多岐に渡ります。
今回開発した IoT システムに関しては、IoT1号機とIoT2号機の組込 MCU の Arduino(C++) ファームウエア、クラウド制御のためのリモートコントロール用画面を構成する HTML、 JavaScript、 CSS、そしてシステム全体のデバグ用には Python を使用しています。(図1)
機能 | ターゲット | 開発言語 |
---|---|---|
IoT1号機、IoT2号機 | ESP32-DevKitC-32E | C++ |
リモートコントロール画面 | Webブラウザ | HTML, JavaScript, CSS |
システム動作デバグ | クラウド(Ambient) | Python |
IoT システムの開発を開始するにあたり検討した結果、従来から MCU の C++ コード開発に使っていた Visual Studio Code(VS Code)に拡張機能を追加することで対応できました。
VS Code は無料でダウンロードできて日本語対応もバッチリです。「1つのエディターで、コードからクラウドまで」のキャッチコピー通りの使い方ができます。(図2)

ダウンロードページは図3を参照。 Visual Studio Code ダウンロード(無料)ページへ

VS Codeをインストールする Windows PC (自作)の仕様は図4になります。
仕様 | 項目 | 内容 |
---|---|---|
デバイス | プロセッサ | Intel(R) Core(TM) i5」10400 CPU @2.90GHz 2.90 GHz |
実装RAM | 32.0 GB (31.9 GB 使用可能) | |
システムの種類 | 64 ビット オペレーティング システム、x64 ベース プロセッサ | |
Windows | エディション | Windows 10 Pro |
図5は VS Code に追加した拡張機能の一覧です。
VS Code拡張機能 | 用途 | 備考 |
---|---|---|
Japanese Language Pack for Visual Studio | 日本語環境 | |
C/C++ | C++開発 | MCUファームウエア開発 |
CMake | C++開発 | 同上 |
CMake Tools | C++開発 | 同上 |
Runner | C++開発 | 同上 |
PlatformIO IDE | ESP32 | Espressif ESP32 Dev Module |
Adafruit BME280 Library | ||
Adafruit BusIO | ||
Adafruit Unified Sensor | ||
Ambient ESP32 ESP8266 lib | ||
ArduinoJson | ||
Live Preview | HTMLファイルプリビューア | |
Jupyter | Python | デバグ用(Ambient送信・読出) |
Pylance | Python | 同上 |
Python | Python | 同上 |
WSL | Linux用 | オプション |

・日本語対応のために Japanese Language Pack for Visual Studio をインストールしています。
・従来から使用していた C++ コード開発環境は C/C++、CMake、CMake Tools、Runner をインストールしています。
・Platform IO は Arduino 互換の組込 MCU マルチプラットフォームビルドシステム、統合デバッガーです。(図7)

Platform IO には IoT1号機とIoT2号機に使用する組込 MCU 開発モジュール ESP32-DevKitC-32E に対応したライブラリ Espressif ESP32 Dev Module をインストールしています。
クラウド Ambientに対して送信、読出しするためのライブラリ Ambient ESP32 ESP8266 lib および Json 形式のデータを扱うためのライブラリ ArduinoJson もインストールしています。 さらに、温度、湿度、気圧センサ BME280 を動作させるためのライブラリ Adafruit BME280 Library、Adafruit BusIO、Adafruit Unified Sensor をインストールしています。

・HTML, JavaScript, CSS 言語を使用した Web 上のリモートコントロール画面を開発する時には、Live Preview拡張機能が役立ちました。 開発したコードをクラウドサーバーにいちいちFFTP でアップロードする必要が無くリアルタイムで動作を確認することができます。(図10)


・IoTシステム全体のデバグには Python を使用しています。 IoTシステムはクラウドを介して制御コードやデータのやり取りを行っていますが、動作に不具合がある場合にクラウドの制御コードやデータ自体を第三者的に Python から確認や変更ができます。 これによりシステムデバグがはかどります。


コメント