IoTシステム ソフトウエア開発環境

IoT システムに関するソフトウエアは組込 MCU のファームウエアからクラウドを制御するソフトウエアまで多岐に渡ります。 

今回開発した IoT システムに関しては、IoT1号機とIoT2号機の組込 MCU の Arduino(C++) ファームウエア、クラウド制御のためのリモートコントロール用画面を構成する HTML、 JavaScript、 CSS、そしてシステム全体のデバグ用には Python を使用しています。(図1)

機能ターゲット開発言語
IoT1号機、IoT2号機ESP32-DevKitC-32EC++
リモートコントロール画面WebブラウザHTML, JavaScript, CSS
システム動作デバグクラウド(Ambient)Python
図1 機能、ターゲットと開発言語

IoT システムの開発を開始するにあたり検討した結果、従来から MCU の C++ コード開発に使っていた Visual Studio Code(VS Code)に拡張機能を追加することで対応できました。

VS Code は無料でダウンロードできて日本語対応もバッチリです。「1つのエディターで、コードからクラウドまで」のキャッチコピー通りの使い方ができます。(図2)

2 Visual Studio Code のキャッチコピー

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

3 Visual Studio Code ダウンロードページ

VS Codeをインストールする Windows PC (自作)の仕様は図4になります。

仕様項目内容
デバイスプロセッサIntel(R) Core(TM) i5」10400 CPU @2.90GHz 2.90 GHz
実装RAM32.0 GB (31.9 GB 使用可能)
システムの種類64 ビット オペレーティング システム、x64 ベース プロセッサ
WindowsエディションWindows 10 Pro
4 VS Code をインストールする PC の仕様

図5は VS Code に追加した拡張機能の一覧です。

VS Code拡張機能用途備考
Japanese Language Pack for Visual Studio日本語環境 
C/C++C++開発MCUファームウエア開発
CMakeC++開発同上
CMake ToolsC++開発同上
RunnerC++開発同上
PlatformIO IDEESP32Espressif ESP32 Dev Module
Adafruit BME280 Library
Adafruit BusIO
Adafruit Unified Sensor
Ambient ESP32 ESP8266 lib
ArduinoJson
Live PreviewHTMLファイルプリビューア 
JupyterPythonデバグ用(Ambient送信・読出)
PylancePython同上
PythonPython同上
WSLLinux用オプション
図5 VS Code拡張機能
図6 VS Codeにインストールされた拡張機能(左の列)

・日本語対応のために Japanese Language Pack for Visual Studio をインストールしています。

・従来から使用していた C++ コード開発環境は C/C++、CMake、CMake Tools、Runner をインストールしています。

・Platform IO は Arduino 互換の組込 MCU マルチプラットフォームビルドシステム、統合デバッガーです。(図7)

図7 VS Code にインストールされたPlatform IO 拡張機能 Home 画面

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 をインストールしています。

図8 C++開発画面

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

図9 HTML, JavaScript, CSS 開発画面
図10 HTML, JavaScript, CSS 開発画面の右に Live Preview 拡張機能を表示

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

図11 HTML, JavaScript, CSS 開発画面に Python 拡張機能を表示
図12 C++開発画面に Python 拡張機能を表示

コメント

error: Content is protected !!
タイトルとURLをコピーしました